diff options
author | Nobody <nobody@swig.org> | 2001-09-04 01:49:30 +0000 |
---|---|---|
committer | Nobody <nobody@swig.org> | 2001-09-04 01:49:30 +0000 |
commit | 3758a6d0acd5405cfde1b74d0ffc753e30dc67e0 (patch) | |
tree | 07aa221fb48bc8e0cfb6f96fec175932da5747e3 | |
parent | 1d9231f75d5006c4ef0c8068cc146d60df144c7e (diff) | |
download | swig-3758a6d0acd5405cfde1b74d0ffc753e30dc67e0.tar.gz |
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-1-3-7@1684 626c5289-ae23-0410-ae9c-e8d60b6d4f22
61 files changed, 0 insertions, 22106 deletions
diff --git a/SWIG/Source/Modules1.1/emit.cxx b/SWIG/Source/Modules1.1/emit.cxx deleted file mode 100644 index 02b98855d..000000000 --- a/SWIG/Source/Modules1.1/emit.cxx +++ /dev/null @@ -1,252 +0,0 @@ -/* ----------------------------------------------------------------------------- - * emit.cxx - * - * Useful functions for emitting various pieces of code. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 1998-2000. The University of Chicago - * Copyright (C) 1995-1998. The University of Utah and The Regents of the - * University of California. - * - * See the file LICENSE for information on usage and redistribution. - * ----------------------------------------------------------------------------- */ - -#include "swig11.h" - -static char cvsroot[] = "$Header$"; - -/* ----------------------------------------------------------------------------- - * new_create_function() - * - * Create a new function - * ----------------------------------------------------------------------------- */ - -void new_create_function(char *name, char *iname, SwigType *type, ParmList *l) { - Hash *h; - h = NewHash(); - Setattr(h,"name",name); - Setattr(h,"scriptname",iname); - Setattr(h,"type",type); - Setattr(h,"parms",l); - lang->function(h); - Delete(h); -} - -/* ----------------------------------------------------------------------------- - * emit_args() - * - * Creates a list of variable declarations for both the return value - * and function parameters. - * - * The return value is always called result and arguments arg0, arg1, arg2, etc... - * Returns the number of parameters associated with a function. - * ----------------------------------------------------------------------------- */ - -int emit_args(DOH *node, Wrapper *f) { - - SwigType *rt; - ParmList *l; - Parm *p; - int i; - char *tm; - SwigType *pt; - DOHString *pvalue; - DOHString *pname; - DOHString *lname; - - rt = Getattr(node,"type"); - l = Getattr(node,"parms"); - - /* Emit function arguments */ - Swig_cargs(f, l); - - i = 0; - p = l; - while (p != 0) { - lname = Getlname(p); - pt = Gettype(p); - pname = Getname(p); - pvalue = Getvalue(p); - - tm = Swig_typemap_lookup((char*)"arginit",pt,pname,(char*)"",lname,f); - if (tm) { - Printv(f,tm,"\n",0); - } - /* Check for ignore or default typemaps */ - tm = Swig_typemap_lookup((char*)"default",pt,pname,(char*)"",lname,f); - if (tm) { - Printv(f,tm,"\n",0); - } - tm = Swig_typemap_lookup((char*)"ignore",pt,pname,(char*)"",lname,f); - if (tm) { - Printv(f,tm,"\n",0); - Setignore(p,1); - } - i++; - p = Getnext(p); - } - return(i); -} - -/* ----------------------------------------------------------------------------- - * int emit_func_call(char *decl, DataType *t, ParmList *l, Wrapper*f) - * - * Emits code for a function call (new version). - * - * Exception handling support : - * - * - This function checks to see if any sort of exception mechanism - * has been defined. If so, we emit the function call in an exception - * handling block. - * ----------------------------------------------------------------------------- */ - -static DOH *fcall = 0; - -void emit_set_action(DOHString_or_char *decl) { - if (fcall) Delete (fcall); - fcall = NewString(decl); -} - -void emit_func_call(DOH *node, Wrapper *f) { - char *decl; - SwigType *t; - ParmList *l; - char *tm; - - decl = GetChar(node,"name"); - t = Getattr(node,"type"); - l = Getattr(node,"parms"); - - if ((tm = Swig_typemap_lookup((char*)"except",t,decl,(char*)"result",(char*)"",0))) { - Printv(f,tm,0); - Replace(f,"$name",decl,DOH_REPLACE_ANY); - } else if ((tm = Swig_except_lookup())) { - Printv(f,tm,0); - Replace(f,"$name",decl,DOH_REPLACE_ANY); - } else { - Printv(f,"$function",0); - } - - if (!fcall) fcall = NewString(Swig_cfunction_call(decl,l)); - - if (CPlusPlus) { - Swig_cppresult(f, t, (char*)"result", Char(fcall)); - } else { - Swig_cresult(f, t, (char*)"result", Char(fcall)); - } - Delete(fcall); - fcall = 0; -} - -/* ----------------------------------------------------------------------------- - * void emit_set_get() - * - * Emits a pair of functions to set/get the value of a variable. This is - * only used in the event the target language can't provide variable linking - * on its own. - * - * double foo; - * - * Gets translated into the following : - * - * double foo_set(double x) { - * return foo = x; - * } - * - * double foo_get() { - * return foo; - * } - * ----------------------------------------------------------------------------- */ - -/* How to assign a C allocated string */ - -static char *c_str = (char *)"\ -if ($target) free($target);\n\ -$target = ($rtype) malloc(strlen($source)+1);\n\ -strcpy((char *)$target,$source);\n\ -return $ltype $target;\n"; - -/* How to assign a C allocated string */ - -static char *cpp_str = (char *)"\ -if ($target) delete [] $target;\n\ -$target = ($rtype) (new char[strlen($source)+1]);\n\ -strcpy((char *)$target,$source);\n\ -return ($ltype) $target;\n;"; - - -void emit_set_get(DOH *node) { - char *name, *iname; - SwigType *t; - Wrapper *w; - DOHString *new_iname; - char *code = 0; - - name = GetChar(node,"name"); - iname = GetChar(node,"iname"); - t = Getattr(node,"type"); - - /* First write a function to set the variable of the variable */ - if (!ReadOnly) { - - if (SwigType_type(t) == T_STRING) { - if (CPlusPlus) - code = cpp_str; - else - code = c_str; - } - w = Swig_cvarset_wrapper(name, t, code); - Printf(f_header,"%s", w); - new_iname = Swig_name_set(iname); - DohIncref(new_iname); - new_create_function(GetChar(w,"name"), Char(new_iname), Gettype(w), Getparms(w)); - Delete(new_iname); - Delete(w); - } - - w = Swig_cvarget_wrapper(name,t,0); - Printf(f_header,"%s", w); - new_iname = Swig_name_get(iname); - DohIncref(new_iname); - new_create_function(GetChar(w,"name"), Char(new_iname), Gettype(w), Getparms(w)); - Delete(new_iname); - Delete(w); -} - -/* ------------------------------------------------------------------ - * int check_numopt() - * - * Gets the number of optional arguments for a ParmList. - * ------------------------------------------------------------------ */ - -int check_numopt(ParmList *p) { - int n = 0; - int i = 0; - int state = 0; - - for (;p; p = Getnext(p),i++) { - SwigType *pt = Gettype(p); - String *pn = Getname(p); - if (Getvalue(p)) { - n++; - state = 1; - } else if (Swig_typemap_search((char*)"default",pt,pn)) { - n++; - state = 1; - } else if (Swig_typemap_search((char*)"ignore",pt,pn)) { - n++; - } else { - if (state) { - Printf(stderr,"%s:%d. Argument %d must have a default value!\n", Getfile(p), Getline(p),i+1); - } - } - } - return n; -} - - - - - - diff --git a/SWIG/Source/Modules1.1/lang.cxx b/SWIG/Source/Modules1.1/lang.cxx deleted file mode 100644 index faf69918f..000000000 --- a/SWIG/Source/Modules1.1/lang.cxx +++ /dev/null @@ -1,475 +0,0 @@ -/* ----------------------------------------------------------------------------- - * lang.cxx - * - * Language base class functions. Default C++ handling is also implemented here. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 1998-2000. The University of Chicago - * Copyright (C) 1995-1998. The University of Utah and The Regents of the - * University of California. - * - * See the file LICENSE for information on usage and redistribution. - * ----------------------------------------------------------------------------- */ - -static char cvsroot[] = "$Header$"; - -#include "swig11.h" - -/* ----------------------------------------------------------------- - * Language::create_command() - * ----------------------------------------------------------------- */ - -void Language::create_command(String *, String *) { - Printf(stderr,"SWIG Warning. No command creation procedure defined.\n"); - Printf(stderr,"C++ inheritance may not work correctly.\n"); -} - -/* ----------------------------------------------------------------- - * Language::nativefunction() - * ----------------------------------------------------------------- */ - -void -Language::nativefunction(DOH *node) { - Printf(stderr,"%s:%d. Adding native function %s not supported (ignored).\n", Getfile(node), Getline(node), Getattr(node,"scriptname")); -} - - -/* The following strings are used during code generation and contain various - permutations of the class name: - - ClassName - This is the name of the class as it appears in C/C++ - source code. It does not include a type specifier - such as "struct" or "class" - - ClassRename - If non-NULL, the class has been renamed. - ClassType - The type of the class (struct, class, union) - ClassFullname - The full name of the class including its type specifier. - For example, "class Foo" or "struct Vector". - ClassPrefix - The class prefix as used in the scripting language - interface. This is either ClassName or ClassRename. -*/ - -static String *ClassName = 0; -static String *ClassRename = 0; -static String *ClassType = 0; -static String *ClassFullname = 0; -static String *ClassPrefix = 0; - -/* ----------------------------------------------------------------------------- - * Language::cpp_open_class() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_open_class(DOH *node) { - String *classname; - String *classrename; - String *ctype; - String *altname; - int strip = CPlusPlus; - - classname = Getname(node); - classrename = Getattr(node,"scriptname"); - ctype = Getattr(node,"classtype"); - - altname = Getattr(node,"altname"); - if (altname) { - strip = 1; - classname = altname; /* Use the alt name instead of the class name */ - } - - if (strip) SetInt(node,"strip",1); - - /* Copy the class name */ - if (ClassName) Delete(ClassName); - ClassName = NewString(classname); - - /* Copy the class renaming */ - - if (ClassRename) Delete(ClassRename); - ClassRename = NewString(classrename); - - if (ClassType) Delete(ClassType); - ClassType = strip ? 0 : NewString(ctype); - - if (ClassFullname) Delete(ClassFullname); - - ClassFullname = ClassType ? NewStringf("%s %s", ClassType, ClassName) : NewString(ClassName); - ClassPrefix = ClassRename; -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_close_class() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_close_class() { - - /* Doesn't really do anything */ -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_memberfunction() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_memberfunction(DOH *node) { - String *name; - String *iname; - String *ccode; - String *script_name; - SwigType *type; - ParmList *parms; - Wrapper *w; - - name = Getattr(node,"name"); - iname = Getattr(node,"scriptname"); - type = Getattr(node,"type"); - parms = Getattr(node,"parms"); - ccode = Getattr(node,"code"); - - /* Generate the C wrapper function name and interpreter name of this function*/ - /* Create the actual function name */ - - script_name = Swig_name_member(ClassPrefix, iname ? iname : name); - - /* Now do a symbol table lookup on it */ - - /* Create the C wrapper function for this */ - w = Swig_cmethod_wrapper(ClassFullname, name, type, parms, ccode); - if (AddMethods && ccode) { - /* Dump the C wrappers */ - Printf(f_wrappers,"%s",w); - } else if (!AddMethods) { - /* Just create a string that does what we want */ - emit_set_action(Swig_cmethod_call(name, Getparms(w))); - } - Setattr(w,"scriptname",script_name); - lang->function(w); - Delete(w); -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_constructor() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_constructor(DOH *node) { - String *name; - String *iname; - String *cname; - String *ccode; - ParmList *parms; - Wrapper *w; - - name = Getattr(node,"name"); - iname = Getattr(node,"scriptname"); - parms = Getattr(node,"parms"); - ccode = Getattr(node,"code"); - - if ((Cmp(name,ClassName))) { - Printf(stderr,"%s:%d. Function %s must have a return type.\n", - Getfile(node), Getline(node), name); - return; - } - - cname = Swig_name_construct(iname ? iname : ClassPrefix); - - /* Add this function to the SWIG symbol table */ - - if (CPlusPlus) { - w = Swig_cppconstructor_wrapper(ClassFullname, parms, ccode); - } else { - w = Swig_cconstructor_wrapper(ClassFullname, parms, ccode); - } - Setattr(w,"scriptname", cname); - - if (!AddMethods) { - if (CPlusPlus) { - emit_set_action(Swig_cppconstructor_call(ClassFullname, parms)); - } else { - emit_set_action(Swig_cconstructor_call(ClassFullname)); - } - } else { - if (ccode) { - Printf(f_wrappers,"%s",w); - } - } - lang->function(w); - Delete(w); - - /* Call our default method */ - /* cplus_emit_constructor(Char(ClassName), Char(ClassType), Char(ClassRename), name, iname, l, AddMethods); */ - -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_destructor() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_destructor(DOH *node) { - String *name; - String *iname; - String *cname; - String *ccode; - Wrapper *w; - - name = Getattr(node,"name"); - iname = Getattr(node,"scriptname"); - cname = Swig_name_destroy(ClassRename ? ClassRename : ClassName); - ccode = Getattr(node,"code"); - - /* Add this function to the SWIG symbol table */ - - if (CPlusPlus) { - w = Swig_cppdestructor_wrapper(ClassFullname,ccode); - } else { - w = Swig_cdestructor_wrapper(ClassFullname, ccode); - } - Setattr(w,"scriptname",cname); - if (AddMethods && ccode) { - Printf(f_wrappers,"%s", w); - lang->function(w); - } else if (AddMethods) { - lang->function(w); - } else { - if (CPlusPlus) - emit_set_action(Swig_cppdestructor_call()); - else - emit_set_action(Swig_cdestructor_call()); - lang->function(w); - } - Delete(w); -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_inherit() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_inherit(List *bases) { - - if (!bases) return; - /* - while (baseclass[i]) { - // cplus_inherit_members(baseclass[i],mode); - i++; - } - */ -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_variable() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_variable(DOH *node) { - String *name; - String *iname; - String *cname; - String *setcode, *getcode; - SwigType *type; - Wrapper *w; - - name = Getattr(node,"name"); - iname = Getattr(node,"scriptname"); - type = Getattr(node,"type"); - setcode = Getattr(node,"setcode"); - getcode = Getattr(node,"getcode"); - - /* Set the class prefix */ - - cname = Swig_name_get(Swig_name_member(ClassPrefix, iname ? iname : name)); - - /* Check the symbol table */ - - /* Create a function to set the value of the variable */ - if (!ReadOnly) { - w = Swig_cmemberset_wrapper(ClassFullname, name, type, setcode); - Setattr(w,"scriptname",Swig_name_set(Swig_name_member(ClassPrefix,iname ? iname : name))); - if (AddMethods && setcode) { - Printf(f_wrappers,"%s",w); - } else if (!AddMethods) { - /* Check for a member in typemap here */ - String *target = NewStringf("%s->%s", Swig_cparm_name(0,0),name); - char *tm = Swig_typemap_lookup("memberin",type,name,Swig_cparm_name(0,1),target,0); - if (!tm) - emit_set_action(Swig_cmemberset_call(name,type)); - else - emit_set_action(tm); - Delete(target); - } - lang->function(w); - Delete(w); - } - w = Swig_cmemberget_wrapper(ClassFullname, name, type, getcode); - Setattr(w,"scriptname", Swig_name_get(Swig_name_member(ClassPrefix, iname ? iname : name))); - if (AddMethods && getcode) { - Printf(f_wrappers,"%s",w); - } else if (!AddMethods) { - emit_set_action(Swig_cmemberget_call(name,type)); - } - lang->function(w); - Delete(w); -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_static_func() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_staticfunction(DOH *node) { - String *name; - String *iname; - SwigType *type; - ParmList *parms; - String *ccode; - String *script_name; - String *real_name; - DOH *nnode; - Wrapper *w; - - name = Getattr(node,"name"); - iname = Getattr(node,"scriptname"); - type = Getattr(node,"type"); - parms = Getattr(node,"parms"); - ccode = Getattr(node,"code"); - - /* Set the member function name */ - script_name = Swig_name_member(ClassPrefix,iname ? iname : name); - - /* Now do a symbol table lookup on it : */ - - /* Figure out the name of the function */ - if (AddMethods) { - real_name = Swig_name_member(ClassName, name); - if (!ccode) { - nnode = Copy(node); - Setattr(nnode,"name", real_name); - Setattr(nnode,"scriptname", script_name); - lang->function(nnode); - Delete(nnode); - } else { - w = Swig_cfunction_wrapper(real_name,type,parms,ccode); - Printf(f_wrappers,"%s",w); - Setattr(w,"scriptname",script_name); - lang->function(w); - Delete(w); - } - } else { - nnode = Copy(node); - real_name = NewStringf("%s::%s", ClassName, name); - Setattr(nnode,"name", real_name); - Setattr(nnode,"scriptname", script_name); - lang->function(nnode); - Delete(nnode); - Delete(real_name); - } -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_constant() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_constant(DOH *node) -{ - String *name; - String *iname; - String *value; - SwigType *type; - String *cname; - String *mname; - String *new_value; - - name = Getattr(node,"name"); - iname = Getattr(node,"scriptname"); - value = Getattr(node,"value"); - type = Getattr(node,"type"); - - /* Set the constant name */ - - cname = Swig_name_member(ClassPrefix, iname ? iname : name); - - /* Now do a symbol table lookup on it : */ - - /* Form correct C++ name */ - mname = NewStringf("%s::%s", ClassName,name); - - /* Declare a constant */ - if (!value) { - new_value = NewStringf("%s::%s", ClassName, name); - } else { - new_value = NewString(value); - } - Hash *n; - n = NewHash(); - Setattr(n,"name",cname); - Setattr(n,"scriptname",cname); - Setattr(n,"type",type); - Setattr(n,"value",new_value); - lang->constant(n); - Delete(n); - Delete(new_value); - Delete(mname); -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_staticvariable() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_staticvariable(DOH *node) { - char *name, *iname; - SwigType *t; - char *cname; - char mname[256]; - - name = GetChar(node,"name"); - iname = GetChar(node,"scriptname"); - t = Getattr(node,"type"); - - /* Create the variable name */ - - cname = Char(Swig_name_member(ClassPrefix, iname ? iname : name)); - - /* Now do a symbol table lookup on it : */ - - /* Form correct C++ name */ - sprintf(mname,"%s::%s",Char(ClassName),name); - - /* Link with this variable */ - - Hash *n = NewHash(); - Setattr(n,"name",mname); - Setattr(n,"scriptname", cname); - Setattr(n,"type",t); - lang->variable(n); - Delete(n); -} - -/* ----------------------------------------------------------------------------- - * Language::cpp_class_decl() - * ----------------------------------------------------------------------------- */ - -void Language::cpp_class_decl(DOH *) { - /* Does nothing by default */ -} - -/* ----------------------------------------------------------------------------- - * Language::add_typedef() - * ----------------------------------------------------------------------------- */ - -void Language::add_typedef(SwigType *, String *) { - /* Does nothing by default */ -} - -/* ----------------------------------------------------------------------------- - * Language::pragma() - * ----------------------------------------------------------------------------- */ - -void Language::pragma(DOH *node) { - /* Does nothing by default */ -} - -/* ----------------------------------------------------------------------------- - * Language::import() - * ----------------------------------------------------------------------------- */ - -void Language::import(String *) { - /* Does nothing by default */ -} - - - diff --git a/SWIG/Source/Modules1.1/main.cxx b/SWIG/Source/Modules1.1/main.cxx deleted file mode 100644 index c3e221f61..000000000 --- a/SWIG/Source/Modules1.1/main.cxx +++ /dev/null @@ -1,297 +0,0 @@ -/* ----------------------------------------------------------------------------- - * main.cxx - * - * Main entry point to the SWIG core. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 1998-2000. The University of Chicago - * Copyright (C) 1995-1998. The University of Utah and The Regents of the - * University of California. - * - * See the file LICENSE for information on usage and redistribution. - * ----------------------------------------------------------------------------- */ - -static char cvsroot[] = "$Header$"; - -#include "swig11.h" -#ifndef MACSWIG -#include "swigconfig.h" -#endif - -#include <time.h> -#include <stdlib.h> -#include <stdio.h> -#include <ctype.h> -extern "C" { -#include "preprocessor.h" -} - -#ifndef SWIG_LANG -#define SWIG_LANG PYTHON -#endif - -#include "tcl8.h" -#include "python.h" -#include "perl5.h" -#include "guile.h" -#ifdef OLD -#include "java.h" -#endif -#include "mzscheme.h" -#include "ruby.h" -#include "xml.h" - -// Global variables - - FILE *f_runtime = 0; - DOH *f_header = 0; // Some commonly used - DOH *f_wrappers = 0; // FILE pointers - DOH *f_init = 0; - Language *lang; // Language method - int CPlusPlus = 0; - int NewObject = 0; // NewObject flag - int ForceExtern = 0; // Force extern mode - int GenerateDefault = 0; // Generate default constructors - int NoInclude = 0; - int Verbose = 0; - String *swig_module = 0; - -static char *usage = (char*)"\ -\nSWIG1.1 Options\n\ -"; - -// ----------------------------------------------------------------------------- -// check_suffix(char *name) -// -// Checks the suffix of a file to see if we should emit extern declarations. -// ----------------------------------------------------------------------------- - -static -int -check_suffix(char *name) { - char *c; - if (!name) return 0; - if (strlen(name) == 0) return 0; - c = name+strlen(name)-1; - while (c != name) { - if (*c == '.') break; - c--; - } - if (c == name) return 0; - if ((strcmp(c,".c") == 0) || - (strcmp(c,".C") == 0) || - (strcmp(c,".cc") == 0) || - (strcmp(c,".cxx") == 0) || - (strcmp(c,".c++") == 0) || - (strcmp(c,".cpp") == 0)) { - return 1; - } - return 0; -} - -//----------------------------------------------------------------- -// main() -// -// Main program. Initializes the files and starts the parser. -//----------------------------------------------------------------- - -char infilename[256]; -char filename[256]; -char output_dir[512]; -char fn_runtime[256]; -static char *outfile_name = 0; - -char *SwigLib; - -extern "C" -int swig11_init(int argc, char *argv[]) { - int i; - char *c; - char infile[512]; - int help = 0; - - lang = new SWIG_LANG; - f_wrappers = 0; - f_init = 0; - f_header = 0; - - // Get options - for (i = 1; i < argc; i++) { - if (argv[i]) { - if(strcmp(argv[i],"-tcl") == 0) { - fprintf(stderr,"swig: -tcl option now implies -tcl8\n"); - lang = new TCL8; - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-tcl8") == 0) { - lang = new TCL8; - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-python") == 0) { - lang = new PYTHON; - Swig_mark_arg(i); - - } else if (strcmp(argv[i],"-perl5") == 0) { - lang = new PERL5; - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-guile") == 0) { - lang = new GUILE; - Swig_mark_arg(i); -#ifdef OLD - } else if (strcmp(argv[i],"-java") == 0) { - lang = new JAVA; - Swig_mark_arg(i); -#endif - } else if (strcmp(argv[i],"-mzscheme") == 0) { - lang = new MZSCHEME; - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-ruby") == 0) { - lang = new RUBY; - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-help") == 0) { - fputs(usage,stderr); - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-c++") == 0) { - CPlusPlus=1; - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-c") == 0) { - NoInclude=1; - Preprocessor_define((void *) "SWIG_NOINCLUDE 1", 0); - Swig_mark_arg(i); - } else if (strcmp(argv[i],"-make_default") == 0) { - GenerateDefault = 1; - Swig_mark_arg(i); - } else if(strcmp(argv[i],"-module") == 0) { - if (argv[i+1]) { - swig_module = NewString(argv[i+1]); - Swig_mark_arg(i); - Swig_mark_arg(i+1); - i++; - } else { - Swig_arg_error(); - } - } else if (strcmp(argv[i],"-o") == 0) { - if (argv[i+1]) { - outfile_name = argv[i+1]; - Swig_mark_arg(i); - Swig_mark_arg(i+1); - i++; - } - } else if (strcmp(argv[i],"-help") == 0) { - fputs(usage,stderr); - Swig_mark_arg(i); - help = 1; - } - } - } - // Parse language dependent options - lang->parse_args(argc,argv); - - if (help) return 0; - - // Create names of temporary files that are created - sprintf(infilename,"%s", argv[argc-1]); - - // Check the suffix for a .c file. If so, we're going to - // declare everything we see as "extern" - - ForceExtern = check_suffix(infilename); - // Strip off suffix - - c = infilename + strlen(infilename); - while (c != infilename) { - if (*c == '.') { - *c = 0; - break; - } else { - c--; - } - } - if (!outfile_name) { - char *cc = infilename + strlen(infilename); - while (cc != infilename) { - if (*cc == '/') { - cc++; - break; - } - cc--; - } - sprintf(fn_runtime,"%s_wrap.c",infilename); - strcpy(infile,infilename); - outfile_name = fn_runtime; - } else { - sprintf(fn_runtime,"%s",outfile_name); - } - { - // Try to identify the output directory - char *cc = outfile_name; - char *lastc = outfile_name; - while (*cc) { - if (*cc == '/') lastc = cc+1; - cc++; - } - cc = outfile_name; - char *dd = output_dir; - while (cc != lastc) { - *dd = *cc; - dd++; - cc++; - } - *dd = 0; - // Patch up the input filename - cc = infilename + strlen(infilename); - while (cc != infilename) { - if (*cc == '/') { - cc++; - break; - } - cc--; - } - strcpy(infile,cc); - } - return 0; -} - - -extern void generate(DOH *top); - -extern "C" -DOH *swig11_run(DOH *node) { - if ((f_runtime = fopen(fn_runtime,"w")) == 0) { - fprintf(stderr,"Unable to open %s\n", fn_runtime); - Swig_exit(1); - } - f_header = NewString(""); - f_wrappers = NewString(""); - f_init = NewString(""); - - Swig_register_filebyname("header",f_header); - Swig_register_filebyname("runtime", f_runtime); - Swig_register_filebyname("wrapper", f_wrappers); - Swig_register_filebyname("init", f_init); - - // Set up the typemap for handling new return strings - if (CPlusPlus) - Swig_typemap_register((char*)"newfree",(char*)"p.char",(char*)"",(char*)"delete [] $source;\n",0); - else - Swig_typemap_register((char*)"newfree",(char*)"p.char",(char*)"",(char*)"free($source);\n",0); - - generate(node); - - Dump(f_header,f_runtime); - Dump(f_wrappers, f_runtime); - Wrapper_pretty_print(f_init,f_runtime); - fclose(f_runtime); - return node; -} - -extern "C" -void swig11module() { - Swig_register_module("tcl8","swig:top", swig11_init, swig11_run); - Swig_register_module("python","swig:top", swig11_init, swig11_run); - Swig_register_module("perl5","swig:top", swig11_init, swig11_run); - Swig_register_module("ruby","swig:top", swig11_init, swig11_run); - Swig_register_module("guile","swig:top", swig11_init, swig11_run); - Swig_register_module("mzscheme","swig:top", swig11_init, swig11_run); - Swig_register_module("swig11","swig:top", swig11_init, swig11_run); - Swig_register_module("xml","swig:top", xml_init, xml_run); -} diff --git a/SWIG/Source/Modules1.1/swig11.h b/SWIG/Source/Modules1.1/swig11.h deleted file mode 100644 index cfc222861..000000000 --- a/SWIG/Source/Modules1.1/swig11.h +++ /dev/null @@ -1,121 +0,0 @@ -/* ----------------------------------------------------------------------------- - * swig11.h - * - * Main header file for the SWIG1.1 core. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 1998-2000. The University of Chicago - * Copyright (C) 1995-1998. The University of Utah and The Regents of the - * University of California. - * - * See the file LICENSE for information on usage and redistribution. - * - * $Header$ - * ----------------------------------------------------------------------------- */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#include "swigver.h" - -extern "C" { -#include "swig.h" -} - -/* Global variables. */ - -extern FILE *f_runtime; // Runtime code -extern DOH *f_header; // Headers -extern DOH *f_wrappers; // Wrappers -extern DOH *f_init; // Initialization code -extern FILE *f_input; -extern int CPlusPlus; // C++ mode -extern int AddMethods; // AddMethods mode -extern int NewObject; // NewObject mode -extern int NoInclude; // NoInclude flag -extern char output_dir[512]; // Output directory -extern int Verbose; -extern int ReadOnly; // Read only mode -extern int Native; // Native mode - -/* Miscellaneous stuff */ - -#define tab4 " " -#define tab8 " " - -// Modes for different types of inheritance - -#define INHERIT_FUNC 0x1 -#define INHERIT_VAR 0x2 -#define INHERIT_CONST 0x4 -#define INHERIT_ALL (INHERIT_FUNC | INHERIT_VAR | INHERIT_CONST) - -/* Language Class */ -class Language { -public: - virtual void parse_args(int argc, char *argv[]) = 0; - virtual void initialize(String *modname) = 0; - virtual void close(void) = 0; - virtual void import(String *modname); - - /* Basic function, variable, constant API (required) */ - virtual void function(DOH *node) = 0; - virtual void variable(DOH *node) = 0; - virtual void constant(DOH *node) = 0; - virtual void nativefunction(DOH *node); - virtual void create_command(String *cname, String *iname); - - /* Optional C++ handling */ - virtual void cpp_open_class(DOH *node); - virtual void cpp_memberfunction(DOH *node); - virtual void cpp_constructor(DOH *node); - virtual void cpp_destructor(DOH *node); - virtual void cpp_variable(DOH *node); - virtual void cpp_staticfunction(DOH *node); - virtual void cpp_constant(DOH *node); - virtual void cpp_staticvariable(DOH *node); - virtual void cpp_close_class(); - - virtual void cpp_class_decl(DOH *node); - virtual void cpp_inherit(List *bases); - - /* Miscellaneous features */ - - virtual void add_typedef(SwigType *t, String *name); - virtual void pragma(DOH *node); - -}; - -/* Emit functions */ - -extern void new_create_function(char *, char *, SwigType *, ParmList *); -extern void emit_set_get(DOH *node); -extern void emit_set_action(DOHString_or_char *decl); - -/* These are in the new core */ -extern "C" void *Preprocessor_define(void *, int); - -// Misc - -extern int emit_args(DOH *node, Wrapper *f); -extern void emit_func_call(DOH *node, Wrapper *f); -extern int check_numopt(ParmList *); -extern void SWIG_config_file(const String_or_char *); - -/* C++ utility functions */ -extern int cplus_check_abstract(DOH *node); -extern void cplus_walk_inherit(DOH *cls, void (*action)(DOH *base, void *clientdata), void *clientdata); - -extern Language *lang; - -/* swig11.h ends here */ - - - - - - - - diff --git a/SWIG/Source/Modules1.1/xml.cxx b/SWIG/Source/Modules1.1/xml.cxx deleted file mode 100644 index e3891b1c6..000000000 --- a/SWIG/Source/Modules1.1/xml.cxx +++ /dev/null @@ -1,304 +0,0 @@ -/* ----------------------------------------------------------------------------- - * xml.cxx - * - * Generate XML representation - * - * Author(s) : SWIG core: David Beazley (beazley@cs.uchicago.edu) - * XML module: Klaus Wiederaenders (kwconsulting@compuserve.com) - * Copyright (C) 1999-2001. The University of Chicago - * See the file LICENSE for information on usage and redistribution. - * ----------------------------------------------------------------------------- */ - -/* DB: I had to take some features related to package naming out of this to - get the new type system to work. These need to be put back in at some - point. */ - -static char cvsroot[] = "$Header$"; - -#include <time.h> -#include "swig11.h" -#include "xml.h" -#include "dohobj.h" - -static char *usage = (char*)"\ -XML Options (available with -xml)\n\ - -o filename - Output file\n\ - -dtd filename - Stylsheet file\n\n"; - -static String *dtdfile = 0; -static String *xmlfile = 0; -static int indent = 0; -static const int indentsize = 2; -static const char * indentchar = " "; -FILE *f_xml = 0; -extern "C" -{ - -static String * emit_indent( int indent ) -{ - String *out; - out = NewString(""); - for(int iX = 0; iX < indent; iX ++ ) - Append( out, indentchar ); - return Swig_temp_result(out); -} - -void xml(DOH *node) -{ - if (ObjGetMark(node)) - { - Printf( f_xml, "%s<swigxml:node ident=\"ID%0X\" />\n", - emit_indent( indent ), node); - return; - } - indent += indentsize; - ObjSetMark(node, 1); - while (node) - { - DohBase * base = (DohBase *) node; - if( !base ) - return; - switch( base->type ) - { - case 1: - Replace( node, "<", "<", DOH_REPLACE_ANY ); - Replace( node, "&", "&", DOH_REPLACE_ANY ); - Printf( f_xml, "%s", node ); - break; - case 2: - { - indent += indentsize; - DOH *item; - - item = Firstitem(node); - while (item) - { - DohBase * itembase = (DohBase *) item; - if( itembase && itembase->type == DOHTYPE_STRING ) - { - Printf( f_xml, - "%s<swigxml:item name=\"%s\" ident=\"ID%0X\" />\n", - emit_indent( indent ), Char( item ), item ); - } - else - { - Printf( f_xml, "%s<swigxml:item ident=\"ID%0X\">\n", - emit_indent( indent ), item ); - xml( item ); - Printf( f_xml, "%s</swigxml:item>\n", - emit_indent( indent ) ); - - } - item = Nextitem(node); - } - indent -= indentsize; - break; - } - case 3: - { - String * none = NewString("swigxml:none"); - DOH * tag = Getattr( node, "tag" ); - if( !tag ) - { - /* - ObjSetMark(node, 0); - Printf( f_xml, "------- %s\n", Char( Str( node ))); - ObjSetMark(node, 1); - */ - tag = none; - } - DOH * name = Getattr( node, "name" ); - char * ttt = Char( tag ); - - if( tag && ::strchr( Char(tag), ':' ) == 0 ) - Insert( tag, 0, "swigxml:" ); - // check for simple node - int length = Len( node ); - if( Getattr( node, "tag" ) ) - --length; - if( Getattr( node, "prev" ) ) - --length; - if( Getattr( node, "next" ) ) - --length; - if( Getattr( node, "parent" ) ) - --length; - if( Getattr( node, "last" ) ) - --length; - if( length == 1 && name ) - { // Yes, it's simple - if( Len( name) ) - Printf( f_xml, "%s<%s name=\"%s\" ident=\"ID%0X\" />\n", - emit_indent( indent ), Char( tag ), Char( name ), - node ); - else - Printf( f_xml, "%s<%s ident=\"ID%0X\" />\n", - emit_indent( indent ), Char( tag ), node ); - Delete( none ); - break; - } - if( Len( name) ) - Printf( f_xml, "%s<%s name=\"%s\" ident=\"ID%0X\">\n", - emit_indent( indent ), Char( tag ), Char( name ), node ); - else - Printf( f_xml, "%s<%s ident=\"ID%0X\">\n", - emit_indent( indent ), Char( tag ), node ); - indent += indentsize; - - DOH * key = Firstkey(node); - while (key) - { - char * kkkk = Char( key ); - DOH * attr = Getattr( node, key ); - char * aaaa = Char( Getattr( node, key ) ); - DohBase * attrbase = (DohBase *) attr; - if( ::strcmp( Char( key ), "tag") - && ::strcmp( Char( key ), "code") - && ::strcmp( Char( key ), "name") - && attrbase && attrbase->type == DOHTYPE_STRING) - { - Replace( attr, "\"", """, DOH_REPLACE_ANY ); - Printf( f_xml, - "%s<swigxml:%s string=\"%s\" ident=\"ID%0X\" />\n", - emit_indent( indent ), Char( key ), Char( attr ), - attr ); - } - else - { - if( ::strcmp( Char( key ), "prev" ) - && ::strcmp( Char( key ), "next" ) - && ::strcmp( Char( key ), "parent" ) - && ::strcmp( Char( key ), "tag" ) - && ::strcmp( Char( key ), "name" ) - && ::strcmp( Char( key ), "last" ) ) - { - Printf( f_xml, "%s<swigxml:%s ident=\"ID%0X\">\n", - emit_indent( indent ), Char( key ), key ); - xml( attr ); - Printf( f_xml, "%s</swigxml:%s>\n", - emit_indent( indent ), Char( key ) ); - } - - } - key = Nextkey(node); - } - indent -= indentsize; - Printf( f_xml, "%s</%s>\n", emit_indent( indent ), Char( tag ) ); - Delete( none ); - break; - } - case 4: - Printf( f_xml, "%s ", "DOHTYPE_VOID" ); - break; - case 5: - Printf( f_xml, "%s ", "DOHTYPE_FILE" ); - break; - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - Printf( f_xml, "%d ", base->type ); - ; - } - ObjSetMark(node, 0); - node = Swig_next(node); - } - indent -= indentsize; - -} - -int xml_init(int argc, char *argv[]) -{ - int i; - int help = 0; - - // Get options - for (i = 1; i < argc; i++) - { - if (argv[i]) - { - if(strcmp(argv[i],"-xml") == 0) - { - if (argv[i+1]) - { - xmlfile = NewString(argv[i+1]); - // don't do this: Swig_mark_arg(i); - Swig_mark_arg(i+1); - i++; - } - else - { - Swig_arg_error(); - } - continue; - } - if(strcmp(argv[i],"-dtd") == 0) - { - if (argv[i+1]) - { - dtdfile = NewString(argv[i+1]); - Swig_mark_arg(i); - Swig_mark_arg(i+1); - i++; - } - else - { - Swig_arg_error(); - } - continue; - } - if (strcmp(argv[i],"-help") == 0) - { - fputs(usage,stderr); - Swig_mark_arg(i); - help = 1; - } - } - } - - if (help) return 0; - Preprocessor_define((void *) "SWIGXML 1", 0); - if( ! Swig_swiglib_get() ) - Swig_swiglib_set("xml"); - - return 0; -} - -DOH *xml_run(DOH *node) -{ - time_t now; - time( &now ); - char buffer[32]; - ::strcpy( buffer, ctime(&now)); - buffer[24] = '\0'; - char * filename = Char(xmlfile); - if ((f_xml = fopen( filename,"w")) == 0) { - fprintf(stderr,"Unable to open %s\n", filename); - Swig_exit(1); - } - Printf( f_xml, "<!-- Generated by Swig XML at %s -->\n", buffer ); - - if( dtdfile ) - { - Printf( f_xml, "<!DOCTYPE swigxml:swig SYSTEM \"%s\">\n", dtdfile); - } - - Printf( f_xml, "<swigxml:swig" - " name=\"namespaces\"" - " xmlns:swigxml=\"http://jniplusplus.sourceforge.net\"" - " xmlns:swig=\"http://swig.sourceforge.net\"" - " xmlns:c=\"http://www.ansi.org\"" - " ident=\"ID000000\">\n" ); - xml(node); - Printf( f_xml, "</swigxml:swig>\n" ); - - fclose(f_xml); - return node; -} - -} diff --git a/SWIG/Tools/WAD/CHANGES b/SWIG/Tools/WAD/CHANGES deleted file mode 100644 index 455c1ca6b..000000000 --- a/SWIG/Tools/WAD/CHANGES +++ /dev/null @@ -1,21 +0,0 @@ -WAD 0.2 - June 24, 2001 - - - Minor changes. Added the wadtrace file - - - Put everything under the LGPL. - -WAD 0.1 - March 23, 2001 - - - Extensive changes to WAD core. WAD now builds an exception - object that can be queried and manipulated after a fault - occurs. - - - Better collection of debugging information. WAD is now - able to determine basic datatypes and other information - from stabs data. - - - Better reliability overall. - -WAD 0.0 - January, 2001 - -beazley - Initial "release". Not much of a release really. diff --git a/SWIG/Tools/WAD/COPYING b/SWIG/Tools/WAD/COPYING deleted file mode 100644 index b1e3f5a26..000000000 --- a/SWIG/Tools/WAD/COPYING +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the library's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser 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 - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/SWIG/Tools/WAD/HACK b/SWIG/Tools/WAD/HACK deleted file mode 100644 index c99e181d6..000000000 --- a/SWIG/Tools/WAD/HACK +++ /dev/null @@ -1,78 +0,0 @@ -The WAD Developers Guide - -David Beazley (beazley@cs.uchicago.edu) - -$Header$ - -1. Introduction - -This short document is intended for anyone who feels inclined to work -on WAD and make improvements. It is by no means complete. However, -it contains random commentary on the current implementation. - -2. A brief word on the execution environment - -Because WAD is embedded in the same application it is intended to -debug, it must take an extremely conservative approach to its own -execution environment. Specifically, it can not rely upon the correct -operation of C library--especially with respect to memory management -and other basic operations. Because of this, the implementation of -WAD makes every effort to be as self-contained as possible--thus -minimizing its exposure to corrupted libraries in the faulting -application. Closely related to this, WAD does not rely on any -third-party libraries (e.g., libbfd) since it is almost impossible to -fully verify the way in which such libraries might use other programming -libraries. - -With that said, you might keep the following rules in mind: - - rule 1: Trust nothing--it might be broken. - rule 2: When in doubt, see rule 1. - -(Of course, we can probably get away with assuming that the OS isn't -hosed). - -3. Memory management - -There are two problems here: first, the dynamic memory -allocator may be corrupted or broken (e.g., as might occur when -you double-free memory or free memory not allocated by malloc). -Second, the WAD signal handler prefers to execute own on its own -signal handling stack. This stack is of limited size so it is not -a reliable place to put large amounts of data. - -Small buffers and scratch areas are managed through the use of static -variables allocated in the WAD data-segment. - -For dynamic memory management, WAD provides its own memory allocator -in the function wad_malloc(). This function allocates memory by using -mmap() to grab anonymous memory regions (mapped to /dev/zero). This -memory is currently allocated in chunks of 64Kbytes as needed. - -To simplify the implementation and prevent potential memory problems -in WAD itself, WAD never releases the memory that it allocates. There -is no wad_free() operation nor is there any way to release all of the -memory previously allocated. - -Although memory is never released, WAD tries to intern commonly used -strings. An internal string hash is built as WAD runs and in most -cases, each string is mapped to a single instance of the string in -this hash table. The function wad_string_lookup(char *s) is used to -return a pointer to the string s in the hash table. If no entry -exists, it is created and a pointer is returned. - -4. I/O - -It is probably a bad idea to use buffered I/O with WAD. This may -result in implicit calls to malloc() and related functions. - - - - - - - - - - - diff --git a/SWIG/Tools/WAD/Include/wad.h b/SWIG/Tools/WAD/Include/wad.h deleted file mode 100644 index fc47237cc..000000000 --- a/SWIG/Tools/WAD/Include/wad.h +++ /dev/null @@ -1,269 +0,0 @@ -/* ----------------------------------------------------------------------------- - * wad.h - * - * WAD header file (obviously) - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2001. University of Chicago. All rights reserved. - * - * $Header$ - * ----------------------------------------------------------------------------- */ - -#include <stdio.h> -#include <unistd.h> -#include <signal.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <limits.h> -#include <sys/mman.h> -#include <ctype.h> -#include <sys/ucontext.h> - -#ifdef WAD_SOLARIS -#include <procfs.h> - -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - /* Core datatypes */ - - typedef int int32; - typedef unsigned uint32; - typedef short int16; - typedef unsigned short uint16; - typedef signed char int8; - typedef unsigned char uint8; - - -#ifndef MAX_PATH -#define MAX_PATH 1024 -#endif - -#define WAD_SRC_WINDOW 2 - -/* --- Low level memory management functions --- */ - -extern int wad_memory_init(); -extern void *wad_malloc(int nbytes); -extern char *wad_strdup(const char *c); -extern void wad_memory_debug(); -extern void wad_memcpy(void *t, const void *s, unsigned len); - - /* --- Low level string handling --- */ - -extern char *wad_string_lookup(char *s); -extern void wad_string_debug(); -extern char *wad_strcpy(char *t, const char *s); -extern char *wad_strcat(char *t, const char *s); -extern int wad_strlen(const char *s); - -/* --- I/O, Debugging --- */ - -extern void wad_printf(const char *fmt, ...); -extern char *wad_format_hex(unsigned long u, int leading); -extern char *wad_format_unsigned(unsigned long u, int width); -extern char *wad_format_signed(long s, int width); - -/* --- Memory segments --- */ -typedef struct WadSegment { - char *base; /* Base address for symbol lookup */ - char *vaddr; /* Virtual address start */ - unsigned long size; /* Size of the segment (bytes) */ - unsigned long offset; /* Offset into mapped object */ - char *mapname; /* Filename mapped to this region */ - char *mappath; /* Full path to mapname */ - struct WadSegment *next; /* Next segment */ -} WadSegment; - -extern int wad_segment_read(); -extern WadSegment *wad_segment_find(void *vaddr); -extern int wad_segment_valid(void *vaddr); - -/* --- Object files --- */ -typedef struct WadObjectFile { - void *ptr; /* Pointer to data */ - int len; /* Length of data */ - int type; /* Type of the object file */ - char *path; /* Path name of this object */ - struct WadObjectFile *next; -} WadObjectFile; - -extern void wad_object_reset(); -extern WadObjectFile *wad_object_load(const char *path); -extern int wad_file_check(void *); - -#define SYM_LOCAL 1 -#define SYM_GLOBAL 2 - -/* Signal handling */ -extern void wad_init(); -extern void wad_signalhandler(int, siginfo_t *, void *); -extern void wad_signal_init(); -extern void wad_signal_clear(); -extern void wad_set_return(const char *name, long value); -extern void wad_set_return_value(long value); -extern void wad_set_return_func(void (*f)(void)); - -typedef struct WadLocal { - char *name; /* Name of the local */ - void *ptr; /* Pointer to the actual data (if known) */ - int size; /* Size of the data (if known) */ - int type; /* Data type */ - - /* Debugging information */ - - int loc; /* Location: register or stack */ - int stack; /* location on the stack */ - int reg; /* Register number */ - int line; /* Line number where defined */ - struct WadLocal *next; -} WadLocal; - -#define PARM_REGISTER 1 -#define PARM_STACK 2 - -/* Type codes for local variables */ - -#define WAD_TYPE_UNKNOWN 0 -#define WAD_TYPE_INT32 1 -#define WAD_TYPE_INT16 2 -#define WAD_TYPE_INT8 3 -#define WAD_TYPE_INT64 4 -#define WAD_TYPE_UINT32 5 -#define WAD_TYPE_UINT16 6 -#define WAD_TYPE_UINT8 7 -#define WAD_TYPE_UINT64 8 -#define WAD_TYPE_FLOAT 9 -#define WAD_TYPE_DOUBLE 10 -#define WAD_TYPE_POINTER 11 -#define WAD_TYPE_CHAR 12 - -extern long wad_local_as_long(WadLocal *loc); -extern double wad_local_as_double(WadLocal *loc); - -/* Data structure containing information about each stack frame */ - -typedef struct WadFrame { - long frameno; /* Frame number */ - struct WadFrame *next; /* Next frame up the stack */ - struct WadFrame *prev; /* Previous frame down the stack */ - - /* Stack context information */ - long pc; /* Real PC */ - long sp; /* Real SP */ - long fp; /* Real FP */ - char *stack; /* Pointer to where a copy of the stack frame is stored */ - int stack_size; /* Stack frame size (fp-sp) */ - - /* Loading information. Contains information from /proc as well as a pointer to - the executable or shared library in which the PC is located */ - - WadSegment *segment; /* Memory segment corresponding to PC */ - WadObjectFile *object; /* Object file corresponding to PC */ - - /* Symbol table information for PC */ - - char *sym_name; /* Symbol name */ - int sym_nlen; /* Symbol name length */ - char *sym_file; /* Source file (if any) */ - unsigned long sym_base; /* Symbol base address */ - unsigned long sym_size; /* Symbol size */ - int sym_type; /* Symbol type */ - int sym_bind; /* Symbol binding */ - - /* Location information */ - char *loc_objfile; /* Object filename */ - char *loc_srcfile; /* Source filename */ - int loc_line; /* Source line */ - - /* Debugging information */ - int debug_check; /* Checked debugging information */ - int debug_nargs; /* Number of arguments */ - WadLocal *debug_args; /* Arguments */ - WadLocal *debug_lastarg; /* Last argument */ - int debug_nlocals; /* Number of locals */ - WadLocal *debug_locals; /* Local variables */ - WadLocal *debug_lastlocal; /* Last local */ - - /* Output strings */ - char *debug_str; /* Debugging string */ - char *debug_srcstr; /* Source string */ - - int last; /* Last frame flag */ -} WadFrame; - -extern WadFrame *wad_stack_trace(unsigned long, unsigned long, unsigned long); -extern void wad_stack_debug(WadFrame *f); - -extern char *wad_strip_dir(char *); -extern void wad_default_callback(int signo, WadFrame *frame, char *ret); -extern void wad_dump_trace(int fd, int signo, WadFrame *frame, char *ret); - -extern void wad_set_callback(void (*h)(int, WadFrame *, char *)); -extern char *wad_load_source(char *, int line); -extern void wad_release_source(); -extern void wad_release_trace(); -extern long wad_steal_arg(WadFrame *f, char *symbol, int argno, int *error); -extern long wad_steal_outarg(WadFrame *f, char *symbol, int argno, int *error); - -extern char *wad_arg_string(WadFrame *f); - -typedef struct { - char name[128]; - long value; -} WadReturnFunc; - -extern void wad_set_returns(WadReturnFunc *rf); -extern WadReturnFunc *wad_check_return(const char *name); - -extern int wad_search_stab(void *stab, int size, char *stabstr, WadFrame *f); - -extern void wad_find_object(WadFrame *f); -extern void wad_find_symbol(WadFrame *f); -extern void wad_find_debug(WadFrame *f); -extern void wad_build_vars(WadFrame *f); -extern char *wad_format_var(WadLocal *l); - -extern void wad_debug_make_strings(WadFrame *f); - -/* --- Debugging Interface --- */ - -#define DEBUG_SEGMENT 0x1 -#define DEBUG_SYMBOL 0x2 -#define DEBUG_STABS 0x4 -#define DEBUG_OBJECT 0x8 -#define DEBUG_FILE 0x10 -#define DEBUG_HOLD 0x20 -#define DEBUG_RETURN 0x40 -#define DEBUG_SYMBOL_SEARCH 0x80 -#define DEBUG_INIT 0x100 -#define DEBUG_NOSTACK 0x200 -#define DEBUG_ONESHOT 0x400 -#define DEBUG_STACK 0x800 -#define DEBUG_UNWIND 0x1000 -#define DEBUG_SIGNAL 0x2000 -#define DEBUG_STRING 0x4000 -#define DEBUG_MEMORY 0x8000 - -extern int wad_debug_mode; -extern int wad_heap_overflow; - -#ifdef WAD_LINUX -#define WAD_LITTLE_ENDIAN -#endif -#ifdef WAD_SOLARIS -#define WAD_BIG_ENDIAN -#endif - -#ifdef __cplusplus -} -#endif - - - - diff --git a/SWIG/Tools/WAD/Makefile.in b/SWIG/Tools/WAD/Makefile.in deleted file mode 100644 index d76f1179c..000000000 --- a/SWIG/Tools/WAD/Makefile.in +++ /dev/null @@ -1,46 +0,0 @@ -# Generated automatically from Makefile.in by configure. - -SHELL = /bin/sh -prefix = @prefix@ -execprefix= @exec_prefix@ -LIB = $(execprefix)/lib - -# Location of your Python installation -PYINCLUDE = @PYINCLUDE@ - -# Location of your Tcl installation -TCLINCLUDE = @TCLINCLUDE@ - -# Location of your Perl installation -PERLINCLUDE = @PERL5EXT@ - -all: wad @MAKEPYTHON@ @MAKETCL@ #@MAKEPERL@ - -wad: - @cd Wad; $(MAKE) wad - -python: - @cd Python; $(MAKE) SINCLUDE='$(PYINCLUDE)' python - -tcl: - @cd Tcl; $(MAKE) SINCLUDE='$(TCLINCLUDE)' tcl - -perl: - @cd Wad; $(MAKE) SINCLUDE='$(PERLINCLUDE)' perl - -install: - cp libwad*.so $(LIB) - chmod a+rx $(LIB)/libwad*.so - -semi: - @cd Wad; $(MAKE) semi - @cd Python; $(MAKE) semi - @cd Tcl; $(MAKE) semi - -clean: - @cd Wad; $(MAKE) clean - @cd Python; $(MAKE) clean - @cd Tcl; $(MAKE) clean - @cd Test; $(MAKE) clean - rm *.so - diff --git a/SWIG/Tools/WAD/Misc/fileheader b/SWIG/Tools/WAD/Misc/fileheader deleted file mode 100644 index 7b82e9e05..000000000 --- a/SWIG/Tools/WAD/Misc/fileheader +++ /dev/null @@ -1,28 +0,0 @@ -/* ----------------------------------------------------------------------------- - * segment.c - * - * This file provides access to the virtual memory map of a process - * including the location of the executable, data segments, shared - * libraries, and memory mapped regions. This information is - * obtained through /proc. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ diff --git a/SWIG/Tools/WAD/Papers/README b/SWIG/Tools/WAD/Papers/README deleted file mode 100644 index 8cac04da5..000000000 --- a/SWIG/Tools/WAD/Papers/README +++ /dev/null @@ -1,8 +0,0 @@ -This directory contains papers and information about WAD. - -python.html - WAD paper from Python9. -usenix2001.tex - USENIX 2001 Technical conference submission. - This paper was accepted, but the text has not yet - been updated to final copy. -WADTalk.pdf - Slides from the WAD Talk at Python9. - diff --git a/SWIG/Tools/WAD/Papers/WADTalk.pdf b/SWIG/Tools/WAD/Papers/WADTalk.pdf Binary files differdeleted file mode 100644 index 8ca120d93..000000000 --- a/SWIG/Tools/WAD/Papers/WADTalk.pdf +++ /dev/null diff --git a/SWIG/Tools/WAD/Papers/fig1.png b/SWIG/Tools/WAD/Papers/fig1.png Binary files differdeleted file mode 100644 index dbbfb1dd9..000000000 --- a/SWIG/Tools/WAD/Papers/fig1.png +++ /dev/null diff --git a/SWIG/Tools/WAD/Papers/python.html b/SWIG/Tools/WAD/Papers/python.html deleted file mode 100644 index 90282bcea..000000000 --- a/SWIG/Tools/WAD/Papers/python.html +++ /dev/null @@ -1,860 +0,0 @@ -<html> -<head> -<title>WAD: A Module for Converting Fatal Extension Errors into Python Exceptions</title> -</head> -<body bgcolor="#ffffff"> -<center> - -<h2>WAD: A Module for Converting Fatal Extension Errors into Python Exceptions</h2> -<h6>David M. Beazley <br> -Department of Computer Science<br> -University of Chicago<br> -Chicago, IL 60637<br> -beazley@cs.uchicago.edu<br> -</h6> -</center> - -<h3>Abstract</h3> -<em> -One of the more popular uses of Python is as an extension language for -applications written in compiled languages such as C, C++, and -Fortran. Unfortunately, one of the biggest drawbacks of this approach -is the lack of a useful debugging and error handling facility for -identifying problems in extension code. In part, this limitation is -due to the fact that Python does not know anything about the internal -implementation of an extension module. A more difficult problem is -that compiled extensions sometimes fail with catastrophic errors such -as memory access violations, failed assertions, and floating point -exceptions. These types of errors fall outside the realm of normal -Python exception handling and are particularly difficult to identify -and debug. Although traditional debuggers can find the location of a -fatal error, they are unable to report the context in which such an -error has occurred with respect to a Python script. This paper describes -an experimental system that converts fatal extension errors -into Python exceptions. In particular, a dynamically -loadable module, WAD (Wrapped Application Debugger), has been developed which catches -fatal errors, unwinds the call stack, and generates Python exceptions -with debugging information. WAD requires no modifications to Python, -works with all extension modules, and introduces no performance -overhead. An initial implementation of the system is currently -available for Sun SPARC Solaris and i386-Linux. - -</em> - -<h3>1. Introduction</h3> - -One of the primary reasons C, C++, and Fortran programmers are -attracted to Python is its ability to serve as an extension language -for compiled programs. Furthermore, tools such as SIP, CXX, Pyfort, FPIG, -and SWIG make it extremely easy for a programmer to ``wrap'' existing -software into an extension module [1,2,3,4,5]. Although this approach is -extremely attractive in terms of providing a highly usable and -flexible environment for users, extension modules suffer from -problems not normally associated with Python -scripts---especially when they don't work. - -<p> -Normally, Python programming errors result in an exception like this: - -<blockquote><pre> -% python foo.py -Traceback (innermost last): - File "foo.py", line 11, in ? - foo() - File "foo.py", line 8, in foo - bar() - File "foo.py", line 5, in bar - spam() - File "foo.py", line 2, in spam - doh() -NameError: doh -% -</pre></blockquote> - -Unfortunately for compiled extensions, the following situation sometimes occurs: - -<blockquote><pre> -% python foo.py -Segmentation Fault (core dumped) -% -</pre></blockquote> - -Needless to say, this isn't very informative--well, -other than indicating that something ``very bad'' happened. - -<p> -In order to identify the source of a fatal error, a programmer can run a -debugger on the Python executable or on a core file like this: - -<blockquote><pre> -% gdb /usr/local/bin/python -(gdb) run foo.py -Starting program: /usr/local/bin/python foo.py - -Program received signal SIGSEGV, Segmentation fault. -0xff060568 in doh () from /u0/beazley/Projects/WAD/Python/./libfoo.so -(gdb) where -#0 0xff060568 in doh () from /u0/beazley/Projects/WAD/Python/./libfoo.so -#1 0xff082f34 in _wrap_doh () - from /u0/beazley/Projects/WAD/Python/./dohmodule.so -#2 0x2777c in call_builtin (func=0x1984b8, arg=0x1a1ccc, kw=0x0) - at ceval.c:2650 -#3 0x27648 in PyEval_CallObjectWithKeywords (func=0x1984b8, arg=0x1a1ccc, - kw=0x0) at ceval.c:2618 -#4 0x25d18 in eval_code2 (co=0x19acf8, globals=0x0, locals=0x1c7844, - args=0x1984b8, argcount=1625472, kws=0x0, kwcount=0, defs=0x0, defcount=0, - owner=0x0) at ceval.c:1951 -#5 0x25954 in eval_code2 (co=0x199620, globals=0x0, locals=0x1984b8, - args=0x196654, argcount=1862720, kws=0x197788, kwcount=0, defs=0x0, -#6 0x25954 in eval_code2 (co=0x19ad38, globals=0x0, locals=0x196654, - args=0x1962fc, argcount=1862800, kws=0x198e90, kwcount=0, defs=0x0, - defcount=0, owner=0x0) at ceval.c:1850 -#7 0x25954 in eval_code2 (co=0x1b6c60, globals=0x0, locals=0x1962fc, - args=0x1a1eb4, argcount=1862920, kws=0x0, kwcount=0, defs=0x0, defcount=0, - owner=0x0) at ceval.c:1850 -#8 0x22da4 in PyEval_EvalCode (co=0x1b6c60, globals=0x1962c4, locals=0x1962c4) - at ceval.c:319 -#9 0x3adb4 in run_node (n=0x18abf8, filename=0x1b6c60 "", globals=0x1962c4, - locals=0x1962c4) at pythonrun.c:886 -#10 0x3ad64 in run_err_node (n=0x18abf8, filename=0x1b6c60 "", - globals=0x1962c4, locals=0x1962c4) at pythonrun.c:874 -#11 0x3ad38 in PyRun_FileEx (fp=0x18a5a8, filename=0xffbefd7a "foo.py", - start=1616888, globals=0x1962c4, locals=0x1962c4, closeit=1) - at pythonrun.c:866 -#12 0x3a1d8 in PyRun_SimpleFileEx (fp=0x18a5a8, filename=0xffbefd7a "foo.py", - closeit=1) at pythonrun.c:579 -#13 0x39d84 in PyRun_AnyFileEx (fp=0x18a5a8, filename=0xffbefd7a "foo.py", - closeit=1) at pythonrun.c:459 -#14 0x1f498 in Py_Main (argc=2, argv=0xffbefc84) at main.c:289 -#15 0x1eec0 in main (argc=2, argv=0xffbefc84) at python.c:10 -</pre></blockquote> - -Unfortunately, even though the debugger identifies the location where the fault occurred, it -mostly provides information about the internals of the -interpreter. The debugger certainly doesn't reveal anything about the Python -program that led to the error (i.e., it doesn't reveal the -same information that would be contained in a Python traceback). As a result, -the debugger is of limited use when it comes to debugging an application that -consists of both compiled and Python code. - -<p> -Normally, extension developers try to avoid catastrophic errors by -adding error handling. If -an application is small or customized for use with Python, it can be -modified to raise Python exceptions. -Automated tools such as SWIG can also convert C++ -exceptions and C-related error handling mechanisms into Python -exceptions. However, no matter how much error checking is added, -there is always a chance that an extension will fail in an unexpected -manner. This is especially true for large applications that have been wrapped -into an extension module. In addition, certain types of errors such as floating -point exceptions (e.g., division by zero) are especially difficult to find -and eliminate. Finally, rigorous error checking may be omitted to improve -performance. - -<p> -To address these problems, an experimental module known as WAD (Wrapped -Application Debugger) has been developed. -WAD is able to -convert fatal errors into Python exceptions that include information -from the call stack as well as debugging -information. By turning such errors into Python exceptions, fatal -errors now result in a traceback that crosses the boundary between -Python code and compiled extension code. This makes it much -easier to identify and correct extension-related programming errors. -WAD requires no modifications to Python and is compatible with all -extension modules. However, it is also highly platform specific -and currently only runs on Sun Sparc -Solaris and i386-Linux. The primary goal of this paper is to motivate the problem -and to describe one possible solution. In addition, many of the -implementation issues -associated with providing an integrated error reporting mechanism are described. - -<h3>2. An Example</h3> - -WAD can either be imported as a Python extension module or linked to an -extension module. To illustrate, consider the earlier example: - -<blockquote><pre> -% python foo.py -Segmentation Fault (core dumped) -% -</pre></blockquote> - -To identify the problem, a programmer can run Python interactively and import WAD as follows: - -<blockquote><pre> -% python -Python 2.0 (#1, Oct 27 2000, 14:34:45) -[GCC 2.95.2 19991024 (release)] on sunos5 -Type "copyright", "credits" or "license" for more information. ->>> import libwadpy -WAD Enabled ->>> execfile("foo.py") -Traceback (most recent call last): - File "<stdin>", line 1, in ? - File "foo.py", line 16, in ? - foo() - File "foo.py", line 13, in foo - bar() - File "foo.py", line 10, in bar - spam() - File "foo.py", line 7, in spam - doh.doh(a,b,c) -SegFault: [ C stack trace ] - -#2 0x00027774 in call_builtin(func=0x1c74f0,arg=0x1a1ccc,kw=0x0) -#1 0xff022f7c in _wrap_doh(0x0,0x1a1ccc,0x160ef4,0x9c,0x56b44,0x1aa3d8) -#0 0xfe7e0568 in doh(a=0x3,b=0x4,c=0x0) in 'foo.c', line 28 - -/u0/beazley/Projects/WAD/Python/foo.c, line 28 - - int doh(int a, int b, int *c) { - => *c = a + b; - return *c; - } - ->>> -</pre></blockquote> - -In this case, we can -see that the program has tried to assign a value to a -NULL pointer (indicated by the value "c=0x0" in the last function call). Furthermore, we obtain a Python traceback that shows the -entire sequence of functions leading to the problem. Finally, since -control returned to the interpreter, it is possible to interactively -inspect various aspects of the application or to continue with the computation -(although this clearly depends on the severity of the error and the nature of the application). - -<p> -In certain applications, it may be difficult to run Python -interactively or to modify the code to explicitly import a special -debugging module. In these cases, WAD can be attached to an extension module with the -linker. For example: - -<blockquote><pre> -% ld -G $(OBJS) -o dohmodule.so -lwadpy -</pre></blockquote> - -This requires no recompilation of any source code--only a relinking of the -extension module. When Python loads the relinked extension module, WAD is automatically -initialized before Python invokes the module initialization function. - -<h3>3. Design Considerations for Embedded Error Recovery</h3> - -The primary design goal of WAD is provide an error reporting mechanism -for extension modules that is a natural extension of normal Python -exception handling. There are two primary motivations for -handling fatal errors in this manner: first, in the context of Python -programming, it is simply unnatural to run a separate debugging -application to identify a problem in an extension module when no such -requirement exists for scripts. Thus, an embedded error reporting -mechanism is simply more convenient. Second, the target users -of an extension module may not know how to use a debugger or even have -a development environment installed on their machine. Therefore, -the ability to produce an informative traceback within the -confines of the Python interpreter can be of tremendous value to an -extension developer. This is because users who report a problem will -be able to include an informative traceback as opposed to simply -saying ``the code crashed.'' - -<p> -A secondary design goal is to provide a system that is as non-invasive -as possible. The system should not require modifications to Python or -any extension modules and it should be easy to integrate -into the runtime environment of an application. In addition, it shouldn't -introduce any performance overhead. - -<p> -Finally, since WAD co-exists with the Python interpreter (i.e., in the same -process), there are a number of technical issues that have to be -addressed. First, fatal errors can theoretically occur anywhere in -the interpreter as well as in extension modules. Therefore, WAD needs -to know about Python's internal organization if it is going to provide -a graceful recovery back to the interpreter. Second, in order to -implement this recovery scheme, the system has to perform direct -manipulation of the CPU context and call stack. Last, but not least, -since the recovery code lives in the same address space as the -interpreter and extension modules it should not depend on the process -stack and heap (since both could have been corrupted by the faulting -application). - -<h3>4. Catching Fatal Errors</h3> - -WAD catches catastrophic errors by installing a -reliable signal handler for SIGSEGV, SIGBUS, SIGABRT, SIGILL, and SIGFPE [9]. Unlike the -more familiar BSD-style signal interface (as provided by the Python -signal module), reliable signal handlers are installed using the <tt>sigaction()</tt> system call and have a few notable properties: - -<ul> -<li> The signal handler can be configured to run on its own dedicated stack. - -<p> -<li> Handler functions can receive a structure containing the CPU context -including the CPU registers, program counter, and stack pointer. - -<p> -<li> Changes to the CPU context take effect immediately after the signal handler returns. -</ul> - -Therefore, the high level implementation of WAD is relatively straightforward: when a fatal signal occurs, -a handler function runs on an isolated signal handling stack. -The CPU context is then used to unwind the call stack and to inspect the process state. Finally, -if possible, the CPU context is modified in a manner that allows the signal handler to -return to Python with a raised exception. - -<h3>5. A Detailed Description of the Recovery Mechanism</h3> - -In this section, a more detailed description of the error recovery -scheme is presented. The precise implementation details of this are -highly platform specific and involve a number of advanced topics including -the Unix process file system (/proc), the ELF object file format, and the -Stabs compiler debugging format [6,7,8]. The details of these topics are -beyond the scope of this paper. However, this section hopes to -give the reader a small taste of the steps involved in implementing the recovery mechanism. - -<P> -The services of WAD are only invoked upon the reception of a fatal -signal. This triggers a signal handling function that results in a return to Python -as illustrated in the following figure: - -<center> -<img src="fig1.png"> -<h6>Control flow of the error recovery mechanism</h6> -</center> - -<p> -The steps required to implement this recovery are as follows: - -<ol> -<li> The values of the program counter and stack pointer are obtained from the CPU - context structure passed to the WAD signal handler. - -<p> -<li> The virtual memory map of the process is inspected to identify all of -the shared libraries, dynamically loaded modules, and valid memory regions. -This information is obtained by reading from the Unix /proc filesystem. -The following table illustrates the nature of this data: - - -<blockquote><pre> -Address Size Permissions File ----------- ----- ----------------- --------------------------------- -00010000 1264K read/exec /usr/local/bin/python -0015A000 184K read/write/exec /usr/local/bin/python -00188000 296K read/write/exec [ heap ] -FE7C0000 32K read/exec /u0/beazley/Projects/dohmodule.so -FE7D6000 8K read/write/exec /u0/beazley/Projects/dohmodule.so -... -FF100000 664K read/exec /usr/lib/libc.so.1 -FF1B6000 24K read/write/exec /usr/lib/libc.so.1 -FF1BC000 8K read/write/exec /usr/lib/libc.so.1 -FF2C0000 120K read/exec /usr/lib/libthread.so.1 -FF2EE000 8K read/write/exec /usr/lib/libthread.so.1 -FF2F0000 48K read/write/exec /usr/lib/libthread.so.1 -FF310000 40K read/exec /usr/lib/libsocket.so.1 -FF32A000 8K read/write/exec /usr/lib/libsocket.so.1 -FF330000 24K read/exec /usr/lib/libpthread.so.1 -FF346000 8K read/write/exec /usr/lib/libpthread.so.1 -FF350000 8K read/write/exec [ anon ] -FF3B0000 8K read/exec /usr/lib/libdl.so.1 -FF3C0000 128K read/exec /usr/lib/ld.so.1 -FF3E0000 8K read/write/exec /usr/lib/ld.so.1 -FFBEA000 24K read/write/exec [ stack ] -</pre></blockquote> - -<p> -<li> The call stack is unwound to produce a traceback of the -calling sequence that led to the error. The unwinding process is just a simple -loop that is similar to the following: - -<blockquote><pre> -long *pc = get_pc(context); -long *sp = get_sp(context); -while (sp) { - /* Move to previous stack frame */ - pc = (long *) sp[15]; /* %i7 register on SPARC */ - sp = (long *) sp[14]; /* %i6 register on SPARC */ -} -</pre></blockquote> - -<li> For each stack frame, symbol table and debugging information -is gathered and stored in a WAD exception frame object. -Obtaining this information is the most complicated part of WAD and involves -the following steps: first, the current program counter is mapped to an object file -using the virtual memory map obtained in step 2. Next, the object file is loaded -using mmap(). Once loaded, the ELF symbol table -is searched for an address match. The symbol table contains a collection of records -containing memory offsets, sizes, and names such as this: - -<blockquote><pre> -Offset Size Name --------- ------ --------- -0x1280 324 wrap_foo -0x1600 128 foo -0x2408 192 bar -... -</pre></blockquote> - -To find a match for a virtual memory address <em>addr</em>, WAD simply -searches for a symbol <em>s</em> such that <em>base</em> + -<em>s</em>.offset <= <em>addr</em> < <em>base</em> + -<em>s</em>.offset + <em>s</em>.size, where <em>base</em> is the base -virtual address of the object file in the virtual memory map. - -<p> -Debugging information, if available, is scanned to identify a source -file, function name, and line number. This involves scanning object files for a -table of debugging information stored in a format -known as ``stabs.''. Stabs is a relatively simple, but highly extensible format that -is language independent and capable of encoding almost every aspect of the -original source code. For the purposes of WAD, only a small subset of this -data is actually used. - -<p> -The following table shows a small fragment of relevant stabs data: -<blockquote><pre> -type desc value string description ------- ----- --------- --------------------------- ----------- -0x64 0 0 /u0/beazley/Projects/foo/ Pathname -0x64 0 0 foo.c Filename -... -0x24 0 0 foo:F(0,3);(0,3) Function -0xa0 4 68 n:p(0,3) Parameter -... -0x44 6 8 Line number -0x44 7 12 Line number -0x44 8 44 Line number -0x44 9 56 Line number -... -</pre></blockquote> - -In the table, the type field indicates the type of debugging information. For -example, 0x64 specifies the source file, 0x24 is a function -definition, 0xa0 is a function parameter, and 0x44 is line number -information. Associated with each stab is a collection of parameters -and an optional string. The string usually contains symbol names and -other information. The <tt>desc</tt> and <tt>value</tt> fields are numbers -that usually contain byte offsets and line number data. -Therefore, to collect debugging information, WAD simply walks through the debugging -tables until it finds the function of interest. Once found, parameter and line -number specifiers are inspected to determine the location and values of the function -arguments as well the source line at which the error occurred. - -<p> -<li> After the complete traceback has been obtained, it is examined to see if -there are any ``safe'' return points to which control can be returned. -This is accomplished by maintaining an internal table of predefined symbolic return -points as shown in the following table: - -<blockquote><pre> -Python symbol Return value ------------------------------ ------------------ -call_builtin NULL -_PyImport_LoadDynamicModule NULL -PyObject_Repr NULL -PyObject_Print -1 -PyObject_CallFunction NULL -PyObject_CallMethod NULL -PyObject_CallObject NULL -PyObject_Cmp -1 -PyObject_Compare -1 -PyObject_DelAttrString -1 -PyObject_DelItem -1 -PyObject_GetAttrString NULL -PyObject_GetItem NULL -PyObject_HasAttrString -1 -PyObject_Hash -1 -PyObject_Length -1 -PyObject_SetAttrString -1 -PyObject_SetItem -1 -PyObject_Str NULL -PyObject_Type NULL -... -PyEval_EvalCode NULL -</pre></blockquote> - -The symbols in this table correspond to functions within the Python interpreter that -might execute extension code and include the parts of the interpreter that invoke builtin functions -as well as the functions from the abstract object interface. -If any of these symbols appear on the call stack, -a handler function is invoked to raise a Python exception. -This handler function -is given a WAD-specific traceback object that contains a copy of the -call stack and CPU registers as well as any symbolic and debugging -information that was obtained. If none of the symbolic return points -are encountered, WAD invokes a default handler that simply prints the -full C stack trace and generates a core file. - -<P> -<li> If a return point is found, the CPU context is modified in a manner that allows the signal handler to return - with a suitable Python error. - This last step is the most tricky part of the recovery process, but the general - idea is that CPU context is modified in a way that makes Python think that - an extension function simply raised an exception and returned an error. Currently, this - is implemented by having the signal handler return to a small - handler function written in assembly language which arranges to return the - desired value back to the specified return point. - -<p> - The most complicated part of modifying the CPU context is that of restoring - previously saved CPU registers. By manually unwinding the call stack, the - WAD exception handler effectively performs the same operation as a longjmp() call in C. - However, unlike longjmp(), no previously saved set of CPU registers are available from which to resume - execution in the Python interpreter. The solution to this problem depends entirely on the - underlying architecture. On the SPARC, register values are saved in register windows - which WAD manually unwinds to restore the proper state. On the Intel, the solution is much - more interesting. To restore the register values, WAD must manually inspect the - machine instructions of each function on the call stack in order to find out where the - registers might have been saved. This information is then used to restore the registers from their - saved locations before returning to the Python interpreter. - -<p> -<li> Python receives the exception and produces a traceback. -</ol> - -<h3>6. Initialization and Loading</h3> - -In the earlier example, it was shown that WAD could be both -loaded as an extension module or simply attached to an existing module -with the linker. This latter case is implemented by -wrapping the WAD initialization function inside the constructor of a -statically allocated C++ object like this: - -<blockquote> -<pre> -class WadInit { -public: - WadInit() { - wad_init(); /* Call the real initialization function */ - } -}; -static WadInit wad_initializer; -</pre></blockquote> - -When the dynamic loader brings WAD into memory, it automatically -executes the constructors of all statically allocated C++ objects. -Therefore, this initialization code executes immediately after -loading, but before Python actually calls the module initialization -function. As a result, when an extension module is linked with WAD, -the debugging capability is enabled before any other operations occur---this -allows WAD to respond to fatal errors that might occur during module -initialization. - -The rest of the initialization process consists of the following: -<ul> -<li> The WAD signal handler is installed. -<li> A collection of return symbols are registered with the signal handler (see the previous section). -<li> Four new Python exception objects <tt>SegFault</tt>, <tt>BusError</tt>, <tt>AbortError</tt>, -and <tt>IllegalInstruction</tt> are added -to the <tt>__builtin__</tt> module. -</ul> - -Although the use of a C++ static constructor has the potential to -conflict with C++ extension code that also uses static constructors, -it is always possible to enable WAD prior to loading a C++ extension -(e.g., WAD could be loaded separately). - -<h3>7. Implementation Details</h3> - -Currently, WAD is written in ANSI C with a small amount of C++, -and a small amount of assembly code (to assist in the return to the interpreter). -The entire implementation contains approximately 2000 semicolons and most of the code -relates to the gathering of source code information (symbol tables, -debugging information, etc.). - -<p> -Although there are libraries such as GNU bfd that can assist with the -reading of object files, none of these are used in the implementation [10]. -First, these libraries tend to be quite large -and are oriented more towards stand-alone tools such as debuggers, -linkers, and compilers. Second, due to usual nature of the runtime -environment and the restrictions on memory utilization (no heap, no -stack), the behavior of these libraries is somewhat unclear and -would require further study. -Finally, given the small size of the prototype implementation, it didn't seem necessary to rely on a -large general purpose library. - -<h3>8. Discussion</h3> - -The primary focus of this work is to provide a more useful error -reporting mechanism to extension developers. -However, this does not imply that -WAD is appropriate as a general purpose exception -handling mechanism. First, let's focus -on the recovery mechanism: - -<ul> -<li> When WAD unwinds the call stack, objects allocated on the stack -are lost. This may interact poorly with C++ extensions since the -unwinding process does not invoke C++ destructors. It may be possible to fix -this problem, but doing so would require coordination with the C++ runtime library. - -<p> -<li> Similarly, if a procedure allocates objects on the heap, stack unwinding -may cause those objects to never be reclaimed. - -<p> -<li> Closely related to heap management, stack unwinding may result in -open files, sockets, and other system resources. Furthermore, in a multithreaded -environment, deadlock may occur if a procedure is holding a lock when an error occurs. - -<p> -<li> An application may fail by overwriting the process heap and corrupting -memory. Although WAD can produce internal diagnostics even when the heap has been -destroyed, Python may fail immediately upon return from the -WAD signal handler or shortly thereafter. - -<p> -<li> If an application destroys the call stack (via buffer overflow), WAD will -be unable to complete a stack trace and will be unable to return to -Python. - -<p> -<li> Memory management problems such as double-freeing of memory are particularly -difficult to identify. If an extension module corrupts the memory allocator -in some manner, this may cause Python to fail in a completely unexpected location. -WAD is usually able to produce a traceback in this situation, but -it may not correspond to the real source of the problem. - -</ul> - -In addition, there are a number of issues that pertain to WAD's interaction with the -Python interpreter: - -<ul> -<li> The recovery mechanism is entirely based on symbolic information stored -in the Python executable. Therefore, the return points are simply specified -as strings such as ``call_builtin'' as opposed to real memory addresses. -Because of this, WAD is compatible with essentially any version of Python (provided -it supports class-based exceptions). - -<P> -<li> WAD is unable to manage multiple return values to same procedure. -For example, Python's <tt>eval_code2()</tt> procedure contains a huge -case statement for executing byte codes. Within this procedure, certain -function calls return NULL to indicate an error and others return -1. Since WAD -is unable to determine which value to return, this particular procedure does not make a very -good return point for error recovery. - -<P> -<li> An alternative approach to the symbolic recovery scheme would be to -instrument Python with a collection of safe return points using setjmp()/longjmp(). -This approach is not used because it would require a significant number of changes to -the interpreter and it would introduce an unacceptable amount of performance overhead. - -<p> -<li> WAD is generally safe to use with Python threads. However, if a -compiled extension function manually releases the Python interpreter -lock and subsequently faults, the return behavior is unspecified. In -the future, it may be possible to use the interpreter lock to provide coordination -between the interpreter and the error recovery mechanism. - -<p> -<li> Compiled extension code may perform an eval operation in which Python code is executed -in the interpreter. This results in a situation where the complete call-stack of an -application crosses the boundary between Python and C several times. WAD can -still handle faults in this setting as long as an application is doing a reasonable amount of -error checking. For example, a fatal error that occurs inside an eval operation could -be caught by the extension code and propagated further up the call stack. - -<p> -<li> In certain cases, Python may be configured to handle the SIGFPE signal for floating point -exceptions. The default Python handling of this error is to abort and dump core. However, -with WAD, a complete stack traceback will be obtained when a SIGFPE occurs. - -<p> -<li> WAD is extremely inefficient. Due to restrictions on the heap and stack, -WAD relies heavily on mmap() and a variety of other file -operations as it handles errors. It also performs linear searches of symbol and -debugging tables. As a result, WAD's generation of a -Python exception is several orders of magnitude slower than an ordinary -exception. -</ul> - -Finally, there are a number of application specific issues to note: - -<ul> -<li> Aggressive compiler optimization techniques may prevent WAD from -accurately reporting locations within the original source code. -This is particularly problematic with numerical applications where -techniques such procedure inlining can make it impossible to obtain accurate -debugging information. Since these types of problems also arise in -full-featured debuggers, it is unlikely that they can be easily fixed in WAD (at least not -without a considerable amount of work). - -<p> -<li> If an application implements its own exception handling, -it may provide Python with less information than what would obtained with WAD. -For example, a programmer might implement a function like this: - -<blockquote><pre> -void *Malloc(int size) { - void *ptr; - ptr = malloc(size); - if (!ptr) throw("Out of memory"); - return ptr; -} -</pre></blockquote> - -In this case, the ``throw'' function may initiate an internal -exception handling mechanism that relies upon setjmp/longjmp or C++ exceptions. -When the error eventually makes it back to the interpreter, the user will get an ``out -of memory'' exception, but no additional information will be -provided. In contrast, if the programmer simply used an <tt>assert()</tt> statement, WAD would produce a full stack trace leading to -the error. -</ul> - - -Despite its various limitations, WAD is applicable to a wide range of -extension-related errors. Furthermore, most of the errors that are -likely to occur are of a more benign variety. For example, a -segmentation fault may simply be the result of an uninitialized -pointer (perhaps the user forgot to call an initialization procedure). -Likewise, bus errors, failed assertions, and floating point exceptions -rarely result in a situation where the WAD recovery mechanism would be -unable to produce a meaningful Python traceback. - -<h3>9. Related Work</h3> - -There is a huge body of literature concerning the implementation of -exception handling in various programming languages and environments. -A detailed discussion of this work is clearly not possible here, but -a general overview of various exception handling issues can be found in [11]. -In general, there are a few themes that seem to prevail. -First, -considerable attention has been given to exception handling mechanisms -in specific languages such as efficient exception handling for C++. -Second, a great deal of work has been given to the semantic aspects of -exception handling such as exception hierarchies, finalization, and -whether or not code is restartable after an exception has occurred. -Finally, a fair amount of exception work has been done in the context -of component frameworks and distributed systems. Most of this work -tends to concentrate on explicit exception handling mechanisms. Very little -work appears to have been done in the area of converting hardware generated errors -into exceptions. - -<p> -With respect to debuggers, quite a lot of work has been done in -creating advanced debugging support for specific languages and -integrated development environments. However, very little of this work -has concentrated on the problem of extensible systems and -compiled-interpreted language integration. For instance, debuggers -for Python are currently unable to cross over into C extensions whereas C -debuggers aren't able to easily extract useful information from the -internals of the Python interpreter. - -<p> -One system of possible interest is Rn which was developed in the -mid-1980s at Rice University [12]. This system, primarily -designed for working with large scientific applications written in -Fortran, provided an execution monitor that consisted of a special -debugging process with an embedded interpreter. When attached to -compiled Fortran code, this monitor could dynamically patch -the executable in a manner that allowed parts of the code to be executed in the -interpreter. This was used to provide a debugging environment in which -essentially any part of the compiled application could be modified at -run-time by simply compiling the modified code (Fortran) to an -interpreted form and inserting a breakpoint in the original executable -that transferred control to the interpreter. Although this -particular scheme is not directly related to the functionality -of WAD, it is one of the few systems in which -interpreted and compiled code have been tightly coupled within -a debugging framework. Several aspects of the interpreted/compiled -interface are closely related to way in which WAD operates. In addition, -various aspects of this work may be useful should WAD be extended with -new capabilities. - -<h3>10. Future Directions</h3> - -WAD is currently an experimental prototype. Although this paper has -described its use with Python, the core of the system is generic and -is easily extended to other programming environments. For example, when -linked to C/C++ code, WAD will automatically produce stack -traces for fatal errors. A module for generating Tcl exceptions has -also been developed. Plans are underway to provide support for other -extensible systems including Perl, Ruby, and Guile. - -<p> -Finally, a number of extensions to the WAD approach may be possible. -For example, even though the current implementation only returns a -traceback string to the Python interpreter, the WAD signal handler -actually generates a full traceback of the C call stack including all -of the CPU registers and a copy of the stack data. Therefore, with a -little work, it may be possible to implement a diagnostic tool that -allows the state of the C stack to be inspected from the Python -interpreter after a crash has occurred. Similarly, it may be possible -to integrate the capabilities of WAD with those provided by the Python -debugger. - -<h3>11. Conclusions and Availability</h3> - -WAD provides a simple mechanism for converting fatal errors into -Python exceptions that provide useful information to extension -writers. In doing so, it solves one of the most frustrating aspects -of working with compiled Python extensions--that of identifying program errors. -Furthermore the system requires no code modifications to Python and introduces -no performance overhead. -Although the system is -necessarily platform specific, the system does not involve a -significant amount of code. As a result, it may be relatively -straightforward to port to other Unix systems. - -<p> -As of this writing, WAD is still undergoing active development. However, -the software is available for experimentation and download at -at <tt>http://systems.cs.uchicago.edu/wad</tt>. - -<h3>References</h3> - -[1] D.M. Beazley, <em>Using SWIG to Control, Prototype, and Debug C Programs with Python</em>, -4th International Python Conference, Livermore, CA. (1996). - -<p> -[2] P.F. Dubois, <em>Climate Data Analysis Software</em>, 8th International Python Conference, -Arlington, VA. (2000). - -<p> -[3] P.F. Dubois, <em>A Facility for Creating Python Extensions in C++</em>, 7th International Python -Conference, Houston, TX. (1998). - -<p> -[4] SIP. <tt>http://www.thekompany.com/projects/pykde/</tt>. - -<p> -[5] FPIG. <tt>http://cens.ioc.ee/projects/f2py2e/</tt>. - -<p> -[6] R. Faulkner and R. Gomes, <em>The Process File System and Process Model in UNIX System V</em>, USENIX Conference Proceedings, -January 1991. - -<p> -[7] J.R. Levine, <em>Linkers & Loaders.</em> Morgan Kaufmann Publishers, 2000. - -<p> -[8] Free Software Foundation, <em>The "stabs" debugging format</em>. GNU info document. - -<p> -[9] W. Richard Stevens, <em>UNIX Network Programming: Interprocess Communication, Volume 2</em>. PTR -Prentice-Hall, 1998. - -<p> -[10] S. Chamberlain. <em>libbfd: The Binary File Descriptor Library</em>. Cygnus Support, bfd version 3.0 edition, April 1991. - -<p> -[11] M.L. Scott. <em>Programming Languages Pragmatics</em>. Morgan Kaufmann Publishers, 2000. - -<p> -[12] A. Carle, D. Cooper, R. Hood, K. Kennedy, L. Torczon, S. Warren, <em>A Practical Environment for Scientific Programming.</em> -IEEE Computer, Vol 20, No. 11, (1987). p. 75-89. - - -</body> -</html> - - - - - - - - diff --git a/SWIG/Tools/WAD/Papers/tcl.ps b/SWIG/Tools/WAD/Papers/tcl.ps deleted file mode 100644 index ac2ee86f9..000000000 --- a/SWIG/Tools/WAD/Papers/tcl.ps +++ /dev/null @@ -1,11006 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /u0/beazley/Papers/2000/usenix2000/tcl.ps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 37 188 574 604 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define string to hold a scanline's worth of data -/pix 707 string def - -% define space for color conversions -/grays 707 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -37 188 translate - -% size of image (on paper, in 1/72inch coords) -537.33600 416.44800 scale - -707 548 8 % dimensions of data -[707 0 0 -548 0 548] % mapping matrix -{currentfile pix readhexstring pop} -image - -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c039c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c039c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c039 -c0c0767676767676767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767676767676763939 -c0c0767676767676767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767676767676763939 -c0c0767676767676767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767676767676763939 -c0c0767676393939393939393939393939393939393939393939393939c0393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939c03939393939 -3939393939393939393939393939393939397676763939 -c0c076767639c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c076767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -ffffffff7676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767676767676ffffffffff767676767676767676767676767676767676767676 -7676767676ffff767676767676767676767676ffffffffffffffffffff76767676767676 -7676767676767676767676767676767676767676767676767676767676767676767676ff -ff7676767676767676767676767676767676767676767676767676ffffffffffffff7676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676ffffff767676ff767676ffff76767676767676767676767676767676 -7676767676ffff76767676767676767676767676767676ffff7676767676767676767676 -7676767676767676767676767676767676767676767676767676767676767676767676ff -ff7676767676767676767676767676767676767676767676767676ffff76767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676ffff7676767676767676ffff76767676767676767676767676767676 -7676767676ffff76767676767676767676767676767676ffff7676767676767676767676 -7676767676767676767676767676767676767676767676767676767676767676767676ff -ff7676767676767676767676767676767676767676767676767676ffff76767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c0767676c0c0c0c0c0c0c0c0c0c0c0c0c0c0c076767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676ffff76767676767676ffffffffff7676ffffffffff7676767676ffff -ffffff7676ffff76767676ffff76767676767676767676ffff76767676767676ffff76ff -ff7676ffffffffff7676767676ffffffffff76767676ffffffff7676767676767676ffff -ffffff767676ffffffffff76767676ffff76ffff76767676767676ffff76767676767676 -ffff76ffff7676ffff76ffff767676ffffffffff76767676ffff76ffff76767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c07676767676767676c0c0c0c076767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c0767676c0767676767676767676767676763976767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676ffffffff767676767676ffff76767676ff767676ffff767676ffff76 -7676767676ffff767676ff767676767676767676767676ffff76767676767676ffffff76 -767676ff767676ffff767676ffff76767676767676ffff7676ffff7676767676767676ff -ff76767676ffff767676ffff767676ffffff767676767676767676ffff76767676767676 -ffffff76767676ffffff76767676ffff767676ffff767676ffffff767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c07676767676767676c076763976767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c0767676c0767676767676767676767676763976767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676ffffffffff76767676ffff7676767676767676ffff7676ffff7676 -7676767676ffff7676ff76767676767676767676767676ffff76767676767676ffff7676 -76767676767676ffff7676ffff76767676767676ffff76767676ffff76767676767676ff -ff767676ffff7676767676ffff7676ffff76767676767676767676ffffffffffff767676 -ffff7676767676ffff76767676ffff7676767676ffff7676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c07676767676767676c076763976767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c0767676c0393939393939393939393939393976767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676767676ffffffff767676ffff7676767676767676ffff7676ffff7676 -7676767676ffff76ff7676767676767676767676767676ffff76767676767676ffff7676 -76767676767676ffff7676ffff76767676767676ffff76767676ffff76767676767676ff -ff767676ffff7676767676ffff7676ffff76767676767676767676ffff76767676767676 -ffff7676767676ffff76767676ffff7676767676ffff7676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c07676767676767676c039393976767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767676767676767676ffffff7676ffff7676767676ffffffffff7676ffff7676 -7676767676ffffffff7676767676767676767676767676ffff76767676767676ffff7676 -76767676ffffffffff7676ffff76767676767676ffffffffffffffff76767676767676ff -ff767676ffff7676767676ffff7676ffff76767676767676767676ffff76767676767676 -ffff7676767676ffff76767676ffff7676767676ffff7676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676767676767676ffff7676ffff767676ffffff7676ffff7676ffff7676 -7676767676ffff76ffff76767676767676767676767676ffff76767676767676ffff7676 -7676ffffff7676ffff7676ffff76767676767676ffff76767676767676767676767676ff -ff767676ffff7676767676ffff7676ffff76767676767676767676ffff76767676767676 -ffff7676767676ffff76767676ffff7676767676ffff7676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676767676767676ffff7676ffff767676ffff767676ffff7676ffff7676 -7676767676ffff7676ffff767676767676767676767676ffff76767676767676ffff7676 -7676ffff767676ffff7676ffff76767676767676ffff76767676767676767676767676ff -ff767676ffff7676767676ffff7676ffff76767676767676767676ffff76767676767676 -ffff7676767676ffff76767676ffff7676767676ffff7676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676ff76767676ffff767676ffff767676ffff767676ffff767676ffff76 -7676ff7676ffff767676ffffff76767676767676767676ffff76767676767676ffff7676 -7676ffff767676ffff767676ffff767676ff767676ffff76767676ff76767676767676ff -ff76767676ffff767676ffff767676ffff76767676767676767676ffff76767676767676 -ffff7676767676ffff7676767676ffff767676ffff767676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -7676767676767676ffffffffffff7676767676ffffff7676ffffffff76ffff767676ffff -ffffff7676ffff76767676ffffff767676767676767676ffff76767676767676ffff7676 -767676ffffffff76ffff767676ffffffffff7676767676ffffffffff76767676767676ff -ff7676767676ffffffffff76767676ffff76767676767676767676ffffffffffffff7676 -ffff7676767676ffff767676767676ffffffffff76767676ffff76767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c076 -7676767676767676767676763976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c0767676c039 -3939393939393939393939393976767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767639c07676763939 -c0c076767639c076767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -76767676767639c076767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767639c07676763939 -c03939393939c039393939393939393939393939393939393939393939c0393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -39393939393939c039393939393939393939393939393939393939393939c03939393939 -3939393939393939393939393939393939c03939393939 -c0c0c0c0c0c0d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9c0c0c0c0c039 -c0c076767639d96b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6bd9d96b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6bd9c07676763939 -c0c076767639d96b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6bf8d9d96b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6bf8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3c36bc3c3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3f86bc3c3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3f86b6bc3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3f8f86b6bc3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3f8f8e16b6bc3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3f8f8e1e16b6bc3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e100e1e1e1e100e1000000e1e1e1e1e1e1000000e1e1 -e1e1e100e1e1e10000e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1 -e1e100000000000000e1e1e100000000e1e1e1e1e1e100000000e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e1e1e10000e1e1e100000000e1e1 -e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3f8f8e1e1e16b6bc3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e100e1e1e1e10000e1e1e100e1e1e1e100e1e1e100e1 -e1e1e100e10000e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e100e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e10000e100e1e1e1e1e1e1e100e1 -e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3f8f8e1e1e1e16b6bc3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e10000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3f8f8e1e1e1e1e16b6bc3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1 -e1e1e1e1e100e1e1e1e1e1e10000000000e1e1e100e1e1e1e1e1e1e1e1000000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e10000000000e1 -e1e100e1e1e1e1e1e1e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3f8f8e1e1e1e1e1e16b6bc3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e100000000000000e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3f8f8e1e1e1e1e1e1e16b6bc3c3f8f8d9c07676763939 -c0c076767639d96b6be1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -f8f8e1e1e1e1e1e1e1e16b6bc3c3f8f8d9c07676763939 -c0c076767639d96b6be1e100e1e1e1e1e100e1e100e1e1e1e100e1e1e1e100e1e1e100e1 -e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e10000e1e1e1e100e1e1e1e100e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1 -e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -f8f8e1e1e1e1e1e1e1e1e16b6bc3f8f8d9c07676763939 -c0c076767639d96b6be1e100e1e1e1e1e100e1e10000000000e1e1e1e1e1e1000000e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1 -e1e1e1e1e1e1000000e1e1e1000000e1e10000e1e1e100000000e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e100e1e1e1e1e1e1e1e1000000e1e100 -00e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f86b6b6b6b6b6b6b6b6b6b6b6bc3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -6b6b6b6b6b6b6b6b6b6b6b6b6b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3c3c3c3c3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8f8f8f8f8f8f8f8f8f8f8f8f86bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100000000e1e1e1e1e1000000e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1000000000000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e100e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e100e1e1e1e1e1e1e100000000e1 -e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e100000000e1e1e100e1e1e1e1e100 -e1e100000000000000e1e1e1e100000000e1e1e1e100e1e1e1e100e1e100e1e1e1e1e100 -e1e100000000000000e1e1e1e100000000e1e1e100e1e1e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e10000000000e1e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100000000000000e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100000000000000e1e100000000000000e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100 -e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e100000000000000e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e100e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e10000e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e10000000000e1 -e1e1e1e100e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100000000e1e1e1e1e100e1e1e100e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100000000000000e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100000000000000e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e100e1e1e1e1e100000000000000e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100000000000000e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be100000000000000e1e1e1e100000000000000e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e1e1e100e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e10000 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100 -e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e10000e1e100e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e100e1 -e1e1e100e1e1e10000e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1 -e1e1e1e100000000e1e1e1e10000000000e1e1e1e1e100e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100e1e1e1e1e1e1000000000000 -e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1000000e1e100 -e1e1e1e1e1e1000000e1e1e1e100000000e1e1e1e10000000000e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1000000e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1000000e1e1 -e1e1e1e1000000e100e1e1e1e100000000e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1 -e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1000000e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1 -e1e1e1e100e1e1e100e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e10000e1e1e100000000e1e1 -e1e100e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1 -e1e1e1e100000000e1e1e100000000000000e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e10000e1e1e100000000e1e1 -e1e100e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1 -e1e100e1e1000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e100e1 -e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100000000000000e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100000000000000e1e100000000000000e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e100e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e100e10000e100e1e1e1e1e1e1e100e1 -e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e1e1e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e100e10000e100e1e1e1e1e1e1e100e1 -e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e100e1e10000e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e100e10000e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e10000e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e10000e1e1e1e1e1e1e1e1e1e1e100e1 -e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e10000e1e1e1e1e1e1e1e1e1e1e100e1 -e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e10000e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e10000e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e100e1e1e1e1e1e1e1e10000000000e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000000000e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e100e1e1e1e1e1e1e1e10000000000e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e100e1e1e1e100e1e1e100e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be100000000000000e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000000000 -00e1e100e1e1e1e100e1e1e1e10000e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1 -e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1 -e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e10000e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1 -e1e100e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e100e1e100e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1 -e1e1e10000000000e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1000000e1e100 -00e10000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1000000e1e100 -00e1e1e100000000e1e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1000000e1e100 -00e10000000000e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e10000e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100000000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1000000e1 -e1e1e1e1000000e1e1e1e1e10000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1000000e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100 -e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e100000000e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100000000e1e1e100000000000000 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1 -e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100000000000000e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100000000000000e1e1e100e1e1e1e100e1e100000000000000e1e1e100e10000e1e1 -e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e100000000000000e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100e100e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000 -e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e10000e1e100e1 -e1e100e1e1e1e1e100e1e1e100000000e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e100000000000000e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100000000000000e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e10000000000e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be100000000000000e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e10000e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100 -e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e100e1 -e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e10000e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e10000000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e1e1e10000e1e1 -e1e1e1e1000000e1e1e1e1e1000000e1e1e1e1e1e1e100000000e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1000000e1e10000e1e1e100000000e1e1e1e1e1e1e1000000 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e10000000000e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e10000000000e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e100e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e100000000e1e1e100e1000000e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100000000e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e10000000000e1 -e1e1e10000000000e1e1e1e1e100000000e1e1e1e100e1e1e10000e1e100000000000000 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100000000000000e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100000000000000e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e10000e1e1e100e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e10000e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e100000000e1e1e1e1e1e10000e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e10000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e10000e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e100000000000000e1e100000000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1e1e1e1000000e1e1e1 -e1e1e1000000e1e1e1e1e100000000000000e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be100000000000000e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e10000e1 -e1e1e1e1e1e10000e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e100e1e1e1e100e1 -e1e100e1e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e10000e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e100000000e1e1e10000000000e1e1 -e1e1e1000000e1e1e1e1e1e1e1000000e1e1e1e1e1e100000000e1e1e1e1e100000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e10000e1e10000000000e1 -e1e1e10000000000e1e1e1e1e100000000e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1000000 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1000000000000000000000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e10000e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e10000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e100e100e1e1e1 -e1e1e100000000e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e100e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1e1e100e1000000e1e1 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100000000e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100000000000000e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100000000000000e1e1e100e1e1e1e100e1e100000000000000e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e100e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e100e1e1e100e1e1e1e1e100e1e1e1e10000e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e100000000000000e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e10000000000e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be100000000000000e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e100e1e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1000000000000 -00e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e10000e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e100e1e100e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e100e1e1e1e1e100 -e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1000000e1e10000e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e10000000000e1e1 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100000000e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e10000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100000000e1e1e1e1e1e1e1e1e1e100e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e10000e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e100e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e1e1e1e1e1e100e1e1e100e1000000e1e1e1e1e1e100000000e1e1e1e100000000e1e1 -e1e100000000000000e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e10000e1e1e1e1000000e1e1 -e1e1e100000000e1e1e1e1e1e100000000e1e1e1e1e100000000e1e1e100000000000000 -e1e1e10000000000e1e1e1e1e1e1e1e100e1e1e100e1e100e1e100e1e1e1e100e100e1e1 -e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e10000e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e10000e100e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e100e100e100e1e1e1e100e100e1e1 -e1e1e100e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100000000000000e1e1e100e1e1e100e1 -e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e100e100e1e1e100e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e100000000000000e1e1e10000000000e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100000000000000e1e1e100e1e1e100e1 -e1e1e1e1e100e1e1e1e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e100000000000000e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1000000e1e1e1e1e1e1e1e100e1e1e1e1e100e100e100e100e1e1e100e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e10000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e100e1 -e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e100e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e1e100e1e1e100e1e1e100000000000000 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e10000e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e1e1e1e1e100e1e1e1e10000e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e100e1 -e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e100e1e1 -e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e1e1e1e1e10000e1e100e100e1e1e100e1e1e100e1 -e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100e1e100e1e1e10000e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1 -e1e1e100e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e1e1e1e1e1e1e1000000e1e100e1e1e1e1000000e1e1 -e1e1e100e1e1e1e1e1e1e10000000000e1e1e1e1e1e100000000e1e1e1e1000000e1e100 -00e100000000000000e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1e1e1000000 -e1e1e10000000000e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e100000000e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1000000e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1e1e1e1000000e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e100000000000000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100000000e1 -e1e100000000000000e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e100000000000000e1e1e1e1e1e1e1e1e1e1e100e1e1000000e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e100e1e10000e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000000000e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e10000e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1000000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1000000e1e10000e1e1e100000000e1 -e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1 -e1e1e10000000000e1e1e1e10000000000e1e1e1e1e100000000e1e1e1e100e1e1e10000 -e1e100000000000000e1e1e1e100e1e1e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e10000e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e10000e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e100000000000000e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1 -e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1e100000000000000e1e1e100e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1 -e1e1e1e1e1e10000e1e1e1e1e1e1e10000e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e100000000000000e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e10000e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e100 -00e1e10000000000e1e1e1e10000000000e1e1e1e1e100000000e1e1e1e100e1e1e1e1e1 -e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e10000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1000000e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e10000 -e1e1e1e100000000e1e1e100000000000000e1e100e1e1e1e1e100e1e1e100e1e1e10000 -e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e100e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e100e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e10000e100 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e10000e100 -e1e100e100e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e10000e1e1e1e1 -e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e100000000000000e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e10000e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e10000e1e100e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1000000e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1 -e1e1e1e100000000e1e1e1e1e1e1e1000000e1e1e1000000e1e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e100e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e10000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e10000000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e10000e1e1e1e100000000e1e1e100000000000000e1e100e1e1e1e1e100 -e1e1e100e1e1e10000e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1e1e100e1e1000000e1 -e1e1e1e100e100e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100000000e1 -e1e100000000000000e1e1e1e100e1e1e1e1e1e100e1e1000000e1e1e1e1e1e1e1e1e1e1 -e1e1e100e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e100e10000e100e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e1e100e10000e100e1e100e100e1e10000e1e1e1e1e1e1e1e1e1e1e100e100e1e10000 -e1e1e100e100e100e1e1e100000000000000e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e100e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e10000e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e1e10000e1e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000 -e1e1e1e1e100e1e1e1e1e1e1000000e1e1e1e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e100000000000000e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000000000e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e100000000000000 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e10000e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e10000 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e10000e1e100e100 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e10000e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e10000000000e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e100e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1000000e1e1e1000000e1e100 -e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1000000e1e10000e1e1e100000000e1 -e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e100e1e1e1e1e100 -e1e1e1e1000000e1e1e1e100e1e1e1e100e1e1e1e1e100000000e1e1e1e1e10000000000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1e1e1e1000000e1e1 -e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100000000e1e1 -e1e100000000000000e1e100e1e1000000e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e10000e100e1e1e100e1e1e100e1 -e1e10000e10000e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e100e1e10000e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1000000e1e1e1e1e1e100000000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1000000e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1000000e1e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1000000e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e10000e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1 -e1e1e1e100000000e1e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e1e1e1e1e100e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000000000e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e10000e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1000000e1e100 -00e1e1e100000000e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e100e1e1e1e1e100 -e1e1e1e1000000e1e1e1e100e1e1e1e100e1e1e1e1e100000000e1e1e1e1e10000000000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1e1e1e1000000e1e1 -e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100000000e1e1 -e1e100000000000000e1e100e1e1000000e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e10000e100e1e1e100e1e1e100e1 -e1e10000e10000e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e100e1e10000e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1000000e1e1e1e1e1e100000000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1000000e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1000000e1e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1000000e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e100e1e1e1e1e100 -e1e1e1e1000000e1e1e1e100e1e1e1e100e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1000000e1e1e1e1e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e10000000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e10000e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e100e1e1e1e1e100 -e1e1e1e100000000e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1000000e1e1e1e1e1e1000000e1e1e1e1e1e10000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e100e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e100e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e100e1e1e1e1e100 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e10000e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e10000e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100000000000000e1e1e100e1e1e100e1 -e1e100000000000000e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e100e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e100e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e100e100 -e1e100e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e10000e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e100 -e1e10000000000e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100e1e1e1 -e1e1e1e100000000e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e10000000000e1e1e1e1e1e1000000e1e1e1e1e1e1000000e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e100e1e1e1e1e100 -e1e1e1e1000000e1e1e1e100e1e1e1e100e1e1e1e1e100000000e1e1e1e1e10000000000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1e1e1e1000000e1e1 -e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100000000e1e1 -e1e100000000000000e1e100e1e1000000e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e10000e100e1e1e100e1e1e100e1 -e1e10000e10000e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e100e1e10000e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1000000e1e1e1e1e1e100000000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1000000e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1000000e1e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1000000e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e100000000e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100000000e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e10000e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e100e1e1e1e1e100e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1 -e1e1e10000000000e1e1e100000000000000e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e100e1e1e1e1e100e1e1e1e1000000e1e1e1e100e1e1e1e100e1e1e1e1e100000000e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e100e1e100e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e100e1e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e100e1e1e1e1e100e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e10000e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100000000000000e1e1e100e1e1e100e1e1e100000000000000 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1000000e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1 -e1e100e100e100e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1000000e1e1e1e1e1e100000000000000 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e100e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100 -e1e100e100e100e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e100e100e1e1e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e100e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100 -e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e100e100e1e1e1e100e1e1e1e1e100e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e10000e1e100e100e1e100e1e1e1e100e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e100e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100 -e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1000000e1e100e1e10000000000e1e1 -e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1e1e1e1e1e1e1000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1 -e1e1e10000000000e1e1e1e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e10000000000e1 -e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e10000000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000000000e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e10000e1e1e1e1e100e1e1e10000 -e1e1e1e1000000e1e1e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e10000000000 -e1e100e1e1e1e1e100e1e1e100e1e1e10000e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e100e1e1e1e100e1e1e1e100e1e1e1e100 -e1e100e1e1e1e1e100e1e100000000000000e1e100000000000000e1e1e1e1000000e1e1 -e1e100e1e1000000e1e1e100e1e1e1e1e100e1e100e1e10000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e100e1e100e1e1e1e100e10000e100 -e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e100e1e1e1e1e100e1e1e100e10000e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e100e1 -e1e100e100e1e10000e1e100e1e1e1e1e100e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e100e1e1e10000e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e10000e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e100000000e1e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e10000e1e1e1e100e1e100e1e1e1e1e100e1e10000e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100000000000000e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100000000000000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1000000e1e1e1e1e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100000000000000e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e10000e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100 -e1e100e1e1e1e10000e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e1e1 -e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100e1e1e100e1e1e10000 -e1e10000e1e100e100e1e1e100e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100 -e1e10000e1e100e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e10000000000e1e1e1e1e100e1e1e1e1e1 -e1e1e1e1000000e1e1e1e1e1e100000000e1e1e1e1e100000000e1e1e1e1e1000000e100 -e1e1e1000000e1e100e1e1e100e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e100e1e1e1e1e100e1e1e10000000000e1 -e1e1e1000000e1e100e1e1e1e1e1e1000000e1e1e1e1e1e1000000e1e1e1e1000000e1e1 -e1e100e1e1e1e1e100e1e1e1e1000000e1e1e1e10000000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100000000e1e1e1e100e1e1000000e1e1e100e1e1e1e1e100 -e1e1e1e1000000e1e1e1e100e1e1e1e100e1e1e1e1e100000000e1e1e1e1e10000000000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e10000e1e1e1e1000000e1e1 -e1e100e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100000000e1e1 -e1e100000000000000e1e100e1e1000000e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e100e1e10000e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e100e1e1e100e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e100000000000000e1e1e100e10000e100e1e1e100e1e1e100e1 -e1e10000e10000e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e100e1e10000e1e1e1e1e1e100e1e1e1e100e100e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e10000e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e10000e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e1e100e1e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e10000e1e1e1e100e1e1e1e1e1e100e1e1e1e10000e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e1000000e1e1e1e1e1e100000000000000e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e100e100e100e100e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e100e100e1e1 -e1e100e1e1e1e1e100e1e100e1e1e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1e1e10000 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e100e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e100000000e1e1e1e1e1000000e100 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1000000e1e1 -e1e100e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e100e1e1 -e1e1e1e1e1e1000000e1e100e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e10000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e100000000000000e1e100e1e1e1e100e1 -e1e1e100e1e1e1e100e1e100e1e1e1e1e100e1e100000000000000e1e100000000000000 -e1e1e1e1000000e1e1e1e100e1e1000000e1e1e100e1e1e1e1e100e1e100e1e10000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e100e1e10000e1e100e1e1e1e1e100e1e100e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1 -e1e1e100000000e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e100e1e10000e1e1e1e100e1e100e1e1e1e1e100e1e10000e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1000000e1e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1 -e1e1e100e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1 -e1e1e100e1e1e1e100e1e100e1e1e1e10000e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1 -e1e1e100e1e1e1e100e1e10000e1e100e100e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1 -e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e1e100e1e1e100e1e1e100e1e1e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e100e1e1e1e1e100 -e1e1e10000000000e1e1e1e1000000e1e100e1e1e1e1e1e1000000e1e1e1e1e1e1000000 -e1e1e1e1000000e1e1e1e100e1e1e1e1e100e1e1e1e1000000e1e1e1e10000000000e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e10000000000e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e100e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100000000e1e1e1e1e1000000e1e1 -e1e100e100e1e100e1e1e100e100e1e100e1e1e1e100000000e1e1e1e100e1e1000000e1 -e1e1e1e10000000000e1e1e1e1e1e1e1e1e1e1e100e1000000e1e1e1e1e1e1000000e1e1 -e1e100e1e1e1e1e100e1e100e1e1000000e1e1e1e1e10000000000e1e1e1e1e1e1e1e1e1 -e1e100000000000000e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e100e1e1e1e1e100e1e1e1e100000000e1e1e100e1e1000000e1e1e100000000000000 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e100e1 -e1e10000e10000e100e1e10000e10000e100e1e1e1e1e1e1e100e1e1e100e100e1e10000 -e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1e1e10000e1e1e100e1e1e1e100e1e1e100e1 -e1e100e1e1e1e1e100e1e100e100e1e10000e1e1e100e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e100e1e1e1e1e100e1e1e100e1e1e1e100e1e100e100e1e10000e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e100e1e100e1e100e1e1e1e1e1e1e100e1e1e10000e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e10000e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e1e100e1e1e100e1e1e100e1e1e1e1e100e1e10000e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e100e1e100e1e100e1e1e10000000000e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100000000000000 -e1e1e100e1e1e100e1e1e100000000000000e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e100e1e100e1e100e1e100e1e1e1e100e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e100e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100 -e1e100e1e100e1e100e1e100e1e100e1e100e1e100e1e1e1e100e1e1e100e1e1e1e1e100 -e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e100e1e1e1e1e100 -e1e100e1e1e1e10000e1e100e1e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1 -e1e1e1e100e100e1e1e1e100e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100e1e1e1e100e1e1e100e1e1e100e1 -e1e100e1e100e1e100e1e100e1e100e1e100e1e100e1e1e10000e1e1e100e1e1e1e1e100 -e1e1e100e1e1e10000e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100e1e1e1e100e1e1e100e1 -e1e10000e1e100e100e1e100e1e1e1e1e100e1e1e100e1e1e10000e1e1e1e1e1e1e1e1e1 -e1e1e1e1e100e1e1e1e1e1e100e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e100 -e1e1e1e1e100e1e1e1e1e1e100e1e1e1e100e1e100e1e1e1e1e100e1e1e1e1e100e1e1e1 -e1e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e1e1e1000000e1e1 -e1e100e1e100e1e100e1e100e1e100e1e100e1e1e1000000e1e10000e100e1e1e1e1e100 -e1e1e1e1000000e100e1e1e1e1e1e1e1e1e1e1e10000000000e1e1e1e1e1e1000000e1e1 -e1e1e1000000e1e100e1e100e1e1e1e1e100e1e1e1e1000000e100e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1000000e1e1e1e1000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000e1 -e1e1e1e1e100e1e1e1e1e1e1e100000000e1e1e100e1e1e1e1e100e1e1e1e1e1e1000000 -e1e1e1e1e100e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8e1e1e1e1e1e1e1e1e1e1e16b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e10000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f86b6b6b6b6b6b6b6b6b6b6b6b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -6b6b6b6b6b6b6b6b6b6b6b6b6b6bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3c3c3c3c3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bf8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -f8f8f8f8f8f8f8f8f8f8f8f8f86bf8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -f8f8e1e1e1e1e1e1e1e1e16b6bc3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3f8f8e1e1e1e1e1e1e1e16b6bc3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3f8f8e1e1e1e1e1e1e16b6bc3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3f8f8e1e1e1e1e1e16b6bc3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3f8f8e1e1e1e1e16b6bc3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3f8f8e1e1e1e16b6bc3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3f8f8e1e1e16b6bc3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3f8f8e1e16b6bc3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3f8f8e16b6bc3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3f86b6b6bc3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3f86b6bc3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3c36b6bc3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6be1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1f8f8d9d96b6bc3 -c3c3c3c3c3c36bc3c3c3c3c3c3c3f8f8d9c07676763939 -c0c076767639d96b6bf8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9d96b6bf8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9c07676763939 -c0c076767639d96bf8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9d96bf8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9c07676763939 -c0c076767639d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9828282828282828282828282828282828282828282828282828282828282828282 -82828282828282828282828282828282828282d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8d9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 -f8f8f8f8f8f8f8f8f8f8f8f8f8f8f86bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1 -00e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e10000e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e100e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e100e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e1e1e100e1e1e100e1e1e100 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c03939393939e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e100e1e1e100e1e1e1e100e1e1e1e1 -00e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c03939393939 -c0c0c0c0c0c0e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000e1e1e1e1e100e1e1e1e1 -00e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c0c0c0c0c039 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f8e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e16b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f8f86b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9f86b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b -6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6bd9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9ffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d982ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffd9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 -d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 -e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1c07676763939 -c0c076767639c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 -c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c07676763939 -c0c0767676767676767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767676767676763939 -c0c0767676767676767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767676767676763939 -c0c0767676767676767676767676767676767676767676767676767639c0767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767676767676767676 -767676767676767676767676767676767676767676767676767676767639c07676767676 -7676767676767676767676767676767676767676763939 -c0c0393939393939393939393939393939393939393939393939393939c0393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939c03939393939 -3939393939393939393939393939393939393939393939 -c03939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -393939393939393939393939393939393939393939393939393939393939393939393939 -3939393939393939393939393939393939393939393939 - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/SWIG/Tools/WAD/Papers/usenix2001.tex b/SWIG/Tools/WAD/Papers/usenix2001.tex deleted file mode 100644 index f81e42824..000000000 --- a/SWIG/Tools/WAD/Papers/usenix2001.tex +++ /dev/null @@ -1,1347 +0,0 @@ -%template for producing IEEE-format articles using LaTeX. -%written by Matthew Ward, CS Department, Worcester Polytechnic Institute. -%use at your own risk. Complaints to /dev/null. -%make two column with no page numbering, default is 10 point -%\documentstyle{article} -\documentstyle[twocolumn,times]{article} -\pagestyle{empty} - -%set dimensions of columns, gap between columns, and space between paragraphs -%\setlength{\textheight}{8.75in} -\setlength{\textheight}{9.0in} -\setlength{\columnsep}{0.25in} -\setlength{\textwidth}{6.45in} -\setlength{\footheight}{0.0in} -\setlength{\topmargin}{0.0in} -\setlength{\headheight}{0.0in} -\setlength{\headsep}{0.0in} -\setlength{\oddsidemargin}{0in} -%\setlength{\oddsidemargin}{-.065in} -%\setlength{\oddsidemargin}{-.17in} -%\setlength{\parindent}{0pc} - -%I copied stuff out of art10.sty and modified them to conform to IEEE format - -\makeatletter -%as Latex considers descenders in its calculation of interline spacing, -%to get 12 point spacing for normalsize text, must set it to 10 points -\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt -\abovedisplayskip 10pt plus2pt minus5pt\belowdisplayskip \abovedisplayskip -\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip 6pt plus3pt -minus3pt\let\@listi\@listI} - -%need an 11 pt font size for subsection and abstract headings -\def\subsize{\@setsize\subsize{12pt}\xipt\@xipt} - -%make section titles bold and 12 point, 2 blank lines before, 1 after -\def\section{\@startsection {section}{1}{\z@}{24pt plus 2pt minus 2pt} -{12pt plus 2pt minus 2pt}{\large\bf}} - -%make subsection titles bold and 11 point, 1 blank line before, 1 after -\def\subsection{\@startsection {subsection}{2}{\z@}{12pt plus 2pt minus 2pt} -{12pt plus 2pt minus 2pt}{\subsize\bf}} -\makeatother - -\newcommand{\ignore}[1]{} -%\renewcommand{\thesubsection}{\arabic{subsection}.} - -\begin{document} - -%don't want date printed -\date{} - -%make title bold and 14 pt font (Latex default is non-bold, 16 pt) -\title{\Large \bf An Embedded Error Recovery and Debugging Mechanism for Scripting Language Extensions} - -%for single author (just remove % characters) -\author{{David M.\ Beazley} \\ -{\em Department of Computer Science} \\ -{\em University of Chicago }\\ -{\em Chicago, Illinois 60637 }\\ -{\em beazley@cs.uchicago.edu }} - -% My Department \\ -% My Institute \\ -% My City, ST, zip} - -%for two authors (this is what is printed) -%\author{\begin{tabular}[t]{c@{\extracolsep{8em}}c} -% Roscoe Giles & Pablo Tamayo \\ -% \\ -% Department of Electrical, Computer, & Thinking Machines Corp. \\ -% and Systems Engineering & Cambridge, MA~~02142. \\ -% and & \\ -% Center for Computational Science & \\ -% Boston University, Boston, MA~~02215. & -%\end{tabular}} - -\maketitle - -%I don't know why I have to reset thispagesyle, but otherwise get page numbers -\thispagestyle{empty} - - -\subsection*{Abstract} -{\em -In recent years, scripting languages such as Perl, Python, and Tcl -have become popular development tools for the creation of -sophisticated application software. One of the most useful features -of these languages is their ability to easily interact with compiled -languages such as C and C++. Although this mixed language approach -has many benefits, one of the greatest drawbacks is the complexity of -debugging that results from using interpreted and compiled code in the -same application. In part, this is due to the fact that scripting -language interpreters are unable to recover from catastrophic errors -in compiled extension code. Moreover, traditional C/C++ debuggers -do not provide a satisfactory degree of integration with interpreted -languages. This paper describes an experimental system in which fatal -extension errors such as segmentation faults, bus errors, and failed -assertions are handled as scripting language exceptions. This system, -which has been implemented as a general purpose shared library, -requires no modifications to the target scripting language, introduces -no performance penalty, and simplifies the debugging of mixed -interpreted-compiled application software. -} - -\section{Introduction} - -Slightly more than ten years have passed since John Ousterhout -introduced the Tcl scripting language at the 1990 USENIX technical -conference \cite{ousterhout}. Since then, scripting languages have -been gaining in popularity as evidenced by the wide-spread use of -systems such as Tcl, Perl, Python, Guile, PHP, and Ruby -\cite{ousterhout,perl,python,guile,php,ruby}. - -In part, the success of modern scripting languages is due to their -ability to be easily integrated with software written in compiled -languages such as C, C++, and Fortran. In addition, a wide variety of wrapper -generation tools can be used -to automatically produce bindings between existing code and a -variety of scripting language environments -\cite{swig,sip,pyfort,f2py,advperl,heidrich,vtk,gwrap,wrappy}. As a result, a large number of -programmers are now using scripting languages to control -complex C/C++ programs or as a tool for re-engineering legacy -software. This approach is attractive because it allows programmers -to benefit from the flexibility and rapid development of -scripting while retaining the best features of compiled code such as high -performance \cite{ouster1}. - -A critical aspect of scripting-compiled code integration is the way in -which it departs from traditional C/C++ development and shell -scripting. Rather than building stand-alone applications that run as -separate processes, extension programming encourages a style of -programming in which components are tightly integrated within -an interpreter that is responsible for high-level control. -Because of this, scripted software tends to rely heavily -upon shared libraries, dynamic loading, scripts, and -third-party extensions. In this sense, one might argue that the -benefits of scripting are achieved at the expense of creating a -more complicated development environment. - -A consequence of this complexity is an increased degree of difficulty -associated with debugging programs that utilize multiple languages, -dynamically loadable modules, and a sophisticated runtime environment. -To address this problem, this paper describes an experimental system -known as WAD (Wrapped Application Debugger) in which an embedded error -reporting and debugging mechanism is added to common scripting -languages. This system converts catastrophic signals such as -segmentation faults and failed assertions to exceptions that can be -handled by the scripting language interpreter. In doing so, it -provides more seamless integration between error handling in -scripting language interpreters and compiled extensions. - -\section{The Debugging Problem} - -Normally, a programming error in a scripted application -results in an exception that describes the problem and the context in -which it occurred. For example, an error in a Python script might -produce a traceback similar to the following: - -\begin{verbatim} -% python foo.py -Traceback (innermost last): - File "foo.py", line 11, in ? - foo() - File "foo.py", line 8, in foo - bar() - File "foo.py", line 5, in bar - spam() - File "foo.py", line 2, in spam - doh() -NameError: doh -\end{verbatim} - -In this case, a programmer might be able to apply a fix simply based -on information in the traceback. Alternatively, if the problem is -more complicated, a script-level debugger can be used to provide more -information. In contrast, a failure in compiled extension code might -produce the following result: - -\begin{verbatim} -% python foo.py -Segmentation Fault (core dumped) -\end{verbatim} - -In this case, the user has no idea of what has happened other than it -appears to be ``very bad.'' Furthermore, script-level debuggers are -unable to identify the problem since they also crash when the error -occurs (they run in the same process as the interpreter). This means -that the only way for a user to narrow the source of the problem -within a script is through trial-and-error techniques such as -inserting print statements, commenting out sections of scripts, or -having a deep intuition of the underlying implementation. Obviously, -none of these techniques are particularly elegant. - -An alternative approach is to run the application under the control of -a traditional debugger such as gdb \cite{gdb}. Although this provides -some information about the error, the debugger mostly provides -detailed information about the internal implementation of the -scripting language interpreter instead of the script-level code that -was running at the time of the error. Needless to say, this information -isn't very useful to most programmers. -A related problem is that -the structure of a scripted application tends to be much more complex -than a traditional stand-alone program. As a result, a user may not -have a good sense of how to actually attach an external debugger to their -script. In addition, execution may occur within a -complex run-time environment involving events, threads, and network -connections. Because of this, it can be difficult for the user to reproduce -and identify certain types of catastrophic errors if they depend on -timing or unusual event sequences. Finally, this approach -requires a programmer to have a C development environment installed on -their machine. Unfortunately, this may not hold in practice. -This is because scripting languages are often used to provide programmability to -applications where end-users write scripts, but do not write low-level C code. - -Even if a traditional debugger such as gdb were modified to provide -better integration with scripting languages, it is not clear that this -would be the most natural solution to the problem. For one, -having to run a separate debugging process to debug -extension code is unnatural when no such requirement exists for -scripts. Moreover, even if such a debugger existed, an -inexperienced user may not have the expertise or inclination to use -it. Finally, obscure fatal errors may occur long after an application -has been deployed. Unless the debugger is distributed along with the -application in some manner, it will be extraordinary difficult to -obtain useful diagnostics when such errors occur. - -\begin{figure*}[t] -{\small -\begin{verbatim} -% python foo.py -Traceback (most recent call last): - File "<stdin>", line 1, in ? - File "foo.py", line 16, in ? - foo() - File "foo.py", line 13, in foo - bar() - File "foo.py", line 10, in bar - spam() - File "foo.py", line 7, in spam - doh.doh(a,b,c) - -SegFault: [ C stack trace ] - -#2 0x00027774 in call_builtin(func=0x1c74f0,arg=0x1a1ccc,kw=0x0) in 'ceval.c',line 2650 -#1 0xff083544 in _wrap_doh(self=0x0,args=0x1a1ccc) in 'foo_wrap.c',line 745 -#0 0xfe7e0568 in doh(a=3,b=4,c=0x0) in 'foo.c',line 28 - -/u0/beazley/Projects/WAD/Python/foo.c, line 28 - - int doh(int a, int b, int *c) { - => *c = a + b; - return *c; - } -\end{verbatim} -} -\caption{Cross language traceback generated by WAD for a segmentation fault in a Python extension} -\end{figure*} - -The current state of the art in extension debugging is to simply add -as much error checking as possible to extension modules. This is never -a bad thing to do, but in practice it's usually not enough to -eliminate every possible problem. For one, scripting languages are -sometimes used to control hundreds of thousands to millions of lines -of compiled code. In this case, it is improbable that a programmer will -foresee every conceivable error. In addition, scripting languages are -often used to put new user interfaces on legacy software. In this -case, scripting may introduce new modes of execution that cause a -formerly ``bug-free'' application to fail in an unexpected manner. -Finally, certain types of errors such as floating-point exceptions can -be particularly difficult to eliminate because they might be generated -algorithmically (e.g., as the result of instability in a numerical -method). Therefore, even if a programmer has worked hard to eliminate -crashes, there is usually a small probability that an application may -fail under unusual circumstances. - -\section{Embedded Error Reporting} - -Rather than modifying an existing debugger to support scripting -languages, an alternative approach is to add a more powerful error -handling and reporting mechanism to the scripting language -interpreter. We have implemented this approach in the form of an -experimental system known as WAD. WAD is packaged as dynamically -loadable shared library that can either be loaded as a scripting -language extension module or linked to existing extension modules as a -library. The core of the system is generic and requires no -modifications to the scripting interpreter or existing extension -modules. Furthermore, the system does not introduce a performance -penalty as it does not rely upon program instrumentation or tracing. - -WAD works by converting fatal signals such as SIGSEGV, -SIGBUS, SIGFPE, and SIGABRT into scripting language exceptions that contain -debugging information collected from the call-stack of compiled -extension code. By handling errors in this manner, the scripting -language interpreter is able to produce a cross-language stack trace that -contains information from both the script code and extension code as -shown for Python and Tcl/Tk in Figures 1 and 2. In this case, the user -is given a very clear idea of what has happened without having -to launch a separate debugger. - -The advantage to this approach is that it provides more seamless -integration between error handling in scripts and error handling in -extensions. In addition, it eliminates the most common debugging step -that a developer is likely to perform in the event of a fatal -error--running a separate debugger on a core file and typing 'where' -to get a stack trace. Finally, this allows end-users to provide -extension writers with useful debugging information since they can -supply a stack trace as opposed to a vague complaint that the program -``crashed.'' - -\begin{figure*}[t] -\begin{picture}(400,250)(0,0) -\put(50,-110){\special{psfile = tcl.ps hscale = 60 vscale = 60}} -\end{picture} -\caption{Dialog box with WAD generated traceback information for a failed assertion in a Tcl/Tk extension} -\end{figure*} - -\section{Scripting Language Internals} - -In order to provide embedded error recovery, it is critical to understand how -scripting language interpreters interface with extension code. Despite the wide variety -of scripting languages, essentially every implementation uses a similar -technique for accessing foreign code. - -Virtually all scripting languages provide an extension mechanism in the form of a foreign function -interface in which compiled procedures can be called from the scripting language -interpreter. This is accomplished by writing a collection of wrapper functions that conform -to a specified calling convention. The primary purpose of the wrappers are to -marshal arguments and return values between the two languages and to handle errors. -For example, in Tcl, every wrapper -function must conform to the following prototype: - -\begin{verbatim} -int -wrap_foo(ClientData clientData, - Tcl_Interp *interp, - int objc, - Tcl_Obj *CONST objv[]) -{ - /* Convert arguments */ - ... - /* Call a function */ - - result = foo(args); - /* Set result */ - ... - if (success) { - return TCL_OK; - } else { - return TCL_ERROR; - } -} -\end{verbatim} - -Another common extension mechanism is an object/type interface that allows programmers to create new -kinds of fundamental types or attach special properties to objects in -the interpreter. For example, both Tcl and Python provide an API for creating new -``built-in'' objects that behave like numbers, strings, lists, etc. -In most cases, this involves setting up tables of function -pointers that define various properties of an object. For example, if -you wanted to add complex numbers to an interpreter, you might fill in a special -data structure with pointers to methods that implement various numerical operations like this: - -\begin{verbatim} -NumberMethods ComplexMethods { - complex_add, - complex_sub, - complex_mul, - complex_div, - ... -};\end{verbatim} - -\noindent -Once registered with the interpreter, the methods in this structure -would be invoked by various interpreter operators such as $+$, -$-$, $*$, and $/$. - -Most interpreters handle errors as a two-step process in which -detailed error information is first registered with the interpreter -and then a special error code is returned. For example, in Tcl, errors -are handled by setting error information in the interpreter and -returning a value of TCL\_ERROR. Similarly in Python, errors are -handled by calling a special function to raise an exception and returning NULL. In both cases, -this triggers the interpreter's error handler---possibly resulting in -a stack trace of the running script. In some cases, an interpreter -might handle errors using a form of the C {\tt longjmp} function. -For example, Perl provides a special function {\tt die} that jumps back -to the interpreter with a fatal error \cite{advperl}. - -The precise implementation details of these mechanisms aren't so -important for our discussion. The critical point is that scripting -languages always access extension code though a well-defined interface -that precisely defines how arguments are to be passed, values are to be -returned, and errors are to be handled. - -\section{Scripting Languages and Signals} - -Under normal circumstances, errors in extension code are handled -through the error-handling API provided by the scripting language -interpreter. For example, if an invalid function parameter is passed, -a program can simply set an error message and return to the -interpreter. Similarly, automatic wrapper generators such as SWIG can produce -code to convert C++ exceptions and other C-related error handling -schemes to scripting language errors \cite{swigexcept}. On the other -hand, segmentation faults, failed assertions, and similar problems -produce signals that cause the interpreter to abort execution. - -Most scripting languages provide limited support for Unix signal -handling \cite{stevens}. However, this support is not sufficiently advanced to -recover from fatal signals produced by extension code. -Unlike signals generated for asynchronous events such as I/O, -execution can {\em not} be resumed at the point of a fatal signal. -Therefore, even if such a signal could be caught and handled by a script, -there isn't much that it can do except to print a diagnostic -message and abort before the signal handler returns. In addition, -some interpreters block signal delivery while executing -extension code--opting to handle signals at a time when it is more convenient. -In this case, a signal such as SIGSEGV would simply cause the whole application -to freeze since there is no way for execution to continue to a point where -the signal could be delivered. Thus, scripting languages tend to -either ignore the problem or label it as a ``limitation.'' - -\section{Overview of WAD} - -WAD installs a signal handler for SIGSEGV, SIGBUS, SIGABRT, SIGILL, -and SIGFPE using the {\tt sigaction} function -\cite{stevens}. Furthermore, it uses a special option (SA\_SIGINFO) of -signal handling that passes process context information to the signal -handler when a signal occurs. Since none of these signals are normally used in the -implementation of the scripting interpreter or by user scripts, -this does not usually override any previous signal handling. -Afterwards, when one of these signals occurs, a two-phase recovery -process executes. First, information is collected about the execution -context including a full stack-trace, symbol table entries, and -debugging information. Then, the current stream of execution is -aborted and an error is returned to the interpreter. This process is -illustrated in Figure~3. - -The collection of context and debugging information involves the -following steps: - -\begin{itemize} -\item The program counter and stack pointer are obtained from -context information passed to the signal handler. - -\item The virtual memory map of the process is obtained from /proc -and used to associate virtual memory addresses with executable files, -shared libraries, and dynamically loaded extension modules \cite{proc}. - -\item The call stack is unwound to collect traceback information. -At each step of the stack traceback, symbol table and debugging -information is gathered and stored in a generic data structure for later use -in the recovery process. This data is obtained by memory-mapping -the object files associated with the process and extracting -symbol table and debugging information. -\end{itemize} - -Once debugging information has been collected, the signal handler -enters an error-recovery phase that -attempts to raise a scripting exception and return to a suitable location in the -interpreter. To do this, the following steps are performed: - -\begin{itemize} - -\item The stack trace is examined to see if there are any locations in the interpreter -to which control can be returned. - -\item If a suitable return location is found, the CPU context is modified in -a manner that makes the signal handler return to the interpreter -with an error. This return process is assisted by a small -trampoline function (partially written in assembly language) that arranges a proper -return to the interpreter after the signal handler returns. -\end{itemize} - -\noindent -Of the two phases, the first is the most straightforward to implement -because it involves standard Unix API functions and common file formats such -as ELF and stabs \cite{elf,stabs}. On the other hand, the recovery phase in -which control is returned to the interpreter is of greater interest. Therefore, -it is now described in greater detail. - -\begin{figure*}[t] -\begin{picture}(480,340)(5,60) - -\put(50,330){\framebox(200,70){}} -\put(60,388){\small \tt >>> {\bf foo()}} -\put(60,376){\small \tt Traceback (most recent call last):} -\put(70,364){\small \tt File "<stdin>", line 1, in ?} -\put(60,352){\small \tt SegFault: [ C stack trace ]} -\put(60,340){\small \tt ...} - -\put(55,392){\line(-1,0){25}} -\put(30,392){\line(0,-1){80}} -\put(30,312){\line(1,0){95}} -\put(125,312){\vector(0,-1){10}} -\put(175,302){\line(0,1){10}} -\put(175,312){\line(1,0){95}} -\put(270,312){\line(0,1){65}} -\put(270,377){\vector(-1,0){30}} - -\put(50,285){\framebox(200,15)[c]{[Python internals]}} -\put(125,285){\vector(0,-1){10}} -\put(175,275){\vector(0,1){10}} -\put(50,260){\framebox(200,15)[c]{call\_builtin()}} -\put(125,260){\vector(0,-1){10}} -%\put(175,250){\vector(0,1){10}} -\put(50,235){\framebox(200,15)[c]{wrap\_foo()}} -\put(125,235){\vector(0,-1){10}} -\put(50,210){\framebox(200,15)[c]{foo()}} -\put(125,210){\vector(0,-1){10}} -\put(50,185){\framebox(200,15)[c]{doh()}} -\put(125,185){\vector(0,-1){20}} -\put(110,148){SIGSEGV} -\put(160,152){\vector(1,0){100}} -\put(260,70){\framebox(200,100){}} -\put(310,155){WAD signal handler} -\put(265,140){1. Unwind C stack} -\put(265,125){2. Gather symbols and debugging info} -\put(265,110){3. Find safe return location} -\put(265,95){4. Raise Python exception} -\put(265,80){5. Modify CPU context and return} - -\put(260,185){\framebox(200,15)[c]{return assist}} -\put(365,174){Return from signal} -\put(360,170){\vector(0,1){15}} -\put(360,200){\line(0,1){65}} - -%\put(360,70){\line(0,-1){10}} -%\put(360,60){\line(1,0){110}} -%\put(470,60){\line(0,1){130}} -%\put(470,190){\vector(-1,0){10}} - -\put(360,265){\vector(-1,0){105}} -\put(255,250){NULL} -\put(255,270){Return to interpreter} - -\end{picture} - -\caption{Control Flow of the Error Recovery Mechanism for Python} -\label{wad} -\end{figure*} - -\section{Returning to the Interpreter} - -To return to the interpreter, WAD maintains a table of symbolic names -that correspond to locations within the interpreter -responsible for invoking wrapper functions and object/type methods. -For example, Table 1 shows a partial list of return locations used in -the Python implementation. When an error occurs, the call stack is -scanned for the first occurrence of any symbol in this table. If a -match is found, control is returned to that location by emulating the -return of a wrapper function with the error code from the table. If no -match is found, the error handler simply prints a stack trace to -standard output and aborts. - -When a symbolic match is found, WAD invokes a special user-defined -handler function that is written for a specific scripting language. -The primary role of this handler is to take debugging information -gathered from the call stack and generate an appropriate scripting -language error. One peculiar problem of this step is that the -generation of an error may require the use of parameters passed to a -wrapper function. For example, in the Tcl wrapper shown earlier, one -of the arguments was an object of type ``{\tt Tcl\_Interp *}''. This -object contains information specific to the state of the interpreter -(and multiple interpreter objects may exist in a single application). -Unfortunately, no reference to the interpreter object is available in the -signal handler nor is a reference to interpreter guaranteed to exist in -the context of a function that generated the error. - -To work around this problem, WAD implements a feature -known as argument stealing. When examining the call-stack, the signal -handler has full access to all function arguments and local variables of each function -on the stack. -Therefore, if the handler knows that an error was generated while -calling a wrapper function (as determined by looking at the symbol names), -it can grab the interpreter object from the stack frame of the wrapper and -use it to set an appropriate error code before returning to the interpreter. -Currently, this is managed by allowing the signal handler to steal -arguments from the caller using positional information. -For example, to grab the {\tt Tcl\_Interp *} object from a Tcl wrapper function, -code similar to the following is written: - -\begin{verbatim} -Tcl_Interp *interp; -int err; - -interp = (Tcl_Interp *) - wad_steal_outarg( - stack, - "TclExecuteByteCode", - 1, - &err - ); - ... -if (!err) { - Tcl_SetResult(interp,errtype,...); - Tcl_AddErrorInfo(interp,errdetails); -} -\end{verbatim} - -In this case, the Tcl interpreter argument passed to a wrapper function -is stolen and used to generate an error. Also, the name {\tt TclExecuteByteCode} -refers to the calling function, not the wrapper function itself. -At this time, argument stealing is only applicable to simple types -such as integers and pointers. However, this appears to be adequate for generating -scripting language errors. - - -\begin{table}[t] -\begin{center} -\begin{tabular}{ll} -Python symbol & Error return value \\ \hline -call\_builtin & NULL \\ -PyObject\_Print & -1 \\ -PyObject\_CallFunction & NULL \\ -PyObject\_CallMethod & NULL \\ -PyObject\_CallObject & NULL \\ -PyObject\_Cmp & -1 \\ -PyObject\_DelAttrString & -1 \\ -PyObject\_DelItem & -1 \\ -PyObject\_GetAttrString & NULL \\ -\end{tabular} -\end{center} - -\label{returnpoints} -\caption{A partial list of symbolic return locations in the Python interpreter} -\end{table} - -\section{Register Management} - -A final issue concerning the return mechanism has to do with the -behavior of the non-local return to the interpreter. Roughly -speaking, this emulates the C {\tt longjmp} -library call. However, this is done without the use of a matching -{\tt setjmp} in the interpreter. - -The primary problem with aborting execution and returning to the -interpreter in this manner is that most compilers use a register -management technique known as callee-save \cite{prag}. In this case, -it is the responsibility of the called function to save the state of -the registers and to restore them before returning to the caller. By -making a non-local jump, registers may be left in an inconsistent -state due to the fact that they are not restored to their original -values. The {\tt longjmp} function in the C library avoids this -problem by relying upon {\tt setjmp} to save the registers. Unfortunately, -WAD does not have this luxury. As a result, a return from the signal -handler may produce a corrupted set of registers at the point of return -in the interpreter. - -The severity of this problem depends greatly on the architecture and -compiler. For example, on the SPARC, register windows effectively -solve the callee-save problem \cite{sparc}. In this case, each stack -frame has its own register window and the windows are flushed to the -stack whenever a signal occurs. Therefore, the recovery mechanism can -simply examine the stack and arrange to restore the registers to their -proper values when control is returned. Furthermore, certain -conventions of the SPARC ABI resolve several related issues. For -example, floating point registers are caller-saved and the contents of -the SPARC global registers are not guaranteed to be preserved across -procedure calls (in fact, they are not even saved by {\tt setjmp}). - -On other platforms, the problem of register management becomes -more interesting. In this case, a heuristic approach that examines -the machine code for each function on the call stack can be used to -determine where the registers might have been saved. This approach is -used by gdb and other debuggers when they allow users to inspect -register values within arbitrary stack frames \cite{gdb}. Even though -this sounds complicated to implement, the algorithm is greatly -simplified by the fact that compilers typically generate code to store -the callee-save registers immediately upon the entry to each function. -In addition, this code is highly regular and easy to examine. For -instance, on i386-Linux, the callee-save registers can be restored by -simply examining the first few bytes of the machine code for each -function on the call stack to figure out where values have been saved. -The following code shows a typical sequence of machine instructions -used to store callee-save registers on i386-Linux: - -\begin{verbatim} -foo: -55 pushl %ebp -89 e5 mov %esp, %ebp -83 a0 subl $0xa0,%esp -56 pushl %esi -57 pushl %edi -... -\end{verbatim} - -% -% Include an example -% - -% more interesting. One approach is to simply ignore the problem -% altogether and return to the interpreter with the registers in an -% essentially random state. Surprisingly, this approach actually seems to work (although a considerable degree of -% caution might be in order). -% This is because the return of an error code tends to trigger -% a cascade of procedure returns within the implementation of the interpreter. -% As a result, the values of the registers are simply discarded and -% overwritten with restored values as the interpreter unwinds itself and prepares to handle an -% exception. A better solution to this problem is to modify the recovery mechanism to discover and -% restore saved registers from the stack. Unfortunately, there is -% no standardized way to know exactly where the registers might have been saved. -% Therefore, a heuristic scheme that examines the machine code for each procedure would -% have to be used to try and identify stack locations. This approach is used by gdb -% and other debuggers when they allow users to inspect register values -% within arbitrary stack frames \cite{gdb}. However, this technique has -% not yet been implemented in WAD due to its obvious implementation difficulty and the -% fact that the WAD prototype has primarily been developed for the SPARC. - -As a fall-back, WAD could be configured to return control to a location -previously specified with {\tt setjmp}. Unfortunately, this either -requires modifications to the interpreter or its extension modules. -Although this kind of instrumentation could be facilitated by automatic -wrapper code generators, it is not a preferred solution and is not discussed further. - -\section{Initialization} - -To simplify the debugging of extension modules, it -is desirable to make the use of WAD as transparent as possible. -Currently, there are two ways in which the system is used. First, WAD -may be explicitly loaded as a scripting language extension module. -For instance, in Python, a user can include the statement {\tt import -libwadpy} in a script to load the debugger. Alternatively, WAD can be -enabled by linking it to an extension module as a shared -library. For instance: - -\begin{verbatim} -% ld -shared $(OBJS) -lwadpy -\end{verbatim} - -In this latter case, WAD initializes itself whenever the extension module is -loaded. The same shared library is used for both situations by making -sure two types of initialization techniques are used. First, an empty -initialization function is written to make WAD appear like a proper -scripting language extension module (although it adds no functions to -the interpreter). Second, the real initialization of the system is -placed into the initialization section of the WAD shared library -object file (the ``init'' section of ELF files). This code always executes -when a library is loaded by the dynamic loader is commonly used to -properly initialize C++ objects. Therefore, a fairly portable way -to force code into the initialization section is to encapsulate the -initialization in a C++ statically constructed object like this: - -\begin{verbatim} -class InitWad { - public: - InitWad() { wad_init(); } -}; -/* This forces InitWad() to execute - on loading. */ -static InitWad init; -\end{verbatim} - -The nice part about this technique is that it allows WAD to be enabled -simply by linking or loading; no special initialization code needs to -be added to an extension module to make it work. In addition, due to -the way in which the loader resolves and initializes libraries, the -initialization of WAD is guaranteed to execute before any of the code -in the extension module to which it has been linked. The primary -downside to this approach is that the WAD shared object file can not be -linked directly to an interpreter. This is because WAD sometimes needs to call the -interpreter to properly initialize its exception handling mechanism (for instance, in Python, -four new types of exceptions are added to the interpreter). Clearly this type of initialization -is impossible if WAD is linked directly to an interpreter as -its initialization process would execute before before the main program of the -interpreter started. However, -if you wanted to permanently add WAD to an interpreter, the problem is easily -corrected by first removing the C++ initializer from WAD and then replacing it with an explicit -initialization call someplace within the interpreter's startup function. - -\section{Exception Objects} - -Before WAD returns control to the interpreter, it collects all of the -stack-trace and debugging information it was able to obtain into a -special exception object. This object represents the state of the call -stack and includes things like symbolic names for each stack frame, -the names, types, and values of function parameters and stack -variables, as well as a complete copy of data on the stack. This -information is represented in a generic manner that hides -platform specific details related to the CPU, object file formats, -debugging tables, and so forth. - -Minimally, the exception data is used to print a stack trace as shown -in Figure 1. However, if the interpreter is successfully able to -regain control, the contents of the exception object can be -freely examined after an error has occurred. For example, a Python -script could catch a segmentation fault and print debugging information -like this: - -\begin{verbatim} -try: - # Some buggy code - ... -except SegFault,e: - print 'Whoa!' - # Get WAD exception object - t = e.args[0] - # Print location info - print t.__FILE__ - print t.__LINE__ - print t.__NAME__ - print t.__SOURCE__ - ... -\end{verbatim} - -Inspection of the exception object also makes it possible to write post mortem -script debuggers that merge the call stacks of the two languages and -provide cross language diagnostics. Figure 4 shows an -example of a simple mixed language debugging session using the WAD -post-mortem debugger (wpm) after an extension error has occurred in a -Python program. In the figure, the user is first presented with a -multi-language stack trace. The information in this trace is obtained -both from the WAD exception object and from the Python traceback -generated when the exception was raised. Next, we see the user walking -up the call stack using the 'u' command of the debugger. As this -proceeds, there is a seamless transition from C to Python where the -trace crosses between the two languages. An optional feature of the -debugger (not shown) allows the debugger to walk up the entire C -call-stack (in this case, the trace shows information about the -implementation of the Python interpreter). More advanced features of -the debugger allow the user to query values of function -parameters, local variables, and stack frames (although some of this -information may not be obtainable due to compiler optimizations and the -difficulties of accurately recovering register values). - -\begin{figure*}[t] -{\small -\begin{verbatim} -[ Error occurred ] ->>> from wpm import * -*** WAD Debugger *** -#5 [ Python ] in self.widget._report_exception() in ... -#4 [ Python ] in Button(self,text="Die", command=lambda x=self: ... -#3 [ Python ] in death_by_segmentation() in death.py, line 22 -#2 [ Python ] in debug.seg_crash() in death.py, line 5 -#1 0xfeee2780 in _wrap_seg_crash(self=0x0,args=0x18f114) in 'pydebug.c', line 512 -#0 0xfeee1320 in seg_crash() in 'debug.c', line 20 - - int *a = 0; - => *a = 3; - return 1; - ->>> u -#1 0xfeee2780 in _wrap_seg_crash(self=0x0,args=0x18f114) in 'pydebug.c', line 512 - - if(!PyArg_ParseTuple(args,":seg_crash")) return NULL; - => result = (int )seg_crash(); - resultobj = PyInt_FromLong((long)result); - ->>> u -#2 [ Python ] in debug.seg_crash() in death.py, line 5 - - def death_by_segmentation(): - => debug.seg_crash() - ->>> u -#3 [ Python ] in death_by_segmentation() in death.py, line 22 - - if ty == 1: - => death_by_segmentation() - elif ty == 2: ->>> \end{verbatim} -} -\caption{Cross-language debugging session in Python where a user is walking a mixed language call stack.} -\end{figure*} - -\section{Implementation Details} - -Currently, WAD is implemented in ANSI C and small amount of assembly -code to assist in the return to the interpreter. The current -implementation supports Python and Tcl extensions on SPARC Solaris and -i386-Linux. Each scripting language is currently supported by a -separate shared library such as {\tt libwadpy.so} and {\tt -libwadtcl.so}. In addition, a language neutral library {\tt -libwad.so} can be linked against non-scripted applications (in which case -a stack trace is simply printed to standard error when a problem occurs). -The entire implementation contains approximately 2000 -semicolons. Most of this code pertains to the gathering of debugging -information from object files. Only a small part of the code is -specific to a particular scripting language (170 semicolons for Python -and 50 semicolons for Tcl). - -Although there are libraries such as the GNU Binary File Descriptor -(BFD) library that can assist with the manipulation of object files, -these are not used in the implementation \cite{bfd}. These -libraries tend to be quite large and are oriented more towards -stand-alone tools such as debuggers, linkers, and loaders. In addition, -the behavior of these libraries with respect to memory management -would need to be carefully studied before they could be safely used in -an embedded environment. Finally, given the small size of the prototype -implementation, it didn't seem necessary to rely upon such a -heavyweight solution. - -A surprising feature of the implementation is that a significant -amount of the code is language independent. This is achieved by -placing all of the process introspection, data collection, and -platform specific code within a centralized core. To provide a -specific scripting language interface, a developer only needs to -supply two things; a table containing symbolic function names where -control can be returned (Table 1), and a handler function in the form -of a callback. As input, this handler receives an exception object as -described in an earlier section. From this, the handler can -raise a scripting language exception in whatever manner is most -appropriate. - -Significant portions of the core are also relatively straightforward -to port between different Unix systems. For instance, code to read -ELF object files and stabs debugging data is essentially identical for -Linux and Solaris. In addition, the high-level control logic is -unchanged between platforms. Platform specific differences primarily -arise in the obvious places such as the examination of CPU -registers, manipulation of the process context in the signal handler, -reading virtual memory maps from /proc, and so forth. Additional -changes would also need to be made on systems with different object -file formats such as COFF and DWARF2. To extent that it is possible, -these differences could be hidden by abstraction mechanisms (although -the initial implementation of WAD is weak in this regard and would -benefit from techniques used in more advanced debuggers such as gdb). -Despite these porting issues, the primary requirement for WAD is a fully -functional implementation of SVR4 signal handling that allows for -modifications of the process context. - -Due to the heavy dependence on Unix signal handling, process -introspection, and object file formats, it is unlikely that WAD could -be easily ported to non-Unix systems such as Windows. However, it may -be possible to provide a similar capability using advanced features of -Windows structured exception handling \cite{seh}. For instance, structured -exception handlers can be used to catch hardware faults, they can -receive process context information, and they can arrange to take -corrective action much like the signal implementation described here. - -\section{Modification of Interpreters?} - -A logical question to ask about the implementation of WAD is whether -or not it would make sense to modify existing interpreters to assist -in the recovery process. For instance, instrumenting Python or Tcl with setjmp -functions might simplify the implementation since it would eliminate -issues related to register restoration and finding a suitable return -location. - -Although it may be possible to make these changes, there are -several drawbacks to this approach. First, the number of required modifications may be -quite large. For instance, there are well over 50 entry points to -extension code within the implementation of Python. Second, an -extension module may perform callbacks and evaluation of script code. -This means that the call stack would cross back and forth -between languages and that these modifications would have to be made -in a way that allows arbitrary nesting of extension calls. Finally, -instrumenting the code in this manner may introduce a performance -impact--a clearly undesirable side effect considering the infrequent -occurrence of fatal extension errors. - -\section{Discussion} - -The primary goal of embedded error recovery is to provide an -alternative approach for debugging scripting language extensions. -Although this approach has many benefits, there are a number -drawbacks and issues that must be discussed. - -First, like the C {\tt longjmp} function, the error recovery mechanism -does not cleanly unwind the call stack. For C++, this means that -objects allocated on stack will not be finalized (destructors will not -be invoked) and that memory allocated on the heap may be -leaked. Similarly, this could result in open files, sockets, and other -system resources. In a multi-threaded environment, -deadlock may occur if a procedure holds a lock when an error occurs. - -In certain cases, the use of signals in WAD may interact adversely with scripting -language signal handling. Since scripting languages ordinarily do not catch signals such as -SIGSEGV, SIGBUS, and SIGABRT, the use of WAD is unlikely to conflict -with any existing signal handling. However, most scripting languages would not -prevent a user from disabling the WAD error recovery mechanism by -simply specifying a new handler for one or more of these signals. In addition, the use of -certain extensions such as the Perl sigtrap module would completely -disable WAD \cite{perl}. - -A more difficult signal handling problem arises when thread libraries -are used. These libraries tend to override default signal handling -behavior in a way that defines how signals are delivered to each -thread \cite{thread}. In general, asynchronous signals can be -delivered to any thread within a process. However, this does not -appear to be a problem for WAD since hardware exceptions are delivered -to a signal handler that runs within the same thread in which the -error occurred. Unfortunately, even in this case, personal experience has -shown that certain implementations of user thread libraries (particularly on older versions -of Linux) do not reliably pass -signal context information nor do they universally support advanced -signal operations such as {\tt sigaltstack}. Because of this, WAD may -be incompatible with a crippled implementation of user threads on -these platforms. - -A even more subtle problem with threads is that the recovery process -itself is not thread-safe (i.e., it is not possible to concurrently -handle fatal errors occurring in different threads). For most -scripting language extensions, this limitation does not apply due to -strict run-time restrictions that interpreters currently place on -thread support. For instance, even though Python supports threaded -programs, it places a global mutex-lock around the interpreter that -makes it impossible for more than one thread to concurrently execute -within the interpreter at once. A consequence of this restriction is -that extension functions are not interruptible by thread-switching -unless they explicitly release the interpreter lock. Currently, the -behavior of WAD is undefined if extension code releases the lock and -proceeds to generate a fault. In this case, the recovery process may -either cause an exception to be raised in an entirely different -thread or cause execution to violate the interpreter's mutual exclusion -constraint on the interpreter. - -In certain cases, errors may result in an unrecoverable crash. For -example, if an application overwrites the heap, it may destroy -critical data structures within the interpreter. Similarly, -destruction of the call stack (via buffer overflow) makes it -impossible for the recovery mechanism to create a stack-trace and -return to the interpreter. More subtle memory management problems -such as double-freeing of heap allocated memory can also cause a system -to fail in a manner that bears little resemblance to actual source -of the problem. Given that WAD lives in the same process as the -faulting application and that such errors may occur, a common -question to ask is to what extent does WAD complicate debugging when it -doesn't work. - -To handle potential problems in the implementation of WAD itself, -great care is taken to avoid the use of library functions and -functions that rely on heap allocation (malloc, free, etc.). For -instance, to provide dynamic memory allocation, WAD implements its own -memory allocator using mmap. In addition, signals are disabled -immediately upon entry to the WAD signal handler. Should a fatal -error occur inside WAD, the application will dump core and exit. Since -the resulting core file contains the stack trace of both WAD and the -faulting application, a traditional C debugger can be used to identify -the problem as before. The only difference is that a few additional -stack frames will appear on the traceback. - -An application may also fail after the WAD signal handler has completed -execution if memory or stack frames within the interpreter have been -corrupted in a way that prevents proper exception handling. In this case, the -application may fail in a manner that does not represent the original -programming error. It might also cause the WAD signal handler to be -immediately reinvoked with a different process state--causing it to -report information about a different type of failure. To address -these kinds of problems, WAD creates a tracefile {\tt -wadtrace} in the current working directory that contains information -about each error that it has handled. If no recovery was possible, a -programmer can look at this file to obtain all of the stack traces -that were generated. - -If an application is experiencing a very serious problem, WAD -does not prevent a standard debugger from being attached to the -process. This is because the debugger overrides the current signal -handling so that it can catch fatal errors. As a result, even if WAD -is loaded, fatal signals are simply redirected to the attached -debugger. Such an approach also allows for more complex debugging -tasks such as single-step execution, breakpoints, and -watchpoints--none of which are easily added to WAD itself. - -% -% Add comments about what WAD does in this case? -% - -Finally, there are a number of issues that pertain -to the interaction of the recovery mechanism with the interpreter. -For instance, the recovery scheme is unable to return to procedures -that might invoke wrapper functions with conflicting return codes. -This problem manifests itself when the interpreter's virtual -machine is built around a large {\tt switch} statement from which different -types of wrapper functions are called. For example, in Python, certain -internal procedures call a mix of functions where both NULL and -1 are -returned to indicate errors (depending on the function). In this case, there -is no way to specify a proper error return value because there will be -conflicting entries in the WAD return table (although you could compromise and -return the error value for the most common case). The recovery -process is also extremely inefficient due to its heavy reliance on -{\tt mmap}, file I/O, and linear search algorithms for finding symbols -and debugging information. Therefore, WAD would -unsuitable as a more general purpose extension related exception handler. - -Despite these limitations, embedded error recovery is still a useful -capability that can be applied to a wide variety of extension related -errors. This is because errors such as failed assertions, bus errors, -and floating point exceptions rarely result in a situation where the -recovery process would be unable to run or the interpreter would -crash. Furthermore, more serious errors such as segmentation faults -are more likely to caused by an uninitialized pointer than a blatant -destruction of the heap or stack. - -\section{Related Work} - -A huge body of literature is devoted to the topic of exception -handling in various languages and systems. Furthermore, the topic -remains one of active interest in the software community. For -instance, IEEE Transactions on Software Engineering recently devoted -two entire issues to current trends in exception handling -\cite{except1,except2}. Unfortunately, very little of this work seems -to be directly related to mixed compiled-interpreted exception -handling, recovery from fatal signals, and problems pertaining to -mixed-language debugging. - -Perhaps the most directly relevant work is that of advanced programming -environments for Common Lisp \cite{lisp}. Not only does CL have a foreign function interface, -debuggers such as gdb have previously been modified to walk the Lisp stack -\cite{ffi,wcl}. Furthermore, certain Lisp development environments have -previously provided a high degree of integration between compiled code and -the Lisp interpreter\cite{gabriel}. - -In certain cases, a scripting language module has been used to provide -partial information for fatal signals. For example, the Perl {\tt -sigtrap} module can be used to produce a Perl stack trace when a -problem occurs \cite{perl}. Unfortunately, this module does not -provide any information from the C stack. Similarly, advanced software development -environments such as Microsoft's Visual Studio can automatically launch a C/C++ -debugger when an error occurs. Unfortunately, this doesn't provide any information -about the script that was running. - -In the area of programming languages, a number of efforts have been made to -map signals to exceptions in the form of asynchronous exception handling -\cite{buhr,ml,haskell}. Unfortunately, this work tends to -concentrate on the problem of handling asynchronous signals related to I/O as opposed -to synchronously generated signals caused by software faults. - -With respect to debugging, little work appears to have been done in the area of -mixed compiled-interpreted debugging. Although modern debuggers -certainly try to provide advanced capabilities for debugging within a -single language, they tend to ignore the boundary between languages. -As previously mentioned, debuggers have occasionally been modified to -support other languages such as Common Lisp \cite{wcl}. However, little work appears -to have been done in the context of modern scripting languages. One system of possible interest -in the context of mixed compiled-interpreted debugging is the R$^{n}$ -system developed at Rice University in the mid-1980's \cite{carle}. This -system, primarily developed for scientific computing, allowed control -to transparently pass between compiled code and an interpreter. -Furthermore, the system allowed dynamic patching of an executable in -which compiled procedures could be replaced by an interpreted -replacement. Although this system does not directly pertain to the problem of -debugging of scripting language extensions, it is one of the few -examples of a system in which compiled and interpreted code have been -tightly integrated within a debugger. - -More recently, a couple of efforts have emerged to that seem to -address certain issues related to mixed-mode debugging of interpreted -and compiled code. PyDebug is a recently developed system that focuses -on problems related to the management of breakpoints in Python -extension code \cite{pydebug}. It may also be possible to perform -mixed-mode debugging of Java and native methods using features of the -Java Platform Debugger Architecture (JPDA) \cite{jpda}. Mixed-mode -debugging support for Java may also be supported in advanced debugging systems -such as ICAT \cite{icat}. -However, none of these systems appear to have taken the approach of -converting hardware faults into Java errors or exceptions. - -\section{Future Directions} - -As of this writing, WAD is only an experimental prototype. Because of -this, there are certainly a wide variety of incremental improvements -that could be made to support additional platforms and scripting -languages. In addition, there are a variety of improvements that could be made -to provide better integration with threads and C++. One could also -investigate heuristic schemes such as backward stack tracing that might be able -to recover partial debugging information from corrupted call stacks \cite{debug}. - -A more interesting extension of this work would be to see how the -exception handling approach of WAD could be incorporated with -the integrated development environments and script-level debugging -systems that have already been developed. For instance, it would be interesting -to see if a graphical debugging front-end such as DDD could be modified -to handle mixed-language stack traces within the context of a script-level debugger \cite{ddd}. - -It may also be possible to extend the approach taken by WAD to other -types of extensible systems. For instance, if one were developing a -new server module for the Apache web-server, it might be possible to redirect fatal -module errors back to the server in a way that produces a webpage with -a stack trace \cite{apache}. The exception handling approach may also have -applicability to situations where compiled code is used to build software -components that are used as part of a large distributed system. - -\section{Conclusions and Availability} - -This paper has presented a mechanism by which fatal errors such as -segmentation faults and failed assertions can be handled as scripting -language exceptions. This approach, which relies upon advanced -features of Unix signal handling, allows fatal signals to be caught -and transformed into errors from which interpreters can produce an -informative cross-language stack trace. In doing so, it provides more -seamless integration between scripting languages and compiled -extensions. Furthermore, this has the potential to greatly simplify the -frustrating task of debugging complicated mixed scripted-compiled -software. - -The prototype implementation of this system is available at : - -\begin{center} -{\tt http://systems.cs.uchicago.edu/wad}. -\end{center} - -\noindent -Currently, WAD supports Python and Tcl on SPARC Solaris and i386-Linux -systems. Work to support additional scripting languages and platforms -is ongoing. - -\section{Acknowledgments} - -Richard Gabriel and Harlan Sexton provided interesting insights -concerning debugging capabilities in Common Lisp. Stephen Hahn -provided useful information concerning the low-level details of signal -handling on Solaris. I would also like to thank the technical -reviewers and Rob Miller for their useful comments. - -\begin{thebibliography}{99} - - -\bibitem{ousterhout} J. K. Ousterhout, {\em Tcl: An Embeddable Command Language}, -Proceedings of the USENIX Association Winter Conference, 1990. p.133-146. - -\bibitem{perl} L. Wall, T. Christiansen, and R. Schwartz, {\em Programming Perl}, 2nd. Ed. -O'Reilly \& Associates, 1996. - -\bibitem{python} M. Lutz, {\em Programming Python}, O'Reilly \& Associates, 1996. - -\bibitem{guile} Thomas Lord, {\em An Anatomy of Guile, The Interface to -Tcl/Tk}, USENIX 3rd Annual Tcl/Tk Workshop 1995. - -\bibitem{php} T. Ratschiller and T. Gerken, {\em Web Application Development with PHP 4.0}, -New Riders, 2000. - -\bibitem{ruby} D. Thomas, A. Hunt, {\em Programming Ruby}, Addison-Wesley, 2001. - -\bibitem{swig} D.M. Beazley, {\em SWIG : An Easy to Use Tool for Integrating Scripting Languages with C and C++}, Proceedings of the 4th USENIX Tcl/Tk Workshop, p. 129-139, July 1996. - -\bibitem{sip} P. Thompson, {\em SIP},\\ -{\tt http://www.thekompany.com/ projects/pykde}. - -\bibitem{pyfort} P.~F.~Dubois, {\em Climate Data Analysis Software}, 8th International Python Conference, -Arlington, VA., 2000. - -\bibitem{f2py} P. Peterson, J. Martins, and J. Alonso, -{\em Fortran to Python Interface Generator with an application to Aerospace -Engineering}, 9th International Python Conference, submitted, 2000. - -\bibitem{advperl} S. Srinivasan, {\em Advanced Perl Programming}, O'Reilly \& Associates, 1997. - -\bibitem{heidrich} Wolfgang Heidrich and Philipp Slusallek, {\em Automatic Generation of Tcl Bindings for C and C++ Libraries.}, -USENIX 3rd Tcl/Tk Workshop, 1995. - -\bibitem{vtk} K. Martin, {\em Automated Wrapping of a C++ Class Library into Tcl}, -USENIX 4th Tcl/Tk Workshop, p. 141-148, 1996. - -\bibitem{gwrap} C. Lee, {\em G-Wrap: A tool for exporting C libraries into Scheme Interpreters},\\ -{\tt http://www.cs.cmu.edu/\~{ }chrislee/ -Software/g-wrap}. - -\bibitem{wrappy} G. Couch, C. Huang, and T. Ferrin, {\em Wrappy :A Python Wrapper -Generator for C++ Classes}, O'Reilly Open Source Software Convention, 1999. - -\bibitem{ouster1} J. K. Ousterhout, {\em Scripting: Higher-Level Programming for the 21st Century}, -IEEE Computer, Vol 31, No. 3, p. 23-30, 1998. - -\bibitem{gdb} R. Stallman and R. Pesch, {\em Using GDB: A Guide to the GNU Source-Level Debugger}. -Free Software Foundation and Cygnus Support, Cambridge, MA, 1991. - -\bibitem{swigexcept} D.M. Beazley and P.S. Lomdahl, {\em Feeding a -Large-scale Physics Application to Python}, 6th International Python -Conference, co-sponsored by USENIX, p. 21-28, 1997. - -\bibitem{stevens} W. Richard Stevens, {\em UNIX Network Programming: Interprocess Communication, Volume 2}. PTR -Prentice-Hall, 1998. - -\bibitem{proc} R. Faulkner and R. Gomes, {\em The Process File System and Process Model in UNIX System V}, USENIX Conference Proceedings, -January 1991. - -\bibitem{elf} J.~R.~Levine, {\em Linkers \& Loaders.} Morgan Kaufmann Publishers, 2000. - -\bibitem{stabs} Free Software Foundation, {\em The ``stabs'' debugging format}. GNU info document. - -\bibitem{prag} M.L. Scott. {\em Programming Language Pragmatics}, Morgan Kaufmann Publishers, 2000. - -\bibitem{sparc} D. Weaver and T. Germond, {\em SPARC Architecture Manual Version 9}, -Prentice-Hall, 1993. - -\bibitem{bfd} S. Chamberlain. {\em libbfd: The Binary File Descriptor Library}. Cygnus Support, bfd version 3.0 edition, April 1991. - -\bibitem{seh} M. Pietrek, {\em A Crash Course on the Depths of Win32 Structured Exception Handling}, -Microsoft Systems Journal, January 1997. - -\bibitem{thread} F. Mueller, {\em A Library Implementation of POSIX Threads Under Unix}, -USENIX Winter Technical Conference, San Diego, CA., p. 29-42, 1993. - -\bibitem{debug} J. B. Rosenberg, {\em How Debuggers Work: Algorithms, Data Structures, and -Architecture}, John Wiley \& Sons, 1996. - -\bibitem{except1} D.E. Perry, A. Romanovsky, and A. Tripathi, {\em -Current Trends in Exception Handling-Part I}, -IEEE Transactions on Software Engineering, Vol 26, No. 9, p. 817-819, 2000. - -\bibitem{except2} D.E. Perry, A. Romanovsky, and A. Tripathi, {\em -Current Trends in Exception Handling-Part II}, -IEEE Transactions on Software Engineering, Vol 26, No. 10, p. 921-922, 2000. - - -\bibitem{lisp} G.L. Steele Jr., {\em Common Lisp: The Language, Second Edition}, Digital Press, -Bedford, MA. 1990. - -\bibitem{gabriel} R. Gabriel, private correspondence. - -\bibitem{ffi} H. Sexton, {\em Foreign Functions and Common Lisp}, in Lisp Pointers, Vol 1, No. 5, 1988. - -\bibitem{wcl} W. Henessey, {\em WCL: Delivering Efficient Common Lisp Applications Under Unix}, -ACM Conference on Lisp and Functional Languages, p. 260-269, 1992. - -\bibitem{buhr} P.A. Buhr and W.Y.R. Mok, {\em Advanced Exception Handling Mechanisms}, IEEE Transactions on Software Engineering, -Vol. 26, No. 9, p. 820-836, 2000. - -\bibitem{haskell} S. Marlow, S. P. Jones, and A. Moran. {\em -Asynchronous Exceptions in Haskell.} In 4th International Workshop on -High-Level Concurrent Languages, September 2000. - -\bibitem{ml} J. H. Reppy, {\em Asynchronous Signals in Standard ML}. Technical Report TR90-1144, -Cornell University, Computer Science Department, 1990. - -\bibitem{carle} A. Carle, D. Cooper, R. Hood, K. Kennedy, L. Torczon, S. Warren, -{\em A Practical Environment for Scientific Programming.} -IEEE Computer, Vol 20, No. 11, p. 75-89, 1987. - -\bibitem{pydebug} P. Stoltz, {\em PyDebug, a New Application for Integrated -Debugging of Python with C and Fortran Extensions}, O'Reilly Open Source Software Convention, -San Diego, 2001 (to appear). - -\bibitem{jpda} Sun Microsystems, {\em Java Platform Debugger Architecture}, -http://java.sun.com/products/jpda - -\bibitem{icat} IBM, {\em ICAT Debugger}, \\ -http://techsupport.services.ibm.com/icat. - -\bibitem{ddd} A. Zeller, {\em Visual Debugging with DDD}, Dr. Dobb's Journal, March, 2001. - -\bibitem{apache} {\em Apache HTTP Server Project}, \\ -{\tt http://httpd.apache.org/} - -\end{thebibliography} - -\end{document} - - - - - - - - diff --git a/SWIG/Tools/WAD/Prebuilt/linux/Makefile.in b/SWIG/Tools/WAD/Prebuilt/linux/Makefile.in deleted file mode 100644 index 074e65452..000000000 --- a/SWIG/Tools/WAD/Prebuilt/linux/Makefile.in +++ /dev/null @@ -1,11 +0,0 @@ -# Generated automatically from Makefile.in by configure. - -SHELL = /bin/sh -prefix = @prefix@ -execprefix= @exec_prefix@ -LIB = $(execprefix)/lib - -install: - cp libwad*.so $(LIB) - chmod a+rx $(LIB)/libwad*.so - diff --git a/SWIG/Tools/WAD/Prebuilt/solaris/Makefile.in b/SWIG/Tools/WAD/Prebuilt/solaris/Makefile.in deleted file mode 100644 index 074e65452..000000000 --- a/SWIG/Tools/WAD/Prebuilt/solaris/Makefile.in +++ /dev/null @@ -1,11 +0,0 @@ -# Generated automatically from Makefile.in by configure. - -SHELL = /bin/sh -prefix = @prefix@ -execprefix= @exec_prefix@ -LIB = $(execprefix)/lib - -install: - cp libwad*.so $(LIB) - chmod a+rx $(LIB)/libwad*.so - diff --git a/SWIG/Tools/WAD/Python/Makefile.in b/SWIG/Tools/WAD/Python/Makefile.in deleted file mode 100644 index 2859039af..000000000 --- a/SWIG/Tools/WAD/Python/Makefile.in +++ /dev/null @@ -1,54 +0,0 @@ -####################################################################### -# WAD Makefile -# -# David Beazley -# January 1, 2001 -####################################################################### - -# These are the files that make up the WAD core -SRCS = type.c python.c -OBJS = type.o python.o -INCLUDE = -I../Include -I. $(SINCLUDE) -WADOPT = @WADOPT@ - -# Location of your Python installation -PYINCLUDE = @PYINCLUDE@ -PYSRCS = wadpyinit.cxx -PYOBJS = wadpyinit.o - -# C Compiler -CC = @CC@ -CFLAGS = #@CCSHARED@ - -# C++ Compiler -CXX = @CXX@ -CXXFLAGS = #@CXXSHARED@ - -# Linking options -CLINK = -CXXLINK = @CXXLINK@ - -# Rules for creation of a .o file from .cxx -.SUFFIXES: .cxx -.cxx.o: - $(CXX) $(CXXFLAGS) $(WADOPT) $(INCLUDE) -c -o $*.o $< - -.c.o: - $(CC) $(CFLAGS) $(PYINCLUDE) $(WADOPT) $(INCLUDE) -c -o $*.o $< - -python: $(OBJS) $(PYOBJS) - $(CXXLINK) $(OBJS) $(PYOBJS) -o libwadpy.so -L.. -lwadcore - cp libwadpy.so .. - -wc:: - wc $(SRCS) - -semi:: - @egrep ";" $(SRCS) $(PYSRCS) | wc - -clean:: - rm -f *.o *.so *~ - - - - diff --git a/SWIG/Tools/WAD/Python/python.c b/SWIG/Tools/WAD/Python/python.c deleted file mode 100644 index d282aae95..000000000 --- a/SWIG/Tools/WAD/Python/python.c +++ /dev/null @@ -1,221 +0,0 @@ -/* ----------------------------------------------------------------------------- - * python.c - * - * Dynamically loadable python module for wad. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "Python.h" -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* These are the python exception objects we will add - SegFault, BusError, AbortError */ - -static PyObject *segfault_exc = 0; -static PyObject *buserror_exc = 0; -static PyObject *abort_exc = 0; -static PyObject *illegal_exc = 0; - -extern PyObject *new_wadobject(WadFrame *f,int); - -/* Function return points and values */ - -static WadReturnFunc retpts[] = { - {"call_builtin", 0}, - {"_PyImport_LoadDynamicModule", 0}, - {"PyEval_EvalCode", 0}, - {"PyObject_GetAttrString", 0}, - {"PyObject_SetAttrString", -1}, - {"PyObject_Repr", 0}, - {"PyObject_Print", -1}, - {"PyObject_CallFunction", 0}, - {"PyObject_CallMethod", 0}, - {"PyObject_CallObject", 0}, - {"PyObject_Cmp", -1}, - {"PyObject_Compare", -1}, - {"PyObject_DelAttrString",-1}, - {"PyObject_DelItem",-1}, - {"PyObject_GetItem",0}, - {"PyObject_SetItem",-1}, - {"PyObject_HasAttrString",-1}, - {"PyObject_Hash",-1}, - {"PyObject_Length",-1}, - {"PyObject_Str",0}, - {"PyObject_Type", 0}, - - {"PyNumber_Absolute", 0}, - {"PyNumber_Add",0}, - {"PyNumber_And",0}, - {"PyNumber_Coerce",0}, - {"PyNumber_Divide",0}, - {"PyNumber_Divmod",0}, - {"PyNumber_Float",0}, - {"PyNumber_Int",0}, - {"PyNumber_Invert",0}, - {"PyNumber_Long",0}, - {"PyNumber_Lshift",0}, - {"PyNumber_Multiply", 0}, - {"PyNumber_Negative", 0}, - {"PyNumber_Or",0}, - {"PyNumber_Positive", 0}, - {"PyNumber_Power",0}, - {"PyNumber_Remainder",0}, - {"PyNumber_Rshift",0}, - {"PyNumber_Subtract",0}, - {"PyNumber_Xor",0}, - - {"PySequence_Concat",0}, - {"PySequence_Count",-1}, - {"PySequence_Delitem",-1}, - {"PySequence_DelSlice",-1}, - {"PySequence_Getitem",0}, - {"PySequence_GetSlice",0}, - {"PySequence_In",-1}, - {"PySequence_Index",-1}, - {"PySequence_Repeat",0}, - {"PySequence_SetItem",-1}, - {"PySequence_SetSlice",-1}, - {"PySequence_Tuple",0}, - - {"PyMapping_Clear",-1}, - {"PyMapping_DelItem",-1}, - {"PyMapping_DelItemString",-1}, - {"PyMapping_GetItemString",0}, - {"PyMapping_HasKey",-1}, - {"PyMapping_HasKeyString",-1}, - {"PyMapping_Items",0}, - {"PyMapping_Keys",0}, - {"PyMapping_Length", -1}, - {"PyMapping_SetItemString", -1}, - {"PyMapping_Values", 0}, - {"",0}}; - -/* Handler function */ -static void handler(int signo, WadFrame *frame, char *ret) { - static char message[65536]; - static char temp[1024]; - int len = 0; - PyObject *type; - char *name; - WadFrame *f; - WadFrame *fline = 0; - char *srcstr = 0; - - /* printf("python handler.\n"); */ - if (!ret) { - wad_default_callback(signo, frame, ret); - return; - } - - strcpy(message,"[ C stack trace ]\n\n"); - switch(signo) { - case SIGSEGV: - type = segfault_exc; - break; - case SIGBUS: - type = buserror_exc; - break; - case SIGABRT: - type = abort_exc; - break; - case SIGFPE: - type = PyExc_FloatingPointError; - break; - case SIGILL: - type = illegal_exc; - break; - default: - type = PyExc_RuntimeError; - break; - } - -#ifdef OLD - f = frame; - /* Find the last exception frame */ - while (!f->last) { - f= f->next; - } - /* Now work backwards */ - f = f->prev; - while (f) { - strcat(message, f->debug_str); - if (f->debug_srcstr) srcstr = f->debug_srcstr; - f = f->prev; - } - if (srcstr) { - strcat(message,"\n"); - strcat(message, srcstr); - strcat(message,"\n"); - } -#endif - - if (wad_heap_overflow) { - write(2, "WAD: Heap overflow detected.\n", 30); - wad_default_callback(signo, frame, ret); - } - - /* Note: if the heap is blown, there is a very good chance that this - function will not succeed and we'll dump core. However, the check - above should dump a stack trace to stderr just in case we don't make it - back. */ - -#ifdef OLD - PyErr_SetString(type, message); -#endif - PyErr_SetObject(type, new_wadobject(frame,0)); - -} - -void pywadinit() { - PyObject *d, *m; - m = PyImport_ImportModule((char *)"__builtin__"); - d = PyModule_GetDict(m); - printf("WAD Enabled\n"); - - segfault_exc = PyErr_NewException((char *)"exceptions.SegFault", NULL, NULL); - PyDict_SetItemString(d,(char *)"SegFault",segfault_exc); - - buserror_exc = PyErr_NewException((char *)"exceptions.BusError", NULL, NULL); - PyDict_SetItemString(d,(char *)"BusError",buserror_exc); - - abort_exc = PyErr_NewException((char*)"exceptions.AbortError", NULL, NULL); - PyDict_SetItemString(d,(char *)"AbortError",abort_exc); - - illegal_exc = PyErr_NewException((char *)"exceptions.IllegalInstruction", NULL, NULL); - PyDict_SetItemString(d,(char *)"IllegalInstruction",illegal_exc); - - wad_init(); - wad_set_callback(handler); - wad_set_returns(retpts); -} - -static PyMethodDef wadmethods[] = { - {0,0}, -}; - -void initlibwadpy() { - Py_InitModule((char *)"libwadpy",wadmethods); -} - - diff --git a/SWIG/Tools/WAD/Python/type.c b/SWIG/Tools/WAD/Python/type.c deleted file mode 100644 index 71eadd8db..000000000 --- a/SWIG/Tools/WAD/Python/type.c +++ /dev/null @@ -1,277 +0,0 @@ -/* ----------------------------------------------------------------------------- - * type.c - * - * This file defines a new python type that contains information from - * the WAD stack trace. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - - -#include "wad.h" -#include "Python.h" - -static char cvs[] = "$Header$"; - -typedef struct { - PyObject_HEAD - WadFrame *frame; /* Wad Stack frame object */ - int count; /* Number of frames */ -} wadobject; - -staticforward PyTypeObject WadObjectType; - - -PyObject * -new_wadobject(WadFrame *f, int count) { - wadobject *self; - self = PyObject_NEW(wadobject, &WadObjectType); - if (self == NULL) return NULL; - - self->frame = f; - if (count > 0) { - self->count = count; - } else { - self->count = 0; - while (f) { - self->count++; - f = f->next; - } - } - return (PyObject *) self; -} - -/* release a wad object */ -static void -wadobject_dealloc(wadobject *self) { - PyMem_DEL(self); -} - -static char message[65536]; -static PyObject * -wadobject_repr(wadobject *self) { - char *srcstr = 0; - WadFrame *fp = 0; - int n; - WadFrame *f = self->frame; - - message[0] = 0; - /* Find the last exception frame */ - n = self->count; - while (f && n) { - fp = f; - f= f->next; - n--; - } - - if (fp) { - /* Now work backwards */ - f = fp; - while (f) { - strcat(message, f->debug_str); - if (f->debug_srcstr) srcstr = f->debug_srcstr; - if (f == self->frame) break; - f = f->prev; - } - if (srcstr) { - strcat(message,"\n"); - strcat(message, srcstr); - strcat(message,"\n"); - } - } - return PyString_FromString(message); -} - -static PyObject * -wadobject_str(wadobject *self) { - char *srcstr = 0; - int n; - - WadFrame *f = self->frame; - n = self->count; - strcpy(message,"[ C stack trace ]\n\n"); - /* Find the last exception frame */ - while (!f->last && n) { - f= f->next; - n--; - } - /* Now work backwards */ - if (n <= 0) { - f = f->prev; - } - while (f) { - strcat(message, f->debug_str); - if (f->debug_srcstr) srcstr = f->debug_srcstr; - if (self->frame == f) break; - f = f->prev; - } - if (srcstr) { - strcat(message,"\n"); - strcat(message, srcstr); - strcat(message,"\n"); - } - return PyString_FromString(message); -} - -static int -wadobject_len(wadobject *self) { - int n = 0; - WadFrame *f = self->frame; - while (f) { - n++; - f = f->next; - } - return n; -} - -static PyObject * -wadobject_getitem(wadobject *self, int n) { - int i; - WadFrame *f; - if (n < 0) { - n = self->count + n; - } - if ((n < 0) || (n >= self->count)) { - PyErr_SetString(PyExc_IndexError,"Stack frame out of range"); - return NULL; - } - f = self->frame; - for (i = 0; i <n; i++) { - f = f->next; - } - return new_wadobject(f,1); -} - -static PyObject * -wadobject_getslice(wadobject *self, int start, int end) { - int i; - WadFrame *f; - - f = self->frame; - for (i = 0; i < start; i++) { - f = f->next; - } - return new_wadobject(f,(end-start)); -} - -static PyObject * -wadobject_getattr(wadobject *self, char *name) { - if (strcmp(name,"__NAME__") == 0) { - return Py_BuildValue("z", self->frame->sym_name); - } else if (strcmp(name,"__EXE__") == 0) { - return Py_BuildValue("z", self->frame->object->path); - } else if (strcmp(name,"__FILE__") == 0) { - return Py_BuildValue("z", self->frame->loc_srcfile); - } else if (strcmp(name,"__OBJECT__") == 0) { - return Py_BuildValue("z", self->frame->loc_objfile); - } else if (strcmp(name,"__LINE__") == 0) { - return Py_BuildValue("i", self->frame->loc_line); - } else if (strcmp(name,"__SOURCE__") == 0) { - return Py_BuildValue("z",self->frame->debug_srcstr); - } else if (strcmp(name,"__PC__") == 0) { - return PyLong_FromUnsignedLong(self->frame->pc); - } else if (strcmp(name,"__SP__") == 0) { - return PyLong_FromUnsignedLong(self->frame->sp); - } else if (strcmp(name,"__FP__") == 0) { - return PyLong_FromUnsignedLong(self->frame->fp); - } else if (strcmp(name,"__STACK__") == 0) { - return PyString_FromStringAndSize(self->frame->stack, self->frame->stack_size); - } else if (strcmp(name,"__NARGS__") == 0) { - return PyInt_FromLong(self->frame->debug_nargs); - } else if (strcmp(name,"__LAST__") == 0) { - return PyInt_FromLong(self->frame->last); - } else if (strcmp(name,"__WHERE__") == 0) { - return Py_BuildValue("z",self->frame->debug_str); - } else if (strcmp(name,"__WAD__") == 0) { - return PyInt_FromLong(1); - } - - - /* Put a check for local variables */ - { - int i; - for (i = 0; i < 2; i++) { - WadLocal *loc; - if (i == 0) loc = self->frame->debug_locals; - else loc = self->frame->debug_args; - while (loc) { - if (strcmp(name,loc->name) == 0) { - switch(loc->type) { - case WAD_TYPE_INT32: - case WAD_TYPE_INT16: - case WAD_TYPE_INT8: - return PyLong_FromLong(wad_local_as_long(loc)); - break; - case WAD_TYPE_UINT8: - case WAD_TYPE_UINT16: - case WAD_TYPE_UINT32: - return PyLong_FromUnsignedLong((unsigned long) wad_local_as_long(loc)); - break; - case WAD_TYPE_CHAR: - return Py_BuildValue("c", (char) (PyLong_FromLong(wad_local_as_long(loc)))); - break; - case WAD_TYPE_FLOAT: - case WAD_TYPE_DOUBLE: - return PyFloat_FromDouble(wad_local_as_double(loc)); - break; - default: - return PyLong_FromUnsignedLong((unsigned long) wad_local_as_long(loc)); - } - } - loc = loc->next; - } - } - } - - PyErr_SetString(PyExc_NameError,"Unknown attribute."); - return NULL; -} -static PySequenceMethods wadobject_as_sequence = { - (inquiry) wadobject_len, - 0, - 0, - (intargfunc) wadobject_getitem, /* get item */ - (intintargfunc) wadobject_getslice, /* get slice */ - 0, - 0 -}; - -static PyTypeObject WadObjectType = { - PyObject_HEAD_INIT(&PyType_Type) - 0, - "WadObject", - sizeof(wadobject), - 0, - (destructor) wadobject_dealloc, - 0, /* printfunc */ - (getattrfunc) wadobject_getattr, - (setattrfunc) 0, - (cmpfunc) 0, - (reprfunc) wadobject_repr, - - 0, /* number */ - &wadobject_as_sequence, /* sequence */ - 0, /* mapping */ - 0, /* hash */ - 0, /* call */ - (reprfunc) wadobject_str, /* str */ -}; - diff --git a/SWIG/Tools/WAD/Python/wadpyinit.cxx b/SWIG/Tools/WAD/Python/wadpyinit.cxx deleted file mode 100644 index 0bfa387da..000000000 --- a/SWIG/Tools/WAD/Python/wadpyinit.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* ----------------------------------------------------------------------------- - * wadpyinit.cxx - * - * C++ automatic initializer for Python module. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -extern "C" void pywadinit(); - -/* This hack is used to auto-initialize wad regardless of whether we are - used as an imported module or as a link-library for another module */ - -class wadinitializer { -public: - wadinitializer() { - pywadinit(); - } -}; - -static wadinitializer wi; - - diff --git a/SWIG/Tools/WAD/README b/SWIG/Tools/WAD/README deleted file mode 100644 index 282d0bcf5..000000000 --- a/SWIG/Tools/WAD/README +++ /dev/null @@ -1,373 +0,0 @@ -WAD (Wrapped Application Debugger) - -Author(s): - David M. Beazley (beazley@cs.uchicago.edu) - -Copyright (C) 2001 -University of Chicago - -This 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. - -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 -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser 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 - -See the file COPYING for a complete copy of the LGPL. - -$Header$ - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!! DISCLAIMER !!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -THIS IS EXPERIMENTAL UNMAINTAINED RESEARCH SOFTWARE THAT REPRESENTS -WORK IN PROGRESS. IT IS NOT PORTABLE, IT HAS NOT BEEN EXHAUSTIVELY -TESTED, AND IT MIGHT NOT WORK AT ALL. PLEASE KEEP AWAY FROM SMALL -CHILDREN, PETS, NUCLEAR REACTORS, AIR-TRAFFIC CONTROL, AND VOTING -MACHINES. - -0. Supported Platforms - -This software is currently only known to work with 32-bit applications -on Sun Sparc Solaris 2.8 and recent i386-Linux systems. In addition, -there are numerous issues concerning the interaction of this software -with signal handling, thread libraries, and compilers. Please read -this entire document before proceeding. - -1. Introduction - -WAD is an embedded error-recovery mechanism that attempts to convert -fatal errors such as SIGSEGV, SIGBUS, and SIGFPE into sensible error -messages and exceptions. It is primarily designed to support -scripting language extension programming although it can also be used -with stand-alone C programs. - -The primary goal of this system is to explore an alternative approach -to mixed scripting-compiled debugging. It requires no modifications -or recompilation of existing software. Therefore, it should be -relatively easy to try out. Feedback is welcome. Contributions and -modifications are even more welcome. - -2. Compilation and Installation - -WAD is not particularly portable and at this time, only two platforms -are supported: Sun Sparc Solaris and i386-Linux. - -Installation is as follows: - - ./configure - make - make install - -The build process creates the following shared libraries: - - libwad.so - Standalone WAD. Can be linked with C/C++ - programs. - - libwadpy.so - Python WAD. Can be linked to Python extension - modules or imported on its own as 'import libwadpy' - - libwadtcl.so - Tcl WAD. Can be linked to Tcl extension - modules or loaded as 'load libwadtcl.so'. - - libwadpl.so - Perl WAD. Can be linked to Perl extension - modules or loaded as 'libwadpl'. - -To install the libraries, simply type 'make install'. This copies the libraries -to /usr/local/lib (unless you modify the makefile). - -Notes: - - - The Sun version of WAD has only been tested when compiled with the - Sun Workshop C/C++ compilers. However WAD works with other programs - that have been compiled with gcc. If gcc is installed on your - machine, you may want to set the following environment variables - before running configure: - - setenv CC cc - setenv CXX CC - ./configure - - - You may need to modify the Makefile to point to the installed locations - of various scripting language libraries if you have installed - them in non-traditional locations. - - - The Linux version has only been tested with 2.2-12 and 2.2-14 kernels - and the RedHat 6.x distribution. Your mileage may vary. There - may be some compatibility issues related to glibc and other parts - of the system as well. - -3. Using WAD - -WAD has no functional API nor does it have any command line options so -it's pretty easy to describe---simply link the appropriate WAD library with -your C code. For example: - - % cc blah.c -lwad - -Once linked, fatal errors will now produce stack traces. For example: - -% ./a.out seg -starting. -Segmentation fault. -#2 0x400571eb in __libc_start_main() in 'libc-start.c', line 90 -#1 0x08048b39 in main(argc=0x2,argv=0xbffffce4) in 'debug.c', line 62 -#0 0x080489b3 in seg_crash(n=0x0) in 'debug.c', line 9 - -/r0/beazley/Projects/WAD/Wad/debug.c, line 9 - - int *a = 0; - if (n > 0) seg_crash(n-1); - => *a = 3; - return 1; - } - -For scripting languages, WAD works in a similar manner--simply link -your scripting language extension module with the appropriate WAD library -(wadpy, wadtcl, wadpl). For example: - - % ld -G $(OBJS) -lwadpy -o pymodule.so - -When the scripting module is loaded into the interpreter, WAD should -automatically initialize. - -4. Debugging Modes - -Due to WAD's experimental nature, a number of debugging modes can be set -through the use of environment variables. These variables control WAD's -runtime behavior and cause the system to dump debugging information for -various stages of error recovery. A lot of this data is pretty ugly and -probably only of interest to you if you are trying to debug WAD itself. - -WAD_DEBUG_SEGMENT - Displays information about the virtual memory - map and mapping of addresses to segments. - -WAD_DEBUG_SYMBOL - Symbol table mapping. - -WAD_DEBUG_OBJECT - Loading/Unloading of object files. - -WAD_DEBUG_FILE - Loading/Unloading of raw files. - -WAD_DEBUG_HOLD - Freezes WAD before it returns from the signal handler. - Useful if you need to attach a debugger to WAD itself. - -WAD_DEBUG_STABS - Display stabs data. - -WAD_DEBUG_RETURN - Display information about WAD return points. - -WAD_DEBUG_SYMBOL_SEARCH - Display all symbols in the symbol table that are - searched. - -WAD_DEBUG_UNWIND - Display information about stack unwinding. - -WAD_DEBUG_SIGNAL - Display information about signal handling. - -WAD_DEBUG_INIT - Print initialization information. - -WAD_NOSTACK - Do NOT use an alternative signal handling stack. - This may be necessary on certain Linux systems when - threads are being used. - -WAD_ONESHOT - Disable WAD signal handler after first signal has - been received. - -WAD_DEBUG_MEMORY - Print information about WAD memory use. - -WAD_DEBUG_STRINGS - Print information about WAD string manager. - -5. Platform Specific Issues - -General: - - - WAD does not gracefully recover from errors that corrupt the call - stack (i.e., buffer overlow). - - - Errors that destroy the process heap may or may not be recoverable - depending on what has been destroyed. - - - WAD does not currently support 64 bit applications on any platform. - - - If executables have been stripped, their symbol tables might not - have enough information to recover from errors. Therefore, if you - are using Python, Tcl, or Perl from a binary distribution, you - may want to rebuild non-stripped versions of these packages yourself. - - - WAD only works with programs that utilize the ELF32 linking format - and stabs debugging data. Newer formats such as DWARF2 are not - supported at this time. - - - WAD does not correctly report argument values for structures or - floating point numbers yet. - - - Overly aggressive compiler optimization may lead to very strange - WAD output. - -Solaris: - - - WAD is extremely slow at collecting debugging information - from large applications. - -Linux: - - - The interaction of threads and signals are particularly problematic - on this platform and may cause WAD not to work at all. Here are - some specific thread-based issues that may arise: - - 1. WAD causes the program to crash immediately upon startup. - This appears to be caused by a bug in in the implementation - of sigaction() and the initialization of signals. This - only occurs if WAD is directly linked to an executable - using threads. It does not occur when WAD is dynamically - loaded into a threaded application. - - 2. Programs may lock up when an error occurs. This is sometimes - caused by an apparently broken implementation of sigaltstack(). - One solution to this is to set the following environment - variable: - - setenv WAD_NOSTACK - - in which case the WAD signal handler will use the same - stack as the thread/process that generates the error. - - 3. WAD just crashes altogether and doesn't seem to do anything. - It appears that some versions of Linux threads do *not* - pass CPU context information correctly to signal handlers - defined in threaded programs. There is no known fix to - this at this time. Upgrade your system. - - - WAD does not work if it is compiled as PIC code. The WAD libraries - should be compiled *without* the -fpic option. - - - WAD has to rely upon a heuristic register recovery scheme when it - returns to scripting language interpreters. It seems to - work, but it relies upon a very specific compiler code generation - convention for saving registers in function prologues. It also - relies upon the register save conventions described in the Linux - Assembly HOWTO. - - - If you are using WAD with pre-installed binaries for Python, Tcl, - and other scripting languages, it may not work correctly due to - stripped symbol tables. Most Linux installs such as Redhat strip - symbol tables from executables. This makes it difficult for WAD - to determine context correctly (although it may still work since - the dynamic loading symbol table is still available in most cases). - -6. Language specific issues - -If WAD is linked with a normal C/C++ program, errors simply produce a stack trace -that is printed on standard error. - -Python: - -WAD tries to raise a Python exception and return. At this time, the exception -merely contains a traceback string. However, in future versions, it may be -possible to access a complete exception object. - -Tcl: - -WAD returns a Tcl and places the stack trace into the Tcl variable $errorInfo. -The wish shell uses this to dump error information. - -Perl: - -Perl doesn't seem to have a very well-defined exception handling -mechanism. Standard functions tend to just exit. The WAD handler -produces a C stack trace and produces a Perl stack trace using some -code derived from the sigtrap module. - -Note: 3/23/01 - Perl support is currently broken. - -7. Testing and Examples - -The Test directory contains some very simple code for testing WAD. In the -most simple form, compile the stand-along test program 'debug' as follows: - -% cd Test -% make - -Now, running it: - -% debug -WAD debug program. - -Usage: debug type - seg - Fail with an uninitialized pointer. - bus - Fail with a bus error. - abort - Fail with an assertion error. - math - Fail with a math error. - heap - Blow the process heap. - overflow - Buffer overflow on the stack. - -% debug seg -WAD debug program. -Segmentation fault. -#2 0x400581eb in __libc_start_main() in 'libc-start.c', line 90 -#1 0x08048b61 in main(argc=0x2,argv=0xbffffc54) in 'debug.c', line 85 -#0 0x080489d0 in seg_crash() in 'debug.c', line 15 - -/r0/beazley/Projects/WAD/Test/debug.c, line 15 - - int seg_crash() { - int *a = 0; - => *a = 3; - return 1; - } - -Additional targets 'make python', 'make tcl', and 'make perl' are also available. -The scripts debug.py, debug.tcl, debug.pl can be used to test these extensions. - -8. Documentation - -No official documentation exists at this time. However, the Papers -directory contains two conference papers that describe WAD's design -and high-level operation. Slides from the Python9 talk are also -included. - -9. To-Do - -If you find WAD to be interesting or useful, there are a variety of -ways to contribute. Here is the short to-do list: - - - Better register management. Try to implement in a more portable - way. Add some support code for recovering local variables - that happen to be stored in registers. - - - Add heuristic for recovering functions called through an - -fomit-frame-pointer compiler optimization scheme. This - can probably be determined by looking at the function preamble - machine code. Then one can back-trace to the calling function - and look at it's preamble. - - - Continued clean up and modularization of the core. Many of the - internal APIs could be greatly improved. - - - Support for ELF64 linking format. - - - Support for DWARF2 debugging data. - - - Improved support for stack-overflow and heap-corruption. Although WAD - probably won't be able to recover, it still might be able to produce some - informative diagnostics. - - - Removal of printf() and other high-level library calls which may not - operate with a corrupted heap. - - - Better integration with scripting languages. - - - Support for new platforms. - - - Support for new scripting languages. - -Please contact me if you are interested in working on any of these projects. - -Dave Beazley (beazley@cs.uchicago.edu) -June 24, 2001 diff --git a/SWIG/Tools/WAD/Tcl/Makefile.in b/SWIG/Tools/WAD/Tcl/Makefile.in deleted file mode 100644 index b734a8c5f..000000000 --- a/SWIG/Tools/WAD/Tcl/Makefile.in +++ /dev/null @@ -1,54 +0,0 @@ -####################################################################### -# WAD Makefile -# -# David Beazley -# January 1, 2001 -####################################################################### - -# These are the files that make up the WAD core -SRCS = wadtcl.c -OBJS = wadtcl.o -INCLUDE = -I../Include -I. $(SINCLUDE) -WADOPT = @WADOPT@ - -# Location of your Tcl installation -TCLINCLUDE = @TCLINCLUDE@ -TCLSRCS = wadtclinit.cxx -TCLOBJS = wadtclinit.o - -# C Compiler -CC = @CC@ -CFLAGS = #@CCSHARED@ - -# C++ Compiler -CXX = @CXX@ -CXXFLAGS = #@CXXSHARED@ - -# Linking options -CLINK = -CXXLINK = @CXXLINK@ - -# Rules for creation of a .o file from .cxx -.SUFFIXES: .cxx -.cxx.o: - $(CXX) $(CXXFLAGS) $(WADOPT) $(INCLUDE) -c -o $*.o $< - -.c.o: - $(CC) $(CFLAGS) $(TCLINCLUDE) $(WADOPT) $(INCLUDE) -c -o $*.o $< - -tcl: $(OBJS) $(TCLOBJS) - $(CXXLINK) $(OBJS) $(TCLOBJS) -o libwadtcl.so -L.. -lwadcore - cp libwadtcl.so .. - -wc:: - wc $(SRCS) - -semi:: - @egrep ";" $(SRCS) $(TCLSRCS) | wc - -clean:: - rm -f *.o *.so *~ - - - - diff --git a/SWIG/Tools/WAD/Tcl/wadtcl.c b/SWIG/Tools/WAD/Tcl/wadtcl.c deleted file mode 100644 index 95a6ca91f..000000000 --- a/SWIG/Tools/WAD/Tcl/wadtcl.c +++ /dev/null @@ -1,122 +0,0 @@ -/* ----------------------------------------------------------------------------- - * wadtcl.c - * - * Dynamically loadable Tcl module for wad. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include <tcl.h> -#include "wad.h" -#include <signal.h> - -static char cvs[] = "$Header$"; - -/* Handler function */ -static void handler(int signo, WadFrame *frame, char *ret) { - static char message[65536]; - static char temp[1024]; - int len = 0; - char *name; - WadFrame *f; - WadFrame *fline = 0; - char *srcstr= 0; - Tcl_Interp *interp; - int err; - char *type; - - if (!ret) { - wad_default_callback(signo, frame, ret); - return; - } - - strcpy(message,"[ C stack trace ]\n\n"); - switch(signo) { - case SIGSEGV: - type = (char*)"Segmentation fault."; - break; - case SIGBUS: - type = (char*)"Bus error."; - break; - case SIGABRT: - type = (char*)"Abort."; - break; - case SIGFPE: - type = (char*)"Floating point exception."; - break; - default: - type = (char*)"Unknown."; - break; - } - - f = frame; - /* Find the last exception frame */ - while (!f->last) { - f= f->next; - } - /* Now work backwards */ - f = f->prev; - while (f) { - strcat(message, f->debug_str); - if (f->debug_srcstr) srcstr = f->debug_srcstr; - f = f->prev; - } - if (srcstr) { - strcat(message,"\n"); - strcat(message, srcstr); - strcat(message,"\n"); - } - - if (wad_heap_overflow) { - write(2, "WAD: Heap overflow detected.\n", 30); - wad_default_callback(signo, frame, ret); - } - - /* Note: if the heap is blown, there is a very good chance that this - function will not succeed and we'll dump core. However, the check - above should dump a stack trace to stderr just in case we don't make it - back. */ - - /* Try to get the Tcl interpreter through magic */ - if (ret) { - interp = (Tcl_Interp *) wad_steal_outarg(frame,ret,1,&err); - if (err == 0) { - Tcl_SetResult(interp,type,TCL_STATIC); - Tcl_AddErrorInfo(interp,message); - } - } -} - -void tclwadinit() { - printf("WAD Enabled\n"); - wad_init(); - wad_set_callback(handler); - wad_set_return("TclExecuteByteCode", TCL_ERROR); - wad_set_return("EvalObjv", TCL_ERROR); -} - -int Wad_Init(Tcl_Interp *interp) { - return TCL_OK; -} - -int Wadtcl_Init(Tcl_Interp *interp) { - return TCL_OK; -} diff --git a/SWIG/Tools/WAD/Tcl/wadtclinit.cxx b/SWIG/Tools/WAD/Tcl/wadtclinit.cxx deleted file mode 100644 index cdbada749..000000000 --- a/SWIG/Tools/WAD/Tcl/wadtclinit.cxx +++ /dev/null @@ -1,38 +0,0 @@ -/* ----------------------------------------------------------------------------- - * wadtclinit.cxx - * - * C++ initializer for Tcl wad. - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ -static char cvs[] = "$Header$"; - -extern "C" void tclwadinit(); - -/* This hack is used to auto-initialize wad regardless of whether we are - used as an imported module or as a link-library for another module */ - -class wadinitializer { -public: - wadinitializer() { - tclwadinit(); - } -}; - -static wadinitializer wi; diff --git a/SWIG/Tools/WAD/Test/Makefile.in b/SWIG/Tools/WAD/Test/Makefile.in deleted file mode 100644 index c6e808275..000000000 --- a/SWIG/Tools/WAD/Test/Makefile.in +++ /dev/null @@ -1,44 +0,0 @@ -####################################################################### -# WAD Test makefile -# -# Build some WAD test programs. -####################################################################### - -CC= @CC@ -CCSHARED = @CCSHARED@ -LDSHARED = @LDSHARED@ -RPATH = @RPATH@ - -PYINCLUDE = @PYINCLUDE@ -TCLINCLUDE = @TCLINCLUDE@ -PERLINCLUDE = @PERL5EXT@ -INCLUDE = -I../Include -WADLIB = .. -WADLINK = -L$(WADLIB) $(RPATH)$(WADLIB) - -test: - $(CC) -g -DNEED_MAIN debug.c $(INCLUDE) $(WADLINK) -lwad -o debug - -python: pydebug.c - $(CC) $(CCSHARED) -c -g debug.c pydebug.c $(PYINCLUDE) - $(LDSHARED) debug.o pydebug.o $(WADLINK) -lwadpy -o debugmodule.so - -tcl: tcldebug.c - $(CC) $(CCSHARED) -c -g debug.c tcldebug.c $(TCLINCLUDE) - $(LDSHARED) debug.o tcldebug.o $(WADLINK) -lwadtcl -o debug.so - -perl: pldebug.c - $(CC) $(CCSHARED) -c -Dbool=char -g debug.c pldebug.c $(PERLINCLUDE) - $(LDSHARED) debug.o pldebug.o $(WADLINK) -lwadpl -o debug.so - -pydebug.c: - swig -python -o pydebug.c debug.i - -tcldebug.c: - swig -tcl -o tcldebug.c debug.i - -pldebug.c: - swig -perl5 -o pldebug.c debug.i - -clean: - rm -f *.so *.o debug *_wrap* diff --git a/SWIG/Tools/WAD/Test/README b/SWIG/Tools/WAD/Test/README deleted file mode 100644 index 6a04a7e8a..000000000 --- a/SWIG/Tools/WAD/Test/README +++ /dev/null @@ -1,5 +0,0 @@ -Simple test programs for WAD. This is currently incomplete. - -Note: To completely rebuild the Python, Perl, and Tcl tests, -you need to have SWIG installed (www.swig.org). - diff --git a/SWIG/Tools/WAD/Test/death.py b/SWIG/Tools/WAD/Test/death.py deleted file mode 100644 index ba1de20a3..000000000 --- a/SWIG/Tools/WAD/Test/death.py +++ /dev/null @@ -1,65 +0,0 @@ -import debug -from Tkinter import * - -def death_by_segmentation(): - debug.seg_crash() - -def death_by_bus(): - debug.bus_crash() - -def death_by_abort(): - debug.abort_crash(-1) - -def death_by_math(): - debug.math_crash(37,0) - -def death_by_buffer(): - debug.overflow_crash() - -def death(f): - ty = f.tvar.get() - if ty == 1: - death_by_segmentation() - elif ty == 2: - death_by_abort() - elif ty == 3: - death_by_math() - elif ty == 4: - death_by_bus() - elif ty == 5: - death_by_buffer() - -class death_options(Frame): - def __init__(self): - Frame.__init__(self) - tvar = IntVar() - Radiobutton(self,text="Segmentation fault", variable=tvar, value=1).pack(anchor=W) - Radiobutton(self,text="Failed assertion", variable=tvar, value=2).pack(anchor=W) - Radiobutton(self,text="Math error", variable=tvar, value=3).pack(anchor=W) - Radiobutton(self,text="Bus error", variable=tvar, value=4).pack(anchor=W) - Radiobutton(self,text="Stack overflow", variable=tvar, value=5).pack(anchor=W) - Button(self,text="Die", command=lambda x=self: death(x)).pack(expand=1, fill=BOTH) - self.tvar = tvar - tvar.set(1) - -def death_wizard(): - root = Tk() - l = Label(text="How would you like to die today?") - l.pack() - death_options().pack() - root.title("Death Wizard") -death_wizard() - -#root.mainloop() - - - - - - - - - - - - diff --git a/SWIG/Tools/WAD/Test/death.tcl b/SWIG/Tools/WAD/Test/death.tcl deleted file mode 100644 index e43feb2c6..000000000 --- a/SWIG/Tools/WAD/Test/death.tcl +++ /dev/null @@ -1,65 +0,0 @@ -load ./debug.so - -proc death_by_segmentation { } { - seg_crash -} - -proc death_by_bus { } { - bus_crash -} - -proc death_by_abort { } { - abort_crash -1 -} - -proc death_by_math { } { - math_crash 37 0 -} - -proc death_by_buffer { } { - overflow_crash -} - -set method 1 -proc death {} { - global method - if { $method == 1 } { - death_by_segmentation - } - if { $method == 2 } { - death_by_abort - } - if { $method == 3 } { - death_by_math - } - if { $method == 4 } { - death_by_bus - } - if { $method == 5 } { - death_by_buffer - } -} - -label .l -text "How would you like to die today?" -pack .l - -radiobutton .r1 -text "Segmentation fault" -variable method -value 1 -pack .r1 -anchor w - -radiobutton .r2 -text "Failed assertion" -variable method -value 2 -pack .r2 -anchor w - -radiobutton .r3 -text "Math error" -variable method -value 3 -pack .r3 -anchor w - -radiobutton .r4 -text "Bus error" -variable method -value 4 -pack .r4 -anchor w - -radiobutton .r5 -text "Stack overflow" -variable method -value 5 -pack .r5 -anchor w - -button .b -text "Die" -command death -pack .b -fill both -expand 1 - -wm title . "Death Wizard" - diff --git a/SWIG/Tools/WAD/Test/debug.c b/SWIG/Tools/WAD/Test/debug.c deleted file mode 100644 index b95b539f0..000000000 --- a/SWIG/Tools/WAD/Test/debug.c +++ /dev/null @@ -1,119 +0,0 @@ -/* ----------------------------------------------------------------------------- - * debug.c - * - * This file contains a variety of different programming errors to test with - * WAD. - * ----------------------------------------------------------------------------- */ - -#include <stdio.h> -#include <string.h> -#include <assert.h> - -typedef double Real; -typedef Real Float; - -char buffer[256]; - -/* A simple segmentation fault on an uninitialized pointer */ -int seg_crash() { - int *a = 0; - *a = 3; - return 1; -} - -/* Blow the process heap */ - -int blowheap_crash() { - int i; - int *a = (int *) malloc(sizeof(int)); - - for (i = 0;; i++) { - a[i] = i; - } -} - -/* Buffer overflow crash on the stack */ -int overflow_crash() { - int a[512]; - int i; - - for (i = 0; i < 1024; i++) { - a[i] = i; - } -} - -/* A simple bus error. */ -int bus_crash() { - double *a = (double *) (buffer+1); - *a = 3.4; - return 1; -} - -/* An assertion */ -int abort_crash(int n) { - assert(n > 0); - return 1; -} - -/* A math error (maybe) */ -int math_crash(int x, int y) { - return x/y; -} - -void type_crash(int a, short b, char c, unsigned long d, float f, double g) { - int la; - short lb; - char lc; - long ld; - float lf; - double lg; - long ll; - - la = a; - lb = b; - lc = c; - ld = ld; - lf = lf; - lg = lg; - assert(0); -} - -#ifdef NEED_MAIN - -static const char *usage="\n\ -Usage: debug type\n\ - seg - Fail with an uninitialized pointer.\n\ - bus - Fail with a bus error.\n\ - abort - Fail with an assertion error.\n\ - math - Fail with a math error.\n\ - heap - Blow the process heap.\n\ - overflow - Buffer overflow on the stack.\n\ -"; - -int main(int argc, char **argv) { - int n; - - printf("WAD debug program.\n"); - - if (argc < 2) { - printf("%s\n", usage); - exit(0); - } - if (strcmp(argv[1],"abort") == 0) { - abort_crash(-4); - } else if (strcmp(argv[1],"seg") ==0) { - seg_crash(); - } else if (strcmp(argv[1],"bus") == 0) { - bus_crash(); - } else if (strcmp(argv[1],"math") == 0) { - math_crash(3,0); - } else if (strcmp(argv[1],"heap") == 0) { - blowheap_crash(); - } else if (strcmp(argv[1],"overflow") == 0) { - overflow_crash(); - } else if (strcmp(argv[1],"type") == 0) { - type_crash(0,2,'x',420000,3.14159,2.1828); - } -} - -#endif diff --git a/SWIG/Tools/WAD/Test/debug.i b/SWIG/Tools/WAD/Test/debug.i deleted file mode 100644 index 1823161fc..000000000 --- a/SWIG/Tools/WAD/Test/debug.i +++ /dev/null @@ -1,9 +0,0 @@ -%module debug - -extern int seg_crash(); -extern int bus_crash(); -extern int blowheap_crash(); -extern int overflow_crash(); -extern int abort_crash(int); -extern int math_crash(int x, int y); -extern void type_crash(int, short, char, unsigned long, float, double); diff --git a/SWIG/Tools/WAD/Test/debug.py b/SWIG/Tools/WAD/Test/debug.py deleted file mode 100644 index 07d9453a8..000000000 --- a/SWIG/Tools/WAD/Test/debug.py +++ /dev/null @@ -1,35 +0,0 @@ -# WAD debugging module for python - -import debug -import sys - -try: - name = sys.argv[1] -except: - print """ -usage: debug.py test - - seg - Segmentation fault due to uninitialized pointer. - bus - Bus error. - abort - Failed assertion. - math - Math error. - heap - Blown heap. - overflow - Buffer overflow. -""" - sys.exit(1) - -if name == "seg": - debug.seg_crash() -elif name == "bus": - debug.bus_crash() -elif name == "abort": - debug.abort_crash(-2) -elif name == "math": - debug.math_crash(3,0) -elif name == "heap": - debug.blowheap_crash() -elif name == "overflow": - debug.overflow_crash() -elif name == "type": - debug.type_crash(37,42, 'x', 420000, 3.14159, 2.1828) - diff --git a/SWIG/Tools/WAD/Test/debug.tcl b/SWIG/Tools/WAD/Test/debug.tcl deleted file mode 100644 index ae0dca676..000000000 --- a/SWIG/Tools/WAD/Test/debug.tcl +++ /dev/null @@ -1,25 +0,0 @@ -# WAD debugging module for Tcl. This should be executed with wish - -load ./debug.so - -message .t -text "This program tests various program faults. Note: Not all of these errors can be gracefully handled." - -button .b1 -text "Segmentation fault" -command "seg_crash" -button .b2 -text "Bus error (not on Linux)" -command "bus_crash" -button .b3 -text "Abort" -command "abort_crash -1" -button .b4 -text "Math" -command "math_crash 3 0" -button .b5 -text "Blow Heap" -command "blowheap_crash" -button .b6 -text "Buffer overflow" -command "overflow_crash" -button .q -text "Quit" -command "exit" - -pack .t -fill x - -pack .b1 -fill x -pack .b2 -fill x -pack .b3 -fill x -pack .b4 -fill x -pack .b5 -fill x -pack .b6 -fill x -pack .q -fill x - - diff --git a/SWIG/Tools/WAD/Test/foo.py b/SWIG/Tools/WAD/Test/foo.py deleted file mode 100644 index dee2e7d57..000000000 --- a/SWIG/Tools/WAD/Test/foo.py +++ /dev/null @@ -1,31 +0,0 @@ -import debug - -def foo(): - debug.abort_crash(-1) - -def bar(): - foo() - -def spam(): - bar() - -from Tkinter import * - -root = Tk() - -button = Button(text="Press me", command=spam) -button.pack() - -#root.mainloop() - - - - - - - - - - - - diff --git a/SWIG/Tools/WAD/Test/wadpm.py b/SWIG/Tools/WAD/Test/wadpm.py deleted file mode 100644 index 8a633129e..000000000 --- a/SWIG/Tools/WAD/Test/wadpm.py +++ /dev/null @@ -1,49 +0,0 @@ -# ----------------------------------------------------------------------------- -# Wad port-mortem debugger -# -# David Beazley -# ----------------------------------------------------------------------------- - -import sys - -_last_exc = None -_last_level = 0 - -print "WAD port-mortem" - -class where_impl: - def __repr__(self): - global _last_exc, _last_level - if sys.last_value: - if sys.last_value[0] != _last_exc: - _last_exc = sys.last_value[0] - _last_level = 0 - else: - raise RuntimeError,"No pending error." - print repr(_last_exc) - return "" - -where = where_impl() - -class up_impl: - def __repr__(self): - global _last_exc, _last_level - if not _last_exc: - return "" - _last_level += 1 - print repr(_last_exc[_last_level]) - return "" - -up = up_impl() - -class down_impl: - def __repr__(self): - global _last_exc, _last_level - if not _last_exc: - return "" - _last_level -= 1 - print repr(_last_exc[_last_level]) - return "" - -down = down_impl() - diff --git a/SWIG/Tools/WAD/Test/wpm.py b/SWIG/Tools/WAD/Test/wpm.py deleted file mode 100644 index f849e3167..000000000 --- a/SWIG/Tools/WAD/Test/wpm.py +++ /dev/null @@ -1,280 +0,0 @@ -# ----------------------------------------------------------------------------- -# WAD Post-mortem debugger -# -# This program can be used to walk up and down the call stack of a mixed -# Python-C program. The following commands are supported: -# -# w - A stack traceback -# u - Go up the call stack -# d - Go down the call stack -# e - Edit a file -# c - Clear the debugger. -# -# David Beazley -# Copyright (C) 2001 -# University of Chicago -# All Rights Reserved -# ----------------------------------------------------------------------------- - -import sys -import os -import traceback -import types -import linecache - - -print "**************************************************" -print "* WAD Debugger *" -print "**************************************************" - -# Save a local copy of the last exception and value objects from sys - -_last_type = sys.last_type -_last_value = sys.last_value -_last_traceback = sys.last_traceback -_last_level = 0 - -_cstack = None # Stack of C-only code -_pystack = None # Stack of Python only code -_combined_stack = None # Combined C-python stack - -_allmode = 0 # Show entire C stack - -# Generalized object for holding stack frames - -class wad_frame: - def __init__(self,frame, n = 0): - if isinstance(frame,types.TupleType): - # A Python traceback object - self.__FILE__ = frame[0] - self.__LINE__ = frame[1] - self.__NAME__ = frame[2] - self.__ARGSTR__ = frame[3] - self.__FRAMENO__ = n - # Make the debugging string - self.__DEBUGSTR__ = "#%-3d [ Python ] in %s in %s, line %d" % (self.__FRAMENO__, self.__ARGSTR__, self.__FILE__, self.__LINE__) - - # Try to get source data - self.__SOURCE__ = "%s, Line %d\n\n" % (self.__FILE__, self.__LINE__) - for i in range(self.__LINE__-2,self.__LINE__+3): - l = linecache.getline(self.__FILE__,i) - if not l: l = '\n' - if (i == self.__LINE__): - self.__SOURCE__ += " => " - else: - self.__SOURCE__ += " " - self.__SOURCE__ += l - self.__frame__ = None - - elif hasattr(frame,"__WAD__"): - # A WAD traceback object - self.__FILE__ = frame.__FILE__ - self.__LINE__ = frame.__LINE__ - self.__NAME__ = frame.__NAME__ - self.__DEBUGSTR__ = frame.__WHERE__ - self.__SOURCE__ = frame.__SOURCE__ - self.__frame__ = frame - - def __str__(self): - return self.__DEBUGSTR__.strip() - - def __getattr__(self,name): - if self.__frame__: - return getattr(self.__frame__,name) - raise AttributeError - - def output(self): - print self - if self.__SOURCE__: - print "\n%s" % (self.__SOURCE__) - - -def wad_build_info(): - global _last_type,_last_value, _last_traceback, _cstack, _combined_stack,_pystack - - _last_type = None - _last_value = None - _last_traceback = None - _cstack = None - _combined_stack = [] - - # Check to see if any exception is defined - if not sys.last_type: - print "No exception has occurred." - return - - # Save a copy of previous exception - _last_type = sys.last_type - _last_value = sys.last_value - _last_traceback = sys.last_traceback - _last_level = 0 - - start_frame = 0 - # Test to see what kind of object it is - if issubclass(_last_type,StandardError): - # Python exception - print "Python exception" - elif hasattr(_last_value[0],"__WAD__"): - # A wad exception frame object - w = sys.last_value[0] - i = 0 - _cstack = [] - while not w[i].__LAST__: - start_frame += 1 - wf = wad_frame(w[i]) - _cstack.append(wf) - i = i + 1 - -# wf = wad_frame(w[i]) -# _cstack.append(wf) -# start_frame += 1 - - # Build the rest of the c stack - _combined_stack = _cstack[:] - while i < len(w): - wf = wad_frame(w[i]) - _cstack.append(wf) - i = i + 1 - - else: - print "Unknown error" - - # Build the Python call stack - _pystack = [] - t = sys.last_traceback - tp = None - while hasattr(t,"tb_frame"): - tp = t - t = t.tb_next - - fr = traceback.extract_stack(tp.tb_frame) - for i in range(len(fr),0,-1): - f = wad_frame(fr[i-1], start_frame) - start_frame += 1 - _pystack.append(f) - _combined_stack.extend(_pystack) - - -wad_build_info() - -class where_impl: - def __init__(self): - self.all = 0; - self.cstack = 0 - - def __repr__(self): - global _combined_stack, _cstack, _last_level - if (self.cstack): - stack = _cstack - else: - stack = _combined_stack - - if not stack: - print "No current exception." - return "" - - last_source = None - for i in range(len(stack),0,-1): - f = stack[i-1] - print f - if (f.__SOURCE__): - last_source = f.__SOURCE__ - _last_level = i-1 - if last_source: print "\n%s" % last_source - return "" - - def __getitem__(self,n): - global _last_level, _cstack, _combined_stack - if (self.cstack): - stack = _cstack - else: - stack = _combined_stack - _last_level = n - stack[_last_level].output() - return None - - def __len__(self): - return len(frame) - - -where = where_impl() -w = where - -class up_impl: - def __repr__(self): - global _last_level, _combined_stack, _cstack - if where.cstack: - stack = _cstack - else: - stack = _combined_stack - - if not stack: - return "" - _last_level += 1 - stack[_last_level].output() - return "" - -up = up_impl() -u = up - -class down_impl: - def __repr__(self): - global _last_level, _combined_stack, _cstack - if where.cstack: - stack = _cstack - else: - stack = _combined_stack - - if not stack: - return "" - _last_level -= 1 - stack[_last_level].output() - return "" - -down = down_impl() -d = down - -class clear_impl: - def __repr__(self): - global _last_exc, _last_level, frame - _last_exc = None - frame = None - -clear = clear_impl() -c = clear - -class edit_impl: - def __repr__(self): - global _last_level, _combined_stack, _cstack - if where.cstack: - stack = _cstack - else: - stack = _combined_stack - - if not stack: - return "" - f = stack[_last_level] - e = os.getenv("EDITOR","vi") - if f.__FILE__: - os.system("%s +%d %s" % (e,f.__LINE__,f.__FILE__)) - return "" - -edit = edit_impl() -e = edit - -class var_impl: - def __getattr__(self,name): - if (w.cstack): - stack = _cstack - else: - stack = _combined_stack - - return getattr(stack[_last_level],name) - - -v = var_impl() - - -repr(w) - - diff --git a/SWIG/Tools/WAD/Wad/Makefile.in b/SWIG/Tools/WAD/Wad/Makefile.in deleted file mode 100644 index b933dfa23..000000000 --- a/SWIG/Tools/WAD/Wad/Makefile.in +++ /dev/null @@ -1,73 +0,0 @@ -####################################################################### -# WAD Makefile -# -# David Beazley -# January 1, 2001 -####################################################################### - -# These are the files that make up the WAD core -WADSRCS = string.c vars.c io.c memory.c return.c default.c stack.c stab.c elf.c object.c init.c segment.c signal.c -WADOBJS = string.o vars.o io.o memory.o return.o default.o stack.o stab.o elf.o object.o signal.o segment.o init.o -INCLUDE = -I../Include -I. $(SINCLUDE) -WADOPT = @WADOPT@ - - -# Location of your Perl installation -PERLINCLUDE = @PERL5EXT@ -PERLSRCS = wadpl.cxx -PERLOBJS = wadpl.o - -# C Compiler -CC = @CC@ -CFLAGS = #@CCSHARED@ - -# C++ Compiler -CXX = @CXX@ -CXXFLAGS = #@CXXSHARED@ - -# Linking options -CLINK = -CXXLINK = @CXXLINK@ - -# AR -AR = @AR@ - -# Rules for creation of a .o file from .cxx -.SUFFIXES: .cxx -.cxx.o: - $(CXX) $(CXXFLAGS) $(WADOPT) $(INCLUDE) -c -o $*.o $< - -.c.o: - $(CC) $(CFLAGS) $(WADOPT) $(INCLUDE) -c -o $*.o $< - -wad: $(WADOBJS) main.o - $(CXXLINK) $(WADOBJS) main.o -o libwad.so - $(AR) cr libwadcore.a $(WADOBJS) - cp libwad.so .. - cp libwadcore.a .. - -perl: wad_perl_handler.c $(WADOBJS) $(PERLOBJS) - $(CXXLINK) $(WADOBJS) $(PERLOBJS) -o libwadpl.so - cp libwadpl.so .. - -wad_perl_handler.c: - python makehandler.py - -debug:: - cc -g debug.c $(INCLUDE) -L. -R. -lwad - -plus:: - CC -g debug.cxx $(INCLUDE) -L. -R. -lwad - -wc:: - wc $(SRCS) - -semi:: - @egrep ";" $(WADSRCS) plat/*.c | wc - -clean:: - rm -f *.o *.so *~ - - - - diff --git a/SWIG/Tools/WAD/Wad/debug.c b/SWIG/Tools/WAD/Wad/debug.c deleted file mode 100644 index fcdb87a60..000000000 --- a/SWIG/Tools/WAD/Wad/debug.c +++ /dev/null @@ -1,98 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include "wad.h" -#include <assert.h> - -typedef struct Foo { - double a; - double b; - float c; -} Foo; - -static int type_crash(int n, short m, char c, double x, float y, Foo f, void *ptr) { - int *a = 0; - *a = 3; - return 1; -} -static int seg_crash(int n, double x, - float y) { - int *a = 0; - if (n > 0) seg_crash(n-1,x,y); - *a = 3; - return 1; -} - -int bus_crash(int n) { - int b; - int *a = &b; - a = (int *) ((int) a | 0x1); - if (n > 0) bus_crash(n-1); - *a = 3; - printf("well, well, well.\n"); - return 1; -} - -int abort_crash(int n) { - assert(n > 0); - abort_crash(n-1); - return 1; -} - -double double_crash(double a, double b) { - double *c; - *c = a+b; - return *c; -} - -int math_crash(int x, int y) { - return x/y; -} - -int call_func(int n, int (*f)(int)) { - - int ret; - ret = (*f)(n); - if (ret <= 0) { - printf("An error occurred!\n"); - } - return 0; -} - -static int multi(char a, short b, int c, double d) { - a = 'x'; - b = 15236; - c = 12345678; - d = 3.14159; - return c; -} - -static int test(int x, int (*f)(int)) { - return (*f)(-x); -} - -int main(int argc, char **argv) { - int n; - int (*f)(int); - Foo foo = { 3.14, 28.18, 1.0 }; - - printf("starting.\n"); - - if (strcmp(argv[1],"abort") == 0) { - abort_crash(0); - } else if (strcmp(argv[1],"seg") ==0) { - seg_crash(0,1,2); - } else if (strcmp(argv[1],"bus") == 0) { - bus_crash(0); - } else if (strcmp(argv[1],"ret") == 0) { - call_func(4,abort_crash); - } else if (strcmp(argv[1],"test") == 0) { - test(-1000,abort_crash); - } else if (strcmp(argv[1],"double") == 0) { - double_crash(3.14159,2.1828); - } else if (strcmp(argv[1],"math") == 0) { - math_crash(3,0); - } else if (strcmp(argv[1],"type") == 0) { - type_crash(34,42,17, 3.14159, 2.1828, foo, &foo); - } - multi(3,5,10,3.14); -} diff --git a/SWIG/Tools/WAD/Wad/default.c b/SWIG/Tools/WAD/Wad/default.c deleted file mode 100644 index 538674f86..000000000 --- a/SWIG/Tools/WAD/Wad/default.c +++ /dev/null @@ -1,311 +0,0 @@ -/* ----------------------------------------------------------------------------- - * default.c - * - * Default signal handler. Just prints a stack trace and returns. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -#include <sys/mman.h> - - -/* This function tries to produce some kind of sensible argument - string for a stack frame. If no debugging information is available, - we'll just dump the %i0-%i5 registers in hex. If debugging information - is available, we'll try to do something a little more sensible */ - -char *wad_arg_string(WadFrame *frame) { - static char str[1024]; - WadLocal *wp; - long *stack; - long *nextstack; - long *prevstack; - int i; - WadFrame *nf; - WadFrame *pf; - - nf = frame->next; - if (nf) - nextstack = (long *) nf->stack; - else - nextstack = 0; - - pf = frame->prev; - if (pf) - prevstack = (long *) pf->stack; - else - prevstack = 0; - - str[0] = 0; - stack = (long *) frame->stack; - - -#ifdef WAD_LINUX - if (!nf) { - return ""; - } -#endif - - if ((frame->debug_nargs < 0) || (0)){ - /* No argument information is available. If we are on SPARC, we'll dump - the %in registers since these usually hold input parameters. On - Linux, we do nothing */ - -#ifdef WAD_SOLARIS - for (i = 0; i < 6; i++) { - wad_strcat(str,"0x"); - wad_strcat(str,wad_format_hex((unsigned long) stack[8+i],0)); - if (i < 5) - wad_strcat(str,","); - } -#endif - } else { - /* We were able to get some argument information out the debugging table */ - wp = frame->debug_args; - for (i = 0; i < frame->debug_nargs; i++, wp = wp->next) { - wad_strcat(str,wp->name); - wad_strcat(str,"="); - wad_strcat(str,wad_format_var(wp)); - if (i < (frame->debug_nargs-1)) wad_strcat(str,","); - } - } - return str; - -} - -char *wad_strip_dir(char *name) { - char *c; - /* printf("strip: '%s'\n", name); */ - c = name + strlen(name); - while (c != name) { - if (*c == '/') { - c++; - return c; - } - c--; - } - return name; -} - - - -static char *src_file = 0; -static int src_len = 0; -static char src_path[1024] = ""; - -/* Opens up a source file and tries to locate a specific line number */ - -char *wad_load_source(char *path, int line) { - int fd; - char *c; - char *start; - int n; - - if (strcmp(src_path,path)) { - if (src_file) { - munmap(src_file, src_len); - src_file = 0; - src_len = 0; - } - fd = open(path, O_RDONLY); - if (fd < 0) return 0; - src_len = lseek(fd, 0, SEEK_END); - lseek(fd,0,SEEK_SET); - src_file = (char *)mmap(NULL,src_len, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); - if (src_file == MAP_FAILED) { - close(fd); - return 0; - } - close(fd); - wad_strcpy(src_path,path); - } - n = 0; - start = src_file; - c = src_file; - while (n < src_len) { - if (*c == '\n') { - line--; - if (line == 0) { - return start; - } - start = c+1; - } - c++; - n++; - } - return 0; -} - -void wad_release_source() { - if (src_file) { - munmap(src_file,src_len); - src_file = 0; - src_len = 0; - src_path[0] = 0; - } -} - -/* ----------------------------------------------------------------------------- - * wad_debug_src_code(WadFrame *f) - * - * Get source code for a frame - * ----------------------------------------------------------------------------- */ - -char *wad_debug_src_string(WadFrame *f, int window) { - static char temp[16384]; - - if (f->loc_srcfile && strlen(f->loc_srcfile) && (f->loc_line > 0)) { - char *line, *c; - int i; - int first, last; - first = f->loc_line - window; - last = f->loc_line + window; - if (first < 1) first = 1; - line = wad_load_source(f->loc_srcfile,first); - if (line) { - wad_strcpy(temp,f->loc_srcfile); - wad_strcat(temp,", line "); - wad_strcat(temp,wad_format_signed(f->loc_line,-1)); - wad_strcat(temp,"\n\n"); - for (i = first; i <= last; i++) { - if (i == f->loc_line) wad_strcat(temp," => "); - else wad_strcat(temp," "); - c = strchr(line,'\n'); - if (c) { - *c = 0; - wad_strcat(temp,line); - wad_strcat(temp,"\n"); - *c = '\n'; - } else { - wad_strcat(temp,line); - wad_strcat(temp,"\n"); - break; - } - line = c+1; - } - f->debug_srcstr = wad_strdup(temp); - return f->debug_srcstr; - } - } - f->debug_srcstr = 0; - return 0; -} - -/* ----------------------------------------------------------------------------- - * wad_debug_make_strings(WadFrame *f) - * - * This function walks the stack trace and tries to generate a debugging string - * ----------------------------------------------------------------------------- */ - -void -wad_debug_make_strings(WadFrame *f) { - static char msg[16384]; - while (f) { - wad_strcpy(msg,"#"); - wad_strcat(msg,wad_format_signed(f->frameno,3)); - wad_strcat(msg," 0x"); - wad_strcat(msg,wad_format_hex(f->pc,1)); - wad_strcat(msg," in "); - wad_strcat(msg, f->sym_name ? f->sym_name : "?"); - wad_strcat(msg,"("); - wad_strcat(msg,wad_arg_string(f)); - wad_strcat(msg,")"); - if (f->loc_srcfile && strlen(f->loc_srcfile)) { - wad_strcat(msg," in '"); - wad_strcat(msg, wad_strip_dir(f->loc_srcfile)); - wad_strcat(msg,"'"); - if (f->loc_line > 0) { - wad_strcat(msg,", line "); - wad_strcat(msg,wad_format_signed(f->loc_line,-1)); - /* Try to locate the source file */ - wad_debug_src_string(f, WAD_SRC_WINDOW); - } - } else { - if (f->loc_objfile && strlen(f->loc_objfile)) { - wad_strcat(msg," from '"); - wad_strcat(msg, wad_strip_dir(f->loc_objfile)); - wad_strcat(msg,"'"); - } - } - wad_strcat(msg,"\n"); - f->debug_str = wad_strdup(msg); - f = f->next; - } -} - -/* Dump trace to a file */ -void wad_dump_trace(int fd, int signo, WadFrame *f, char *ret) { - static char buffer[128]; - char *srcstr = 0; - - switch(signo) { - case SIGSEGV: - write(fd,"WAD: Segmentation fault.\n", 25); - break; - case SIGBUS: - write(fd,"WAD: Bus error.\n",17); - break; - case SIGABRT: - write(fd,"WAD: Abort.\n",12); - break; - case SIGFPE: - write(fd,"WAD: Floating point exception.\n", 31); - break; - case SIGILL: - write(fd,"WAD: Illegal instruction.\n", 26); - break; - default: - sprintf(buffer,"WAD: Signal %d\n", signo); - write(fd,buffer,strlen(buffer)); - break; - } - /* Find the last exception frame */ - - while (f && !(f->last)) { - f = f->next; - } - - while (f) { - write(fd,f->debug_str,strlen(f->debug_str)); - if (f->debug_srcstr) { - srcstr = f->debug_srcstr; - } - f = f->prev; - } - if (srcstr) { - write(fd,"\n",1); - write(fd,srcstr,strlen(srcstr)); - write(fd,"\n",1); - } -} - -/* ----------------------------------------------------------------------------- - * Default callback - * ----------------------------------------------------------------------------- */ - -void wad_default_callback(int signo, WadFrame *f, char *ret) { - wad_dump_trace(2,signo,f,ret); -} - diff --git a/SWIG/Tools/WAD/Wad/demangle.c b/SWIG/Tools/WAD/Wad/demangle.c deleted file mode 100644 index cf56e3664..000000000 --- a/SWIG/Tools/WAD/Wad/demangle.c +++ /dev/null @@ -1,36 +0,0 @@ -/* ----------------------------------------------------------------------------- - * demangle.c - * - * This file performs C++ partial name demangling to the extent that it - * seems reasonable. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -char *wad_cplus_demangle(WadSymbol *ws) { - static char buffer[4096]; - strcpy(buffer,ws->name); - return buffer; -} diff --git a/SWIG/Tools/WAD/Wad/elf.c b/SWIG/Tools/WAD/Wad/elf.c deleted file mode 100644 index ec5a1eb7c..000000000 --- a/SWIG/Tools/WAD/Wad/elf.c +++ /dev/null @@ -1,428 +0,0 @@ -/* ----------------------------------------------------------------------------- - * elf.c - * - * ELF file management. This file contains functions for accessing ELF - * file data from a raw memory mapped ELF file (as performed by the - * functions in object.c). - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -#ifdef WAD_SOLARIS -#include <sys/elf.h> -#endif -#ifdef WAD_LINUX -#include <elf.h> -#endif - -/* --- What's needed here (high level interface) : - - Mapping of addresses to symbols - - Mapping of symbols to file+line -*/ - - -/* ----------------------------------------------------------------------------- - * wad_elf_check() - * - * Checks to see if an object file is an ELF file. Returns 1 on success and - * changes the type flag of wo to indicate the type of ELF file. - * ----------------------------------------------------------------------------- */ - -int -wad_elf_check(WadObjectFile *wo) { - if (strncmp((char *)wo->ptr,ELFMAG, SELFMAG) != 0) - return 0; - - /* Probably need to put some kind of 32/64 bit check here */ - return 1; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_phdrcnt() - * - * Return number of entries in the ELF program header section - * ----------------------------------------------------------------------------- */ - -int -wad_elf_phdrcnt(WadObjectFile *wo) { - Elf32_Ehdr *eh; - - eh = (Elf32_Ehdr *) wo->ptr; - return eh->e_phnum; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_phdrpos() - * - * Return the location of the ELF program header. - * ----------------------------------------------------------------------------- */ - -void * -wad_elf_phdrpos(WadObjectFile *wo) { - Elf32_Ehdr *eh; - char *c; - eh = (Elf32_Ehdr *) wo->ptr; - c = (char *) wo->ptr; - return (void *) (c+eh->e_phoff); -} - -/* ----------------------------------------------------------------------------- - * wad_elf_shdrcnt() - * - * Return number of entries in the ELF section header - * ----------------------------------------------------------------------------- */ - -int -wad_elf_shdrcnt(WadObjectFile *wo) { - Elf32_Ehdr *eh; - - eh = (Elf32_Ehdr *) wo->ptr; - return eh->e_shnum; -} - - -/* ----------------------------------------------------------------------------- - * wad_elf_shdrpos() - * - * Return the location of the section headers - * ----------------------------------------------------------------------------- */ - -void * -wad_elf_shdrpos(WadObjectFile *wo) { - Elf32_Ehdr *eh; - char *c; - eh = (Elf32_Ehdr *) wo->ptr; - c = (char *) wo->ptr; - return (void *) (c+eh->e_shoff); -} - -/* ----------------------------------------------------------------------------- - * wad_elf_section_header() - * - * Get a specific section number - * ----------------------------------------------------------------------------- */ - -void *wad_elf_section_header(WadObjectFile *wo, int sn) { - Elf32_Ehdr *eh; - char *r; - - eh = (Elf32_Ehdr *) wo->ptr; - if ((sn < 0) || (sn >= eh->e_shnum)) return 0; - - r = (char *) wad_elf_shdrpos(wo) + (sn*eh->e_shentsize); - return (void *) r; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_section_data() - * - * Get section data - * ----------------------------------------------------------------------------- */ - -void *wad_elf_section_data(WadObjectFile *wo, int sn) { - Elf32_Shdr *sh; - char *r; - - sh = (Elf32_Shdr *) wad_elf_section_header(wo,sn); - if (!sh) return 0; - - r = ((char *) wo->ptr) + sh->sh_offset; - return r; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_section_size() - * Return section size - * ----------------------------------------------------------------------------- */ - -int wad_elf_section_size(WadObjectFile *wo, int sn) { - Elf32_Shdr *sh; - - sh = (Elf32_Shdr *) wad_elf_section_header(wo,sn); - if (!sh) return -1; - return sh->sh_size; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_section_name() - * - * Returns the name of an ELF section - * ----------------------------------------------------------------------------- */ - -char *wad_elf_section_name(WadObjectFile *wo, int sn) { - Elf32_Ehdr *eh; - Elf32_Shdr *sh; - char *sectionstr; - - eh = (Elf32_Ehdr *) wo->ptr; - - /* Get the string table */ - sectionstr = (char *) wad_elf_section_data(wo,eh->e_shstrndx); - if (!sectionstr) { - return 0; - } - - /* Get the section header for the section */ - sh = (Elf32_Shdr *) wad_elf_section_header(wo,sn); - if (!sh) return 0; - return sectionstr + sh->sh_name; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_section_byname() - * - * Get section data given a section name - * ----------------------------------------------------------------------------- */ - -int -wad_elf_section_byname(WadObjectFile *wo, char *name) { - int i; - char *sn; - int n; - - n = wad_elf_shdrcnt(wo); - for (i = 0; i <n; i++) { - sn = wad_elf_section_name(wo,i); - if (strcmp(sn,name) == 0) { - return i; - } - } - return -1; -} - -/* ----------------------------------------------------------------------------- - * wad_find_symbol() - * - * Tries to find the symbol associated with a given address. base is the - * base address of the object file. - * ----------------------------------------------------------------------------- */ - -static -int elf_search_section_sym(WadFrame *f, char *secname, char *strname) { - int nsymtab; - int nstrtab; - int symtab_size; - Elf32_Sym *sym; - int nsym; - char *str; - int i; - unsigned long vaddr, base; - char *name; - char *localfile = 0; - - vaddr = (unsigned long) f->pc; - base = (unsigned long) f->segment->base; - - nsymtab = wad_elf_section_byname(f->object,secname); - if (nsymtab < 0) return 0; - nstrtab = wad_elf_section_byname(f->object,strname); - if (nstrtab < 0) return 0; - - symtab_size = wad_elf_section_size(f->object,nsymtab); - sym = (Elf32_Sym *) wad_elf_section_data(f->object,nsymtab); - str = (char *) wad_elf_section_data(f->object,nstrtab); - - nsym = (symtab_size/sizeof(Elf32_Sym)); - for (i = 0; i < nsym; i++) { - name = str + sym[i].st_name; - /* Look for filename in case the symbol maps to a local symbol */ - if (ELF32_ST_TYPE(sym[i].st_info) == STT_FILE) { - localfile = name; - } - if (wad_debug_mode & DEBUG_SYMBOL_SEARCH) { - wad_printf("%x(%x): %s %x + %x, %x, %x\n", base, vaddr, name, sym[i].st_value, sym[i].st_size, sym[i].st_info, sym[i].st_shndx); - } - if (((base + sym[i].st_value) <= vaddr) && (vaddr <= (base+sym[i].st_value + sym[i].st_size))) { -#ifdef WAD_LINUX - /* If the section index is 0, the symbol is undefined */ - if (sym[i].st_shndx == 0) continue; -#endif - f->sym_name = name; - f->sym_nlen = strlen(name); - f->sym_base = base + sym[i].st_value; - f->sym_size = sym[i].st_size; - if (ELF32_ST_BIND(sym[i].st_info) == STB_LOCAL) { - f->sym_file = localfile; - f->sym_bind = SYM_LOCAL; - } else { - f->sym_bind = SYM_GLOBAL; - } - return 1; - } - } - return 0; -} - -void -wad_elf_find_symbol(WadFrame *f) { - /* We simply try a few possible sections */ - if (elf_search_section_sym(f,".symtab",".strtab")) return; - if (elf_search_section_sym(f,".dynsym",".dynstr")) return; - - /* Hmmm. No match found. Oh well */ - return; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_debug_info() - * - * Gather debugging information about a function (if possible) - * ----------------------------------------------------------------------------- */ - -int -wad_elf_debug_info(WadFrame *f) { - int nstab, nstabstr, nstabindex, nstabindexstr, nstabexcl, nstabexclstr; - int ret; - void *stab; - char *stabstr; - int stabsize; - - nstab = wad_elf_section_byname(f->object,".stab"); - nstabstr = wad_elf_section_byname(f->object,".stabstr"); - nstabindex = wad_elf_section_byname(f->object,".stab.index"); - nstabindexstr = wad_elf_section_byname(f->object,".stab.indexstr"); - nstabexcl = wad_elf_section_byname(f->object,".stab.excl"); - nstabexclstr = wad_elf_section_byname(f->object,".stab.exclstr"); - -#ifdef DEBUG_DEBUG - wad_printf("nstab = %d\n", nstab); - wad_printf("nstabstr = %d\n", nstabstr); - wad_printf("nstabindex = %d\n", nstabindex); - wad_printf("nstabindexstr = %d\n", nstabindexstr); - wad_printf("nstabexcl = %d\n", nstabexcl); - wad_printf("nstabexclstr = %d\n", nstabexclstr); -#endif - - /* Now start searching stabs */ - - /* Look in the .stab section */ - if (nstab > 0) { - stab = wad_elf_section_data(f->object,nstab); - stabsize = wad_elf_section_size(f->object,nstab); - stabstr = (char *) wad_elf_section_data(f->object,nstabstr); - - - if (wad_search_stab(stab,stabsize,stabstr, f)) return 1; - } - - /* Look in the .stab.excl section. A solaris oddity? */ - - if (nstabexcl > 0) { - stab = wad_elf_section_data(f->object,nstabexcl); - stabsize = wad_elf_section_size(f->object, nstabexcl); - stabstr = (char *) wad_elf_section_data(f->object, nstabexclstr); - - if (wad_search_stab(stab,stabsize,stabstr, f)) return 1; - } - - /* Look in the .stab.index section. A Solaris oddity? */ - if (nstabindex > 0) { - - stab = wad_elf_section_data(f->object,nstabindex); - stabsize = wad_elf_section_size(f->object, nstabindex); - stabstr = (char *) wad_elf_section_data(f->object, nstabindexstr); - - if (wad_search_stab(stab,stabsize,stabstr, f)) { - /* Hmmm. Might be in a different file */ - WadObjectFile *wo1, *wold; - char objfile[MAX_PATH]; - /* printf("DEBUG %s\n", f->sym_name); */ - wad_strcpy(objfile, f->loc_objfile); - wo1 = wad_object_load(objfile); - if (wo1) { - wold = f->object; - f->object = wo1; - wad_find_debug(f); - f->object = wold; - return ret; - } else { - /* wad_printf("couldn't load %s\n", objfile); */ - } - /* if (!ret) return wad_search_stab(stab,stabsize,stabstr,f);*/ - return ret; - } - } - return 0; -} - -/* ----------------------------------------------------------------------------- - * wad_elf_debug() - * - * Print some debugging information about an object - * ----------------------------------------------------------------------------- */ - -void -wad_elf_debug(WadObjectFile *wo) { - int i; - wad_printf("ELF Debug : obj = %x (%s)\n", wo, wo->path); - wad_printf(" phdrcnt = %d\n", wad_elf_phdrcnt(wo)); - wad_printf(" phdrpos = %x\n", wad_elf_phdrpos(wo)); - wad_printf(" shdrcnt = %d\n", wad_elf_shdrcnt(wo)); - wad_printf(" shdrpos = %x\n", wad_elf_shdrpos(wo)); - for (i = 0; i < wad_elf_shdrcnt(wo); i++) { - wad_printf(" section '%s': data = 0x%x, size = %d\n", - wad_elf_section_name(wo,i), - wad_elf_section_data(wo,i), - wad_elf_section_size(wo,i)); - } -} - -/* general purpose functions exposed to the outside world */ - -/* ----------------------------------------------------------------------------- - * wad_find_symbol() - * ----------------------------------------------------------------------------- */ - -void -wad_find_symbol(WadFrame *f) { - if (wad_debug_mode & DEBUG_SYMBOL) { - wad_printf("wad: Searching for 0x%08x --> ", f->pc); - } - if (f->object) - wad_elf_find_symbol(f); - if (wad_debug_mode & DEBUG_SYMBOL) { - if (f->sym_name) { - wad_printf("%s", f->sym_name); - if (f->sym_file) - wad_printf(" in '%s'\n", f->sym_file); - else - wad_printf("\n"); - } else { - wad_printf("?\n"); - } - } -} - -void -wad_find_debug(WadFrame *f) { - /* if (f->debug_check) return; */ - if (f->object) { - wad_elf_debug_info(f); - } - /* f->debug_check = 1; */ -} - - - diff --git a/SWIG/Tools/WAD/Wad/init.c b/SWIG/Tools/WAD/Wad/init.c deleted file mode 100644 index 20f1d3daf..000000000 --- a/SWIG/Tools/WAD/Wad/init.c +++ /dev/null @@ -1,113 +0,0 @@ -/* ----------------------------------------------------------------------------- - * init.c - * - * Initialize the wad system. This sets up a signal handler for catching - * SIGSEGV, SIGBUS, and SIGABRT. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* Debugging flag */ -int wad_debug_mode = 0; - -/* Initialize wad */ -void wad_init() { - static int init = 0; - - wad_memory_init(); - if (getenv("WAD_DEBUG_SEGMENT")) { - wad_debug_mode |= DEBUG_SEGMENT; - } - if (getenv("WAD_DEBUG_SYMBOL")) { - wad_debug_mode |= DEBUG_SYMBOL; - } - - if (getenv("WAD_DEBUG_OBJECT")) { - wad_debug_mode |= DEBUG_OBJECT; - } - - if (getenv("WAD_DEBUG_FILE")) { - wad_debug_mode |= DEBUG_FILE; - } - - if (getenv("WAD_DEBUG_HOLD")) { - wad_debug_mode |= DEBUG_HOLD; - } - - if (getenv("WAD_DEBUG_STABS")) { - wad_debug_mode |= DEBUG_STABS; - } - - if (getenv("WAD_DEBUG_RETURN")) { - wad_debug_mode |= DEBUG_RETURN; - } - - if (getenv("WAD_DEBUG_SYMBOL_SEARCH")) { - wad_debug_mode |= DEBUG_SYMBOL_SEARCH; - } - - if (getenv("WAD_DEBUG_INIT")) { - wad_debug_mode |= DEBUG_INIT; - } - - if (getenv("WAD_DEBUG_STACK")) { - wad_debug_mode |= DEBUG_STACK; - } - - if (getenv("WAD_DEBUG_UNWIND")) { - wad_debug_mode |= DEBUG_UNWIND; - } - - if (getenv("WAD_DEBUG_SIGNAL")) { - wad_debug_mode |= DEBUG_SIGNAL; - } - - if (getenv("WAD_NOSTACK")) { - wad_debug_mode |= DEBUG_NOSTACK; - } - - if (getenv("WAD_ONESHOT")) { - wad_debug_mode |= DEBUG_ONESHOT; - } - - if (getenv("WAD_DEBUG_STRING")) { - wad_debug_mode |= DEBUG_STRING; - } - - if (getenv("WAD_DEBUG_MEMORY")) { - wad_debug_mode |= DEBUG_MEMORY; - } - - if (wad_debug_mode & DEBUG_INIT) { - wad_printf("WAD: initializing\n"); - } - - - if (!init) { - wad_signal_init(); - wad_object_reset(); - } - init = 1; -} diff --git a/SWIG/Tools/WAD/Wad/io.c b/SWIG/Tools/WAD/Wad/io.c deleted file mode 100644 index a7e4e421d..000000000 --- a/SWIG/Tools/WAD/Wad/io.c +++ /dev/null @@ -1,107 +0,0 @@ -/* ----------------------------------------------------------------------------- - * io.c - * - * This file provides some I/O routines so that WAD can produce - * debugging output without using buffered I/O. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" -#include <stdarg.h> - -static char cvs[] = "$Header$"; - -/* Utility functions used to generate strings that are guaranteed not to - rely upon malloc() and related functions */ - -char *wad_format_hex(unsigned long u, int leading) { - static char result[64]; - int i; - char *c; - c = &result[63]; - *c = 0; - for (i = 0; i < (sizeof(unsigned long)*2); i++) { - int d; - d = (int) (u & 0xf); - c--; - if (d < 10) { - *c = '0' + d; - } else { - *c = 'a' + (d-10); - } - if (!u && !leading) break; - u = u >> 4; - } - return c; -} - -char *wad_format_unsigned(unsigned long u, int width) { - static char result[128]; - static char digits[] = "0123456789"; - char *c, *w; - int count = 0; - int i; - c = &result[64]; - while (u) { - int digit = u % 10; - *(--c) = digits[digit]; - count++; - u = u / 10; - } - if (!count) { - *(--c) = '0'; - count++; - } - w = &result[64]; - for (i = count; i < width; i++) { - *(w++) = ' '; - } - *w = 0; - return c; -} - -char *wad_format_signed(signed long s, int width) { - static char result[128]; - unsigned long u; - char *c = result; - if (s < 0) { - *(c++) = '-'; - width--; - u = (unsigned long) (-s); - if (u == 0) { - u = (unsigned long) s; - } - } else { - u = (unsigned long) s; - } - *c = 0; - wad_strcat(result, wad_format_unsigned(u,width)); - return result; -} - - -void wad_printf(const char *fmt, ...) { - va_list ap; - va_start(ap, fmt); - vfprintf(stderr,fmt,ap); - va_end(ap); -} diff --git a/SWIG/Tools/WAD/Wad/libwadpl.pm b/SWIG/Tools/WAD/Wad/libwadpl.pm deleted file mode 100644 index 21a01db46..000000000 --- a/SWIG/Tools/WAD/Wad/libwadpl.pm +++ /dev/null @@ -1,8 +0,0 @@ -package libwadpl; -require Exporter; -require DynaLoader; -@ISA = qw(Exporter DynaLoader); -package libwadpl; -bootstrap libwadpl; -@EXPORT = qw( ); -1; diff --git a/SWIG/Tools/WAD/Wad/main.cxx b/SWIG/Tools/WAD/Wad/main.cxx deleted file mode 100644 index 1cf5ce958..000000000 --- a/SWIG/Tools/WAD/Wad/main.cxx +++ /dev/null @@ -1,14 +0,0 @@ -extern "C" { -#include "wad.h" -} - -/* This is a sick hack to force initialization upon loading */ - -class StartDebug { -public: - StartDebug() { - wad_init(); - } -}; - -static StartDebug s; diff --git a/SWIG/Tools/WAD/Wad/makehandler.py b/SWIG/Tools/WAD/Wad/makehandler.py deleted file mode 100755 index c4e23a654..000000000 --- a/SWIG/Tools/WAD/Wad/makehandler.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/local/bin/python -import string -f = open("wadhandler.pl") -data = f.read() -f.close() - -data = string.replace(data,"\\", "\\\\") -data = string.replace(data,"\"", "\\\"") -data = string.replace(data,"\n", "\\n\\\n") - -f = open("wad_perl_handler.c","w") - -f.write("static char wad_perl_handler[] = \"") -f.write(data) -f.write("\";\n"); -f.close() - - - - diff --git a/SWIG/Tools/WAD/Wad/memory.c b/SWIG/Tools/WAD/Wad/memory.c deleted file mode 100644 index 3d8dc65a0..000000000 --- a/SWIG/Tools/WAD/Wad/memory.c +++ /dev/null @@ -1,174 +0,0 @@ -/* ----------------------------------------------------------------------------- - * memory.c - * - * This file provides simple mmap() based memory management for WAD. Since - * the process heap-allocator might be corrupted when WAD is invoked, we - * have to do all of our own memory management. However, since WAD mostly - * just collects data, we only provide the function wad_malloc(). To - * release all allocated memory, the wad_release_memory() function should - * be used. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -typedef struct _WadMemory { - int npages; /* Number of pages */ - int last; /* Last offset in page */ - struct _WadMemory *next; /* Pointer to next allocation */ -} WadMemory; - -static WadMemory *current = 0; /* Current memory block */ -static int pagesize = 0; /* System page size */ -static int devzero = 0; -static int npalloc = 8; /* Number of pages per alloc */ - -/* ----------------------------------------------------------------------------- - * wad_memory_init() - * - * Initialize the WAD allocator. - * ----------------------------------------------------------------------------- */ - -int wad_memory_init() { - pagesize = getpagesize(); - devzero = open("/dev/zero", O_RDWR); - if (devzero < 0) { - wad_printf("WAD: couldn't open /dev/zero.\n"); - return -1; - } - return 0; -} - -/* ----------------------------------------------------------------------------- - * wad_page_alloc() - * - * Allocate pages using mmap - * ----------------------------------------------------------------------------- */ - -void *wad_page_alloc(int npages) { - void *m; - m = mmap(NULL, npages*pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE, devzero, 0); - if (((long) m) == -1) return 0; - /* printf("page_alloc: %x - %x\n", m, ((char *) m) + npages*pagesize); */ - return m; -} - -/* ----------------------------------------------------------------------------- - * wad_malloc() - * - * Allocate memory using mmap(). If the allocation is smaller than half a page, - * We'll look at current to see if there is enough space. If so, we'll just - * use that memory. Otherwise, we'll allocate a new page. If the allocation - * request is larger than a page, we'll round up to the nearest page size and - * do a special allocation. - * ----------------------------------------------------------------------------- */ - -void *wad_malloc(int nbytes) { - void *ptr; - WadMemory *wm; - char *c; - int npages; - /* wad_printf("wad_malloc: %d\n", nbytes); */ - if (nbytes >= ((npalloc*pagesize) >> 2)) { - /* Large allocation. */ - npages = ((nbytes + sizeof(WadMemory))/pagesize) + 1; - ptr = wad_page_alloc(npages); - if (!ptr) return 0; - wm = (WadMemory *)ptr; - wm->npages = npages; - wm->last = sizeof(WadMemory) + 8; - wm->next = current; - current = wm; - c = (char *) current + (current->last); - current->last += ((nbytes & ~0x7) + 8); - return c; - } - /* Small allocation. See if there are any regions big enough */ - wm = current; - while (wm) { - if (((wm->npages*pagesize) - wm->last) > nbytes) { - /* Yep. Found a region */ - break; - } - wm = wm->next; - } - if (!wm) { - /* wad_printf("wad_malloc: new page\n", nbytes);*/ - wm = (WadMemory *) wad_page_alloc(npalloc); - if (!wm) return 0; - wm->npages = npalloc; - wm->last = sizeof(WadMemory) + 8; - wm->next = current; - current = wm; - } - c = ((char *) wm) + (wm->last); - wm->last += ((nbytes & ~0x7) + 8); - return c; -} - -/* ----------------------------------------------------------------------------- - * wad_strdup() - * - * Duplicate a string - * ----------------------------------------------------------------------------- */ - -char *wad_strdup(const char *c) { - char *t; - if (!c) c = ""; - t = (char *) wad_malloc(strlen(c)+1); - wad_strcpy(t,c); - return t; -} - -/* ----------------------------------------------------------------------------- - * wad_memcpy() - * ----------------------------------------------------------------------------- */ - -void wad_memcpy(void *t, const void *s, unsigned len) { - char *tc, *sc; - int i; - tc = (char *) t; - sc = (char *) s; - for (i = 0; i < len; i++, tc++, sc++) - *tc = *sc; -} - -/* ----------------------------------------------------------------------------- - * wad_memory_debug() - * ----------------------------------------------------------------------------- */ - -void wad_memory_debug() { - int total_alloc = 0; - int inuse = 0; - WadMemory *m; - if (wad_debug_mode & DEBUG_MEMORY) { - m = current; - while (m) { - total_alloc += (m->npages)*pagesize; - inuse += m->last; - m = m->next; - } - wad_printf("WAD: memory allocated %d bytes (%d bytes used).\n", total_alloc, inuse); - } -} diff --git a/SWIG/Tools/WAD/Wad/object.c b/SWIG/Tools/WAD/Wad/object.c deleted file mode 100644 index 97c486b08..000000000 --- a/SWIG/Tools/WAD/Wad/object.c +++ /dev/null @@ -1,303 +0,0 @@ -/* ----------------------------------------------------------------------------- - * object.c - * - * This file provides access to raw object files, executables, and - * library files. Memory management is handled through mmap() to - * avoid the use of heap/stack space. - * - * All of the files and objects created by this module persist - * until the process exits. Since WAD may be invoked multiple times - * over the course of program execution, it makes little sense to keep - * loading and unloading files---subsequent invocations of the handler - * can simply used previously loaded copies. Caveat: things probably - * won't work right if a program is doing lots of low-level manipulation - * of the dynamic loader. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -#include <ar.h> - -typedef struct WadFile { - void *addr; /* Base address of the file */ - int size; /* Size in bytes */ - char *path; /* Path name */ - struct WadFile *next; /* Next file */ -} WadFile; - -static WadFile *wad_files = 0; /* Linked list of loaded files */ - -/* private function to manage the loading of raw files into memory */ -static WadFile * -load_file(const char *path) { - int fd; - WadFile *wf = wad_files; - - if (wad_debug_mode & DEBUG_FILE) { - wad_printf("wad: Loading file '%s' ... ", path); - } - while (wf) { - if (strcmp(wf->path,path) == 0) { - if (wad_debug_mode & DEBUG_FILE) wad_printf("cached.\n"); - return wf; - } - wf = wf->next; - } - fd = open(path, O_RDONLY); - if (fd < 0) { - if (wad_debug_mode & DEBUG_FILE) wad_printf("not found!\n"); - return 0; /* Doesn't exist. Oh well */ - } - if (wad_debug_mode & DEBUG_FILE) wad_printf("loaded.\n"); - wf = (WadFile *) wad_malloc(sizeof(WadFile)); - wf->path = wad_strdup(path); - - /* Get file length */ - wf->size = lseek(fd,0,SEEK_END); - lseek(fd,0,SEEK_SET); - - /* Try to mmap the file */ - wf->addr = mmap(NULL,wf->size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, fd, 0); - close(fd); - if (wf->addr == MAP_FAILED) { - if (wad_debug_mode & DEBUG_FILE) wad_printf("wad: Couldn't mmap '%s'\n", path); - return 0; - } - wf->next = wad_files; - wad_files = wf; - return wf; -} - -static WadObjectFile *wad_objects = 0; /* Linked list of object files */ - -/* ----------------------------------------------------------------------------- - * wad_object_cleanup() - * - * Reset the object file loader. This unmaps the files themselves, but - * memory will leak for object files pointers themselves. - * ----------------------------------------------------------------------------- */ - -void -wad_object_reset() { - WadFile *f = wad_files; - if (wad_debug_mode & DEBUG_OBJECT) { - wad_printf("wad: Releasing all files.\n"); - } - /* Unmap all of the loaded files */ - while (f) { - if (f->addr) { - munmap(f->addr, f->size); - } - f = f->next; - } - /* Reset the linked lists */ - wad_files = 0; - wad_objects = 0; -} - -/* ----------------------------------------------------------------------------- - * wad_object_load() - * - * Load an object file into memory using mmap. Returns 0 if the object does - * not exist or if we're out of memory. - * ----------------------------------------------------------------------------- */ - -WadObjectFile * -wad_object_load(const char *path) { - WadObjectFile *wo; - WadFile *wf; - WadObjectFile *wad_arobject_load(const char *path, const char *name); - - if (wad_debug_mode & DEBUG_OBJECT) { - wad_printf("wad: Loading object '%s'", path); - } - for (wo = wad_objects; wo; wo=wo->next) { - if (strcmp(wo->path,path) == 0) { - if (wad_debug_mode & DEBUG_OBJECT) { - wad_printf(" (cached)\n"); - } - return wo; - } - } - if (wad_debug_mode & DEBUG_OBJECT) { - wad_printf("\n"); - } - /* Didn't find it. Now we need to go load some files */ - - /* If this is an archive reference like /path/libfoo.a(blah.o), we need to - split up the name a little bit */ - { - char realfile[MAX_PATH]; - char *objfile; - char *c; - c = strchr(path,'('); - if (c) { - wad_strcpy(realfile,path); - c = strchr(realfile,'('); - *c = 0; - objfile = c+1; - c = strchr(objfile,')'); - *c = 0; - - /* Okay, I'm going to attempt to map this as a library file */ - wo = wad_arobject_load(realfile,objfile); - if (wo) { - /* Reset the path */ - wo->path = wad_strdup(path); - wo->next = wad_objects; - wad_objects = wo; - return wo; - } - } - } - wf = load_file(path); - if (!wf) return 0; - - wo = (WadObjectFile *) wad_malloc(sizeof(WadObjectFile)); - wo->path = wad_strdup(path); - wo->ptr = wf->addr; - wo->len = wf->size; - wo->next = wad_objects; - wad_objects = wo; - return wo; -} - -/* ----------------------------------------------------------------------------- - * wad_arobject_load() - * - * Load an object file stored in an archive file created with an archive. The - * pathname should be the path of the .a file and robjname should be the name - * of the object file stored in the object file. - * ----------------------------------------------------------------------------- */ - -WadObjectFile * -wad_arobject_load(const char *arpath, const char *robjname) { - WadObjectFile *wo; - WadFile *wf; - int arlen; - char *arptr; - struct ar_hdr *ah; - int offset; - int msize; - char *strtab = 0; - int sobjname; - char objname[MAX_PATH]; - - wad_strcpy(objname,robjname); - wad_strcat(objname,"/"); - sobjname = strlen(objname); - - wf = load_file(arpath); - if (!wf) return 0; /* Doesn't exit */ - - arptr = (char *) wf->addr; - arlen = wf->size; - - /* Now take a look at the archive */ - if (strncmp(arptr,ARMAG,SARMAG) == 0) { - /* printf("Got an archive\n"); */ - } else { - return 0; - } - - /* Search the archive for the request member */ - strtab = 0; - offset = SARMAG; - while (offset < arlen) { - char mname[MAX_PATH]; - ah = (struct ar_hdr *) (arptr + offset); - if (strncmp(ah->ar_name,"// ", 3) == 0) { - strtab = arptr + offset + sizeof(struct ar_hdr); - } - msize = atoi(ah->ar_size); - - offset += sizeof(struct ar_hdr); - /* Try to figure out the filename */ - if ((ah->ar_name[0] == '/') && (isdigit(ah->ar_name[1]))) { - int soff; - char *e; - /* Must be in the string offset table */ - soff = atoi(ah->ar_name+1); - if (!strtab) { - /* No offset table */ - return 0; - } - e = strchr(strtab+soff,'\n'); - if (e) { - strncpy(mname, strtab+soff, (e - (strtab+soff))); - mname[e-(strtab+soff)] = 0; - } else { - mname[0] = 0; - } - } else { - /* Name must be in the name field */ - strncpy(mname,ah->ar_name,16); - mname[16] = 0; - } - /* Compare the names */ - if (strncmp(mname,objname,sobjname) == 0) { - /* Found the archive */ - wo = (WadObjectFile *) wad_malloc(sizeof(WadObjectFile)); - wo->ptr = (void *) (arptr + offset); - wo->len = msize; - wo->path = 0; - return wo; - } - offset += msize; - } - return 0; -} - -/* ----------------------------------------------------------------------------- - * wad_find_object(WadFrame *f) - * - * Given a stack frame. Try to locate the object file - * ----------------------------------------------------------------------------- */ - -void wad_find_object(WadFrame *f) { - if (f->segment) { - f->object = wad_object_load(f->segment->mappath); - } -} - -/* ----------------------------------------------------------------------------- - * wad_file_check(void *addr) - * - * Given an address, this function checks to see if it corresponds to a file - * we already mapped. - * ----------------------------------------------------------------------------- */ - -int -wad_file_check(void *addr) { - WadFile *f = wad_files; - while (f) { - if ((((char *) f->addr) <= ((char *) addr)) && - (((char *) addr) < (((char *) f->addr) + f->size))) { - return 1; - } - f = f->next; - } - return 0; -} diff --git a/SWIG/Tools/WAD/Wad/return.c b/SWIG/Tools/WAD/Wad/return.c deleted file mode 100644 index 36bd0c9b6..000000000 --- a/SWIG/Tools/WAD/Wad/return.c +++ /dev/null @@ -1,69 +0,0 @@ -/* ----------------------------------------------------------------------------- - * return.c - * - * This file manages the set of return-points for the WAD signal handler. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* Maximum number of return points */ -#define WAD_NUMBER_RETURN 128 - -static WadReturnFunc return_points[WAD_NUMBER_RETURN]; -static int num_return = 0; - -void wad_set_return(const char *name, long value) { - WadReturnFunc *rp; - rp = &return_points[num_return]; - wad_strcpy(rp->name,name); - rp->value = value; - num_return++; - if (wad_debug_mode & DEBUG_RETURN) { - printf("wad: Setting return ('%s', %d)\n", name,value); - } -} - -void wad_set_returns(WadReturnFunc *rf) { - int i = 0; - while (strlen(rf[i].name)) { - wad_set_return(rf[i].name, rf[i].value); - i++; - } -} - -WadReturnFunc *wad_check_return(const char *name) { - int i; - if (!name) return 0; - for (i = 0; i < num_return; i++) { - if (strcmp(name,return_points[i].name) == 0) { - if (wad_debug_mode & DEBUG_RETURN) { - printf("wad: Found return ('%s', %d)\n", return_points[i].name, return_points[i].value); - } - return &return_points[i]; - } - } - return 0; -} - diff --git a/SWIG/Tools/WAD/Wad/segment.c b/SWIG/Tools/WAD/Wad/segment.c deleted file mode 100644 index 280ab7601..000000000 --- a/SWIG/Tools/WAD/Wad/segment.c +++ /dev/null @@ -1,227 +0,0 @@ -/* ----------------------------------------------------------------------------- - * segment.c - * - * This file provides access to the virtual memory map of a process - * including the location of the executable, data segments, shared - * libraries, and memory mapped regions. - * - * The primary purpose of this module is to collect this information - * and store it in a form that hides platform specific details (the - * WadSegment structure). - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* Include the proper code for reading the segment map */ - -#ifdef WAD_SOLARIS - -/* This code is used to read the process virtual memory map on Solaris machines */ - -static int -segment_open() { - int f; - f = open("/proc/self/map", O_RDONLY); - return f; -} - -static int -segment_read(int fs, WadSegment *s) { - int dz; - int n; - prmap_t pmap; - - n = read(fs, &pmap, sizeof(prmap_t)); - if (n <= 0) return 0; - s->mapname = wad_strdup(pmap.pr_mapname); - s->mappath = (char *) wad_malloc(20+strlen(pmap.pr_mapname)); - wad_strcpy(s->mappath,"/proc/self/object/"); - strcat(s->mappath,pmap.pr_mapname); - s->vaddr = (char *) pmap.pr_vaddr; - - /* This is a solaris oddity. a.out section starts 1 page up, but - symbols are relative to a base of 0 */ - - if (strcmp(s->mapname,"a.out") == 0) s->base = 0; - else s->base = s->vaddr; - - s->size = pmap.pr_size; - s->offset = pmap.pr_offset; - return 1; -} - -#endif /* WAD_SOLARIS */ - -#ifdef WAD_LINUX -static char linux_firstsegment[1024]; -static int linux_first = 1; - -static int -segment_open() { - FILE *f; - f = fopen("/proc/self/maps", "r"); - linux_first =1; - return (int) f; -} - -static int -segment_read(int fd, WadSegment *s) -{ - char pbuffer[1024]; - char *c; - int len; - FILE *fs = (FILE *) fd; - c = fgets(pbuffer,1024,fs); - if (!c) return 0; - - pbuffer[strlen(pbuffer)-1] = 0; /* Chop off endline */ - - /* Break up the field into records */ - /* 0-8 : Starting address - 9-17 : Ending Address - 18 : r - 19 : w - 20 : x - 21 : p - 23-31 : Offset - 49- : Filename */ - - len = strlen(pbuffer); - pbuffer[8] = 0; - pbuffer[17] = 0; - pbuffer[31] = 0; - if (len >= 49) { - s->mapname = wad_strdup(pbuffer+49); - s->mappath = s->mapname; - } else { - s->mapname = ""; - s->mappath = s->mapname; - } - if (linux_first) { - wad_strcpy(linux_firstsegment, s->mappath); - linux_first = 0; - } - s->vaddr = (char *) strtoul(pbuffer,NULL,16); - s->size = strtoul(pbuffer+9,NULL,16) - (long) (s->vaddr); - s->offset = strtoul(pbuffer+23,NULL,16); - if (strcmp(linux_firstsegment, s->mappath) == 0) { - s->base = 0; - } else { - s->base = s->vaddr; - } - s++; - return 1; -} - -#endif /* WAD_LINUX */ - -static WadSegment *segments = 0; /* Linked list of segments */ - -/* ----------------------------------------------------------------------------- - * wad_segment_read() - * - * Read all of the memory segments into a linked list. Any previous segment - * map is simply lost. The only way to reclaim this memory is to call - * wad_release_memory(). - * ----------------------------------------------------------------------------- */ - -int -wad_segment_read() { - int fs; - int n; - WadSegment *s, *lasts; - - segments = 0; - lasts = 0; - fs = segment_open(); - - while (1) { - s = (WadSegment *) wad_malloc(sizeof(WadSegment)); - skip: - n = segment_read(fs,s); - if (n <= 0) break; - if (wad_file_check(s->vaddr)) goto skip; /* Skip files we already loaded */ - s->next = 0; - if (!lasts) { - segments = s; - lasts = s; - } else { - lasts->next = s; - lasts = s; - } - if (wad_debug_mode & DEBUG_SEGMENT) { - wad_printf("wad_segment: read : %08x-%08x, base=%x in %s\n", s->vaddr, ((char *) s->vaddr) + s->size, s->base, s->mappath); - } - } - close(fs); - return 0; -} - -/* ----------------------------------------------------------------------------- - * wad_segment_find() - * - * Try to find the virtual memory segment corresponding to a virtual address. - * If a segment is mapped to a file, this function actually returns the *first* - * segment that is mapped. This is because symbol relocations are always - * performed relative to the beginning of the file (so we need the base address) - * ----------------------------------------------------------------------------- */ - -WadSegment * -wad_segment_find(void *vaddr) { - WadSegment *ls; - WadSegment *s; - char *addr = (char *)vaddr; - - s = segments; - ls = segments; - while (s) { - if (strcmp(s->mapname,ls->mapname) || (!strlen(ls->mapname))) { - ls = s; /* First segment for a given name */ - } - if ((addr >= s->vaddr) && (addr < (s->vaddr + s->size))) { - if (wad_debug_mode & DEBUG_SEGMENT) { - wad_printf("wad_segment: %08x --> %08x-%08x in %s\n", vaddr, s->vaddr, ((char *) s->vaddr) + s->size, s->mappath); - } - return ls; - } - s = s->next; - } - return 0; -} - -/* ----------------------------------------------------------------------------- - * wad_segment_valid() - * - * Checks to see if a memory address is valid or not based on data in the - * segment map - * ----------------------------------------------------------------------------- */ - -int wad_segment_valid(void *vaddr) { - return wad_segment_find(vaddr) ? 1 : 0; -} - - - - diff --git a/SWIG/Tools/WAD/Wad/signal.c b/SWIG/Tools/WAD/Wad/signal.c deleted file mode 100644 index ea3f92518..000000000 --- a/SWIG/Tools/WAD/Wad/signal.c +++ /dev/null @@ -1,520 +0,0 @@ -/* ----------------------------------------------------------------------------- - * signal.c - * - * WAD signal handler. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -extern void wad_stab_debug(); - -/* For some odd reason, certain linux distributions do not seem to define the - register constants in a way that is easily accessible to us. This is a hack */ - -#ifdef WAD_LINUX -#ifndef ESP -#define ESP 7 -#endif -#ifndef EBP -#define EBP 6 -#endif -#ifndef EIP -#define EIP 14 -#endif -#ifndef ESI -#define ESI 5 -#endif -#ifndef EDI -#define EDI 4 -#endif -#ifndef EBX -#define EBX 8 -#endif - -#endif - -/* Signal handling stack */ -#define STACK_SIZE 4*SIGSTKSZ -char wad_sig_stack[STACK_SIZE]; - -/* This variable is set if the signal handler thinks that the - heap has overflowed */ - -int wad_heap_overflow = 0; - -static void (*sig_callback)(int signo, WadFrame *data, char *ret) = 0; - -void wad_set_callback(void (*s)(int,WadFrame *,char *ret)) { - sig_callback = s; -} - -/* This bit of nastiness is used to make a non-local return from the - signal handler to a configurable location on the call stack. In a nutshell, - this works by repeatedly calling "restore" to roll back the - register windows and stack pointer. Then we fake a return value and - return to the caller as if the function had actually completed - normally. */ - -int wad_nlr_levels = 0; -static volatile int *volatile nlr_p = &wad_nlr_levels; -long wad_nlr_value = 0; -void (*wad_nlr_func)(void) = 0; - -/* Set the return value from another module */ -void wad_set_return_value(long value) { - wad_nlr_value = value; -} - -/* Set the return function */ -void wad_set_return_func(void(*f)(void)) { - wad_nlr_func = f; -} - -#ifdef WAD_SOLARIS -static void nonlocalret() { - long a; - - a = wad_nlr_value; - /* We never call this procedure as a function. This code - causes an immediate return if someone does this */ - - asm("jmp %i7 + 8"); - asm("restore"); - - /* This is the real entry point */ - /* asm(".globl _returnsignal");*/ - asm(".type _returnsignal,2"); - asm("_returnsignal:"); - - while (*nlr_p > 0) { - (*nlr_p)--; - asm("restore"); - } - - asm("sethi %hi(wad_nlr_value), %o0"); - asm("or %o0, %lo(wad_nlr_value), %o0"); - asm("ld [%o0], %i0"); - - /* If there is a non-local return function. We're going to go ahead - and transfer control to it */ - - if (wad_nlr_func) - (*wad_nlr_func)(); - - asm("jmp %i7 + 8"); - asm("restore"); - asm(".size _returnsignal,(.-_returnsignal)"); -} -#endif - -#ifdef WAD_LINUX - -/* Saved values of the machine registers */ - -long wad_saved_esi = 0; -long wad_saved_edi = 0; -long wad_saved_ebx = 0; - -static void nonlocalret() { - asm("_returnsignal:"); - while (*nlr_p > 0) { - (*nlr_p)--; - asm("leave"); - } - - if (wad_nlr_func) - (*wad_nlr_func)(); - - /* Restore the registers */ - asm("movl wad_saved_esi, %esi"); - asm("movl wad_saved_edi, %edi"); - asm("movl wad_saved_ebx, %ebx"); - asm("movl wad_nlr_value, %eax"); - asm("leave"); - asm("ret"); -} - -/* This function uses a heuristic to restore the callee-save registers on i386. - According to the Linux Assembly HOWTO, the %esi, %edi, %ebx, and %ebp registers - are callee-saved. All others are caller saved. To restore the callee-save - registers, we use the fact that the C compiler saves the callee-save registers - (if any) at the beginning of function execution. Therefore, we can scan the - instructions at the start of each function in the stack trace to try and find - where they are. - - The following heuristic is used: - - 1. Each function starts with a preamble like this which saves the %ebp - register: - - 55 89 e5 ---> push %ebp - mov %esp, %ebp - - 2. Next, space is allocated for local variables, using one of two schemes: - - 83 ec xx ---> Less than 256 bytes of local storage - ^^^ - length - - 81 ec xx xx xx xx --> More than 256 bytes of local storage - ^^^^^^^^^^^ - length - - 3. After this, a collection of 1-byte stack push op codes might appear - - 56 = pushl %esi - 57 = pushl %edi - 53 = pushl %ebx - - - Based on the size of local variable storage and the order in which - the %esi, %edi, and %ebx registers are pushed on the stack, we can - determine where in memory the registers are saved and restore them to - their proper values. -*/ - -void wad_restore_i386_registers(WadFrame *f, int nlevels) { - WadFrame *lastf = f; - int localsize = 0; - unsigned char *pc; - unsigned long *saved; - int i, j; - int pci; - for (i = 0; i <= nlevels; i++, f=f->next) { - - /* This gets the starting instruction for the stack frame */ - pc = (unsigned char *) f->sym_base; - /* printf("pc = %x, base = %x, %s\n", f->pc, f->sym_base, SYMBOL(f)); */ - if (!pc) continue; - - /* Look for the standard prologue 0x55 0x89 0xe5 */ - if ((pc[0] == 0x55) && (pc[1] == 0x89) && (pc[2] == 0xe5)) { - /* Determine the size */ - pci = 3; - if ((pc[3] == 0x83) && (pc[4] == 0xec)) { - /* printf("8-bit size\n");*/ - localsize = (int) pc[5]; - pci = 6; - } - if ((pc[3] == 0x81) && (pc[4] == 0xec)) { - /* printf("32-bit size\n"); */ - localsize = (int) *((long *) (pc+5)); - pci = 10; - } - saved = (long *) (f->fp - localsize - sizeof(long)); - /* printf("saved = %x, fp = %x\n", saved, f->fp); - printf("localsize = %d\n", localsize); - */ - for (j = 0; j < 3; j++, saved--, pci++) { - if (pc[pci] == 0x57) { - wad_saved_edi = *saved; - /* printf("restored edi = %x\n", wad_saved_edi); */ - } - else if (pc[pci] == 0x56) { - wad_saved_esi = *saved; - /* printf("restored esi = %x\n", wad_saved_esi); */ - } - else if (pc[pci] == 0x53) { - wad_saved_ebx = *saved; - /* printf("restored ebx = %x\n", wad_saved_ebx); */ - } - else break; - } - } - } -} - -#endif - -void wad_signalhandler(int sig, siginfo_t *si, void *vcontext) { - greg_t *pc; - greg_t *npc; - greg_t *sp; - greg_t *fp; -#ifdef WAD_LINUX - greg_t *esi; - greg_t *edi; - greg_t *ebx; -#endif - - unsigned long addr; - ucontext_t *context; - unsigned long p_sp; /* process stack pointer */ - unsigned long p_pc; /* Process program counter */ - unsigned long p_fp; /* Process frame pointer */ - int nlevels = 0; - int found = 0; - void _returnsignal(); - WadFrame *frame, *origframe; - char *framedata; - char *retname = 0; - unsigned long current_brk; - - /* Reset all of the signals while running WAD */ - wad_signal_clear(); - - wad_nlr_func = 0; - - context = (ucontext_t *) vcontext; - - wad_printf("WAD: Collecting debugging information...\n"); - - /* Read the segments */ - if (wad_segment_read() < 0) { - wad_printf("WAD: Unable to read segment map\n"); - return; - } - - if (wad_debug_mode & DEBUG_SIGNAL) { - wad_printf("WAD: siginfo = %x, context = %x\n", si, vcontext); - } - - current_brk = (long) sbrk(0); - - /* Get some information about the current context */ - -#ifdef WAD_SOLARIS - pc = &((context->uc_mcontext).gregs[REG_PC]); - npc = &((context->uc_mcontext).gregs[REG_nPC]); - sp = &((context->uc_mcontext).gregs[REG_SP]); -#endif - -#ifdef WAD_LINUX - sp = &((context->uc_mcontext).gregs[ESP]); /* Top of stack */ - fp = &((context->uc_mcontext).gregs[EBP]); /* Stack base - frame pointer */ - pc = &((context->uc_mcontext).gregs[EIP]); /* Current instruction */ - esi = &((context->uc_mcontext).gregs[ESI]); - edi = &((context->uc_mcontext).gregs[EDI]); - ebx = &((context->uc_mcontext).gregs[EBX]); - - wad_saved_esi = (unsigned long) (*esi); - wad_saved_edi = (unsigned long) (*edi); - wad_saved_ebx = (unsigned long) (*ebx); - - /* printf("esi = %x, edi = %x, ebx = %x\n", wad_saved_esi, wad_saved_edi, wad_saved_ebx); */ - - /* printf("&sp = %x, &pc = %x\n", sp, pc); */ -#endif - - /* Get some information out of the signal handler stack */ - addr = (unsigned long) si->si_addr; - - /* See if this might be a stack overflow */ - - p_pc = (unsigned long) (*pc); - p_sp = (unsigned long) (*sp); -#ifdef WAD_LINUX - p_fp = (unsigned long) (*fp); -#endif -#ifdef WAD_SOLARIS - p_fp = (unsigned long) *(((long *) p_sp) + 14); -#endif - - if (wad_debug_mode & DEBUG_SIGNAL) { - wad_printf("fault at address %x, pc = %x, sp = %x, fp = %x\n", addr, p_pc, p_sp, p_fp); - } - frame = wad_stack_trace(p_pc, p_sp, p_fp); - - if (!frame) { - /* We're really hosed. Not possible to generate a stack trace */ - wad_printf("WAD: Unable to generate stack trace.\n"); - wad_printf("WAD: Maybe the call stack has been corrupted by buffer overflow.\n"); - wad_signal_clear(); - return; - } - - { - WadFrame *f = frame; - while (f) { - wad_find_object(f); - wad_find_symbol(f); - f = f->next; - } - f = frame; - while (f) { - wad_find_debug(f); - wad_build_vars(f); - f = f->next; - } - } - wad_heap_overflow = 0; - if (sig == SIGSEGV) { - if (addr >= current_brk) wad_heap_overflow = 1; - } - - wad_stack_debug(frame); - - /* Generate debugging strings */ - wad_debug_make_strings(frame); - - wad_stab_debug(); - - /* Walk the exception frames and try to find a return point */ - origframe = frame; - while (frame) { - WadReturnFunc *wr = wad_check_return(frame->sym_name); - if (wr) { - found = 1; - wad_nlr_value = wr->value; - retname = wr->name; - } - if (found) { - frame->last = 1; /* Cut off top of the stack trace */ - break; - } - frame = frame->next; - nlevels++; - } - - - if (found) { - wad_nlr_levels = nlevels - 1; -#ifdef WAD_LINUX - wad_restore_i386_registers(origframe, wad_nlr_levels); -#endif - } else { - wad_nlr_levels = -1; - } - - wad_string_debug(); - wad_memory_debug(); - - /* Before we do anything with callbacks, we are going - to attempt to dump a wad-core */ - - { - int fd; - static int already = 0; - fd = open("wadtrace",O_WRONLY | O_CREAT | (already*O_APPEND) | ((already==0)*O_TRUNC),0666); - if (fd > 0) { - wad_dump_trace(fd,sig,origframe,retname); - close(fd); - already=1; - } - } - - if (sig_callback) { - (*sig_callback)(sig,origframe,retname); - } else { - /* No signal handler defined. Go invoke the default */ - - wad_default_callback(sig, origframe,retname); - } - - if (wad_debug_mode & DEBUG_HOLD) while(1); - - /* If we found a function to which we should return, we jump to - an alternative piece of code that unwinds the stack and - initiates a non-local return. */ - - if (wad_nlr_levels >= 0) { - *(pc) = (greg_t) _returnsignal; -#ifdef WAD_SOLARIS - *(npc) = *(pc) + 4; -#endif - if (!(wad_debug_mode & DEBUG_ONESHOT)) { - wad_signal_init(); - } - return; - } - exit(1); -} - - -/* ----------------------------------------------------------------------------- - * wad_signal_init() - * - * Resets the signal handler. - * ----------------------------------------------------------------------------- */ - -void wad_signal_init() { - struct sigaction newvec; - static stack_t sigstk; - static int initstack = 0; - - if (wad_debug_mode & DEBUG_INIT) { - wad_printf("WAD: Initializing signal handler.\n"); - } - /* This is buggy in Linux and threads. disabled by default */ - -#ifndef WAD_LINUX - - if (!initstack) { - /* Set up an alternative stack */ - - sigstk.ss_sp = (char *) wad_sig_stack; - sigstk.ss_size = STACK_SIZE; - sigstk.ss_flags = 0; - if (!(wad_debug_mode & DEBUG_NOSTACK)) { - if (sigaltstack(&sigstk, (stack_t*)0) < 0) { - perror("sigaltstack"); - } - } - initstack=1; - } -#endif - - sigemptyset(&newvec.sa_mask); - sigaddset(&newvec.sa_mask, SIGSEGV); - sigaddset(&newvec.sa_mask, SIGBUS); - sigaddset(&newvec.sa_mask, SIGABRT); - sigaddset(&newvec.sa_mask, SIGILL); - sigaddset(&newvec.sa_mask, SIGFPE); - newvec.sa_flags = SA_SIGINFO; - - if (wad_debug_mode & DEBUG_ONESHOT) { - newvec.sa_flags |= SA_RESETHAND; - } -#ifndef WAD_LINUX - if (!(wad_debug_mode & DEBUG_NOSTACK)) { - newvec.sa_flags |= SA_ONSTACK; - } -#endif - newvec.sa_sigaction = ((void (*)(int,siginfo_t *, void *)) wad_signalhandler); - if (sigaction(SIGSEGV, &newvec, NULL) < 0) goto werror; - if (sigaction(SIGBUS, &newvec, NULL) < 0) goto werror; - if (sigaction(SIGABRT, &newvec, NULL) < 0) goto werror; - if (sigaction(SIGFPE, &newvec, NULL) < 0) goto werror; - if (sigaction(SIGILL, &newvec, NULL) < 0) goto werror; - - return; - werror: - wad_printf("WAD: Couldn't install signal handler!\n"); -} - -/* ----------------------------------------------------------------------------- - * clear signals - * ----------------------------------------------------------------------------- */ - -void wad_signal_clear() { - signal(SIGSEGV, SIG_DFL); - signal(SIGBUS, SIG_DFL); - signal(SIGILL, SIG_DFL); - signal(SIGFPE, SIG_DFL); - signal(SIGABRT, SIG_DFL); -} - - - diff --git a/SWIG/Tools/WAD/Wad/stab.c b/SWIG/Tools/WAD/Wad/stab.c deleted file mode 100644 index 2ec75f100..000000000 --- a/SWIG/Tools/WAD/Wad/stab.c +++ /dev/null @@ -1,682 +0,0 @@ -/* ----------------------------------------------------------------------------- - * stab.c - * - * This file reads stabs data and looks for various properties of a - * given symbol. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* stabs data structure. This appears to be somewhat universal. */ -typedef struct Stab { - unsigned n_strx; /* index into file string table */ - unsigned char n_type; /* type flag (N_TEXT,..) */ - char n_other; /* used by N_SLINE stab */ - unsigned short n_desc; /* see stabs documentation */ - unsigned n_value; /* value of symbol (or sdb offset) */ -} Stab; - -/* stabs data types used by this module */ - -#define N_UNDF 0x0 /* undefined */ -#define N_FUN 0x24 /* function */ -#define N_OBJ 0x38 /* object file path */ -#define N_RSYM 0x40 /* Register symbol */ -#define N_SLINE 0x44 /* Source line */ -#define N_SO 0x64 /* Source file name */ -#define N_LSYM 0x80 /* Local symbol */ -#define N_PSYM 0xa0 /* Parameter */ -#define N_LBRAC 0xc0 /* Left brace */ -#define N_RBRAC 0xe0 /* Right brace */ - -/* ----------------------------------------------------------------------------- - * stabs type handler - * - * Type names are defined as N_LSYM types. We need to keep a hash table of - * logical type names and stabs type names. - * - * We also need to keep a hash table of stabs types. - * ----------------------------------------------------------------------------- */ - -typedef struct stabtype { - char *name; - char *value; - struct stabtype *next; - int visit; -} stabtype; - -#define HASH_SIZE 113 - -static int stab_type_init = 0; -static stabtype *lnames[HASH_SIZE]; /* Hash of local names */ -static stabtype *deadnames[HASH_SIZE]; /* Hash of dead names */ - -/* Initialize the hash table */ - -static void init_hash() { - int i; - stabtype *s, *sp = 0; - - for (i = 0; i < HASH_SIZE; i++) { - if (stab_type_init) { - /* Add stabs to dead list */ - s = lnames[i]; - sp = 0; - while (s) { - sp = s; - s = s->next; - } - if (sp) { - sp->next = deadnames[i]; - deadnames[i] = lnames[i]; - } - } - lnames[i] = 0; - } - stab_type_init = 1; -} - -static int thash(char *name) { - unsigned int h = 0; - int i; - for (i = 0; i < 8 && (*name); i++, name++) { - h = ((h << 7) + *name); - } - return (h % HASH_SIZE); -} - -/* Add a symbol to the hash */ - -static void type_add(char *name, char *value) { - int h; - stabtype *s; - char sc =0; - char *v; - char *vr; - char *split; - - if (!stab_type_init) { - init_hash(); - stab_type_init = 1; - } - - /* Split the "value" up into a type name and a value */ - - split = strchr(value,'='); - if (value[0] != '(') split = 0; - if (split) { - sc = *split; - v = value; - *split = 0; - vr = split+1; - } else { - v = value; - sc = 0; - vr = 0; - } - - h = thash(name); - s = lnames[h]; - while (s) { - if (strcmp(s->name,name) == 0) { - if (strcmp(s->value,v)) { - s->value = wad_string_lookup(v); - } - goto add_more; - } - s = s->next; - } - s = deadnames[h]; - if (!s) { - s = (stabtype *) wad_malloc(sizeof(stabtype)); - } else { - deadnames[h] = s->next; - } - s->name = wad_string_lookup(name); - s->value = wad_string_lookup(v); - s->next = lnames[h]; - s->visit = 0; - lnames[h] = s; - - /* Now take a look at the value. If it is contains other types, we might be able to define more stuff */ - add_more: - if (vr) { - /* There is a mapping to another type */ - type_add(v,vr); - } -} - -static -char *type_resolve(char *name) { - int h; - stabtype *s; - h = thash(name); - s = lnames[h]; - while(s) { - if (strcmp(s->name,name) == 0) { - if (!s->visit) { - char *c; - /* The visit flag is set so that we don't get in infinite loops */ - s->visit = 1; - c = type_resolve(s->value); - s->visit = 0; - return c; - } else { - return name; - } - } - s = s->next; - } - return name; -} - -/* This function tries to resolve base stabs types into a machine equivalent */ -static -int type_typecode(char *name) { - char *range; - - if (name[0] == '*') { - return WAD_TYPE_POINTER; - } - - range = strchr(name,';'); - if (!range) return WAD_TYPE_UNKNOWN; - range++; - - if (name[0] == 'r') { - /* GNU-style range specifiers */ - if ( - (strcmp(range,"0000000000000;0037777777777;") == 0) - ) { - return WAD_TYPE_UINT32; - } - if ( - (strcmp(range,"0020000000000;0017777777777;") == 0) - ) { - return WAD_TYPE_INT32; - } - if ( - (strcmp(range,"-32768;32767;") == 0) - ) { - return WAD_TYPE_INT16; - } - if ( - (strcmp(range,"0;65535;") == 0) - ) { - return WAD_TYPE_UINT16; - } - if ( - (strcmp(range,"0;127;") == 0) - ) { - return WAD_TYPE_CHAR; - } - if ( - (strcmp(range,"-128;127;") == 0) - ) { - return WAD_TYPE_INT8; - } - if ( - (strcmp(range,"0;255;") == 0) - ) { - return WAD_TYPE_UINT8; - } - if ( - (strcmp(range,"4;0;") == 0) - ) { - return WAD_TYPE_FLOAT; - } - if ( - (strcmp(range,"8;0;") == 0) - ) { - return WAD_TYPE_DOUBLE; - } - } - /* Traditional built-in types */ - if (strcmp(name,"bs4;0;32;") == 0) { - return WAD_TYPE_INT32; - } - if (strcmp(name,"bs2;0;16;") == 0) { - return WAD_TYPE_INT16; - } - if (strcmp(name,"bs1;0;8;") == 0) { - return WAD_TYPE_INT8; - } - if (strcmp(name,"bsc1;0;8;") == 0) { - return WAD_TYPE_CHAR; - } - if (strcmp(name,"bu4;0;32;") == 0) { - return WAD_TYPE_UINT32; - } - if (strcmp(name,"bu2;0;16;") == 0) { - return WAD_TYPE_UINT16; - } - if (strcmp(name,"bu1;0;8;") == 0) { - return WAD_TYPE_UINT8; - } - if (strcmp(name,"R1;4;") == 0) { - return WAD_TYPE_FLOAT; - } - if (strcmp(name,"R2;8;") == 0) { - return WAD_TYPE_DOUBLE; - } - return WAD_TYPE_UNKNOWN; -} - -static void types_print() { - stabtype *s; - int i; - for (i = 0; i < HASH_SIZE; i++) { - s = lnames[i]; - while (s) { - wad_printf("%20s %s\n", s->name, s->value); - s = s->next; - } - } -} - -void wad_stab_debug() { - /* types_print();*/ -} - -/* ----------------------------------------------------------------------------- - * match_stab_symbol() - * - * Match a stabs symbol name against a stab string. The stab string may contain - * extra information delimited by a colon which is not used in the comparsion. - * Returns 1 on match, 0 on mismatch. - * ----------------------------------------------------------------------------- */ - -static int -match_stab_symbol(char *symbol, char *stabtext, int slen) { - if (strcmp(symbol,stabtext) == 0) { - return 1; - } - if ((strncmp(symbol, stabtext, slen) == 0) && (*(stabtext+slen) == ':')) return 1; - return 0; -} - -static char * -stab_string_parm(char *str) { - return strchr(str,':'); -} - -/* ----------------------------------------------------------------------------- - * stab_symbol(Stab *s, char *stabstr) - * - * Process stab symbol specifier N_LSYM - * ----------------------------------------------------------------------------- */ - -static void -stab_symbol(Stab *s, char *stabstr) { - char *str; - char *pstr; - char name[1024]; - char value[65536]; - - str = stabstr+s->n_strx; - pstr = stab_string_parm(str); - if (!pstr) return; - - strncpy(name,str, pstr-str); - name[(int)(pstr-str)] = 0; - if ((pstr[1] == 't') || (pstr[1] == 'p') || (pstr[1] == 'r')) { - /* A stabs type definition */ - /* printf("stab lsym: other=%d, desc=%d, value=%d, str='%s'\n", s->n_other,s->n_desc,s->n_value, - stabstr+s->n_strx); */ - /* wad_printf("name = '%s', pstr='%s'\n", name, pstr+2); */ - wad_strcpy(value,pstr+2); - type_add(name,value); - } -} - - -/* ----------------------------------------------------------------------------- - * scan_function() - * - * Collect stabs data for a function definition. - * ----------------------------------------------------------------------------- */ - -static int -scan_function(Stab *s, char *stabstr, int ns, WadFrame *f) { - int i; - unsigned long offset; - int get_parms = 1; - int nbrace = 0; - - offset = f->pc - f->sym_base; - if (wad_debug_mode & DEBUG_STABS) { - wad_printf("---[ %s ] --------------\n", f->sym_name); - } - - for (i = 0; i < ns; i++,s++) { - if (wad_debug_mode & DEBUG_STABS) { - wad_printf(" %10d %10x %10d %10d %10d: '%s'\n", s->n_strx, s->n_type, s->n_other, s->n_desc, s->n_value, - stabstr+s->n_strx); - - } - - if ((s->n_type == N_UNDF) || (s->n_type == N_SO) || /* (s->n_type == N_FUN) || */ - (s->n_type == N_OBJ)) return i; - - if ((s->n_type == N_FUN) && !(strlen(stabstr+s->n_strx))) return 1; - - if (s->n_type == N_LBRAC) { - nbrace++; - get_parms = 0; - } - if (s->n_type == N_RBRAC) { - nbrace--; - if (nbrace <= 0) return i; - } - /* Local variable declaration */ - - if (s->n_type == N_LSYM) { - /* This might be a local variable definition */ - /* wad_printf("local: n_value = %d, offset = %d\n", s->n_value, offset);*/ - if (s->n_desc <= f->loc_line) - { - /* Okay. We can pay attention to it */ - char *pname; - char *c; - int len; - WadLocal *arg, *a; - pname = stabstr+s->n_strx; - c = strchr(pname,':'); - if (*(c+1) != '(') continue; - if (c) { - len = (c-pname); - } else { - len = strlen(pname); - } - /* printf("local\n"); */ - stab_symbol(s,stabstr); - a = f->debug_locals; - while (a) { - if ((strncmp(a->name,pname,len) == 0) && (strlen(a->name) == len)) { - /* We already saw this argument. Given a choice between a register and a stack - argument. We will choose the stack version */ - a->loc = PARM_STACK; - a->stack = s->n_value; - break; - } - a = a->next; - } - if (a) continue; /* We got an argument match. Just skip to the next stab */ - arg = (WadLocal *) wad_malloc(sizeof(WadLocal)); - { - char t = pname[len]; - pname[len] = 0; - arg->name = wad_string_lookup(pname); - pname[len] = t; - } - arg->loc = PARM_STACK; - arg->line = s->n_desc; - arg->stack = s->n_value; - arg->type = 0; - arg->next = 0; - { - char tname[128]; - char *t = tname; - - c+=1; - while ((*c) && (*c != '=')) { - *t++ = *c++; - } - *t = 0; - t = type_resolve(tname); - arg->type = type_typecode(t); - if (wad_debug_mode & DEBUG_STABS) { - wad_printf("type_resolve '%s' -> '%s' (%d)\n", tname, t, arg->type); - } - } - if (f->debug_locals) { - f->debug_lastlocal->next = arg; - f->debug_lastlocal = arg; - } else { - f->debug_locals = arg; - f->debug_lastlocal = arg; - f->debug_nlocals= 0; - } - f->debug_nlocals++; - } - } - - if (s->n_type == N_SLINE) { - get_parms = 0; - if (s->n_value <= offset) { - f->loc_line = s->n_desc; - } - } else if (((s->n_type == N_PSYM) || (s->n_type == N_RSYM)) && get_parms) { - /* Parameter counting */ - char *pname; - char *c; - int len; - WadLocal *arg; - pname = stabstr+s->n_strx; - c = strchr(pname,':'); - if (c) { - len = (c-pname); - } else { - len = strlen(pname); - } - /* Get type information */ - - stab_symbol(s,stabstr); - - /* Check if the argument was already used */ - /* In this case, the first stab simply identifies an argument. The second - one identifies its location for the debugger */ - - { - /* Need to do some fix up for linux here */ - WadLocal *a = f->debug_args; - while (a) { - if ((strncmp(a->name,pname,len) == 0) && (strlen(a->name) == len)) { - /* We already saw this argument. Given a choice between a register and a stack - argument. We will choose the stack version */ - - if (a->loc == PARM_STACK) { - break; - } - /* Go ahead and use the new argument */ - if (s->n_type == N_RSYM) { - a->loc = PARM_REGISTER; - a->reg = s->n_value; - } else { - a->loc = PARM_STACK; - a->stack = s->n_value; - } - break; - } - a = a->next; - } - if (a) continue; /* We got an argument match. Just skip to the next stab */ - } - - arg = (WadLocal *) wad_malloc(sizeof(WadLocal)); - { - char t = pname[len]; - pname[len] = 0; - arg->name = wad_string_lookup(pname); - pname[len] = t; - } - if (s->n_type == N_RSYM) { - arg->loc = PARM_REGISTER; - arg->reg = s->n_value; - arg->stack = 0; - } else { - arg->loc = PARM_STACK; - arg->line = s->n_desc; - arg->stack = s->n_value; - } - arg->type = 0; - arg->next = 0; - { - char tname[128]; - char *t = tname; - - c+=2; - while ((*c) && (*c != '=')) { - *t++ = *c++; - } - *t = 0; - t = type_resolve(tname); - arg->type = type_typecode(t); - if (wad_debug_mode & DEBUG_STABS) { - wad_printf("type_resolve '%s' -> '%s' (%d)\n", tname, t, arg->type); - } - } - if (f->debug_args) { - f->debug_lastarg->next = arg; - f->debug_lastarg = arg; - } else { - f->debug_args = arg; - f->debug_lastarg = arg; - f->debug_nargs= 0; - } - f->debug_nargs++; - } - } - return i; -} - -/* Given a stabs data segment (obtained somehow), this function tries to - collect as much information as it can about a given symbol. - - s points to the stab data. stabstr points to the stab string section, - ns is the size of the stab section, symbol is the item of interest, - and offset is the offset in the object file of the symbol - - Note: this function may recurse upon itself if there are multiple - stabs sections. - - Note: If a symbol corresponds to a local symbol, it's entirely possible - that the only stabs data we will find is a file specifier. In this case, - */ - -int -wad_search_stab(void *sp, int size, char *stabstr, WadFrame *f) { - Stab *s; - int ns; - int i; - int found = 0; - - char *file, *lastfile = 0; - - char srcfile[MAX_PATH]; - char objfile[MAX_PATH]; - - /* It appears to be necessary to clear the types table on each new stabs section */ - - init_hash(); - - if (!f->sym_name) return 0; - - s = (Stab *) sp; /* Stabs data */ - ns = size/sizeof(Stab); /* number of stabs */ - - srcfile[0] = 0; - objfile[0] = 0; - - for (i = 0; i < ns; i++, s++) { - if (wad_debug_mode & DEBUG_STABS) { - /* wad_printf(" %10d %10x %10d %10d %10d: '%s'\n", s->n_strx, s->n_type, s->n_other, s->n_desc, s->n_value, - stabstr+s->n_strx); */ - - } - if (s->n_type == N_LSYM) { - stab_symbol(s,stabstr); - continue; - } - if ((s->n_type == N_UNDF)) { /* && (s->n_desc >= 0)) { */ - /* New stabs section. We need to be a little careful here. Do a recursive - search of the subsection. */ - - if (wad_search_stab(s+1,s->n_desc*sizeof(Stab), stabstr, f)) { - return 1; - } - - /* On solaris, each stabs section seems to increment the stab string pointer. On Linux, - the linker seems to do a certain amount of optimization that results in a single - string table. */ - -#ifdef WAD_SOLARIS - stabstr += s->n_value; /* Update the string table location*/ -#endif - i += s->n_desc; - s += s->n_desc; - objfile[0] = 0; - srcfile[0] = 0; - continue; - } else if (s->n_type == N_SO) { - /* Source file specification */ - /* Look for directory */ - file = stabstr+s->n_strx; - if (strlen(file) && (file[strlen(file)-1] == '/')) { - wad_strcpy(srcfile,file); - } else { - wad_strcat(srcfile,file); - } - objfile[0] = 0; - /* If we have a file match, we might be looking for a local symbol. If so, - we'll go ahead and set the srcfile field of the frame */ - - /* We're going to check for a file match. Maybe we're looking for a local symbol */ - if (f->sym_file && strcmp(f->sym_file,file) == 0) { - found = 1; - } - lastfile = file; - } else if (s->n_type == N_OBJ) { - /* Object file specifier */ - if (objfile[0]) { - wad_strcat(objfile,"/"); - } - wad_strcat(objfile,stabstr+s->n_strx); - } else if (s->n_type == N_FUN) { - if (match_stab_symbol(f->sym_name, stabstr+s->n_strx, f->sym_nlen)) { - if (!f->sym_file || (strcmp(f->sym_file,lastfile) == 0)) { - int n; - /* Go find debugging information for the function */ - n = scan_function(s+1, stabstr, ns -i - 1, f); - f->loc_srcfile = wad_string_lookup(srcfile); - f->loc_objfile = wad_string_lookup(objfile); - return 1; - } - } - } - } - /* If found, but no other debugging information was filled in, go ahead and copy the - source and objfile information */ - - if ((found) && (!f->debug_check)) { - f->loc_srcfile = wad_string_lookup(srcfile); - f->loc_objfile = wad_string_lookup(objfile); - } - return found; -} - - - - diff --git a/SWIG/Tools/WAD/Wad/stack.c b/SWIG/Tools/WAD/Wad/stack.c deleted file mode 100644 index 3c49a2938..000000000 --- a/SWIG/Tools/WAD/Wad/stack.c +++ /dev/null @@ -1,309 +0,0 @@ -/* ----------------------------------------------------------------------------- - * stack.c - * - * This file unwinds the C call stack and creates a list of stack frames. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* ----------------------------------------------------------------------------- - * new_frame() - * - * Create a new stack frame object and initialize all of the fields. - * ----------------------------------------------------------------------------- */ - -static WadFrame * -new_frame() { - WadFrame *f; - f = (WadFrame *) wad_malloc(sizeof(WadFrame)); - f->frameno = 0; - f->segment = 0; - f->object = 0; - f->pc = 0; - f->sp = 0; - f->sp = 0; - f->stack = 0; - f->stack_size = 0; - - f->sym_name = 0; - f->sym_nlen = 0; - f->sym_file = 0; - f->sym_base = 0; - f->sym_size = 0; - f->sym_type = 0; - f->sym_bind = 0; - - f->loc_objfile = 0; - f->loc_srcfile = 0; - f->loc_line = 0; - - f->debug_check = 0; - f->debug_nargs = -1; - f->debug_args = 0; - f->debug_lastarg = 0; - f->debug_nlocals = 0; - f->debug_locals = 0; - f->debug_lastlocal = 0; - f->debug_str = 0; - f->debug_srcstr = 0; - - f->last = 0; - f->next = 0; - f->prev = 0; - return f; -} - -/* ----------------------------------------------------------------------------- - * stack_unwind() - * - * This function performs a single level of stack unwinding given the stack pointer - * frame pointer and program counter. Validations are made to make sure the stack - * and frame pointers are in valid memory. Updates the values of the sp, pc, and fp - * in-place. Returns a stack frame object on success, 0 if memory is invalid - * or the end of the stack has been reached. - * ----------------------------------------------------------------------------- */ - -static WadFrame * -stack_unwind(unsigned long *pc, unsigned long *sp, unsigned long *fp) { - WadSegment *sp_seg, *fp_seg; - WadFrame *f; - unsigned long fake_fp; - - if (wad_debug_mode & DEBUG_UNWIND) { - wad_printf("::: stack unwind : pc = %x, sp = %x, fp = %x\n", *pc, *sp, *fp); - } - - /* Verify that the sp and fp are in mapped memory */ - sp_seg = wad_segment_find((void *) *sp); - fp_seg = wad_segment_find((void *) *fp); - - /* Make sure the stack pointer is in memory */ - if (!sp_seg) { - return 0; - } - - if (!fp_seg) { - /* Hmmm. If no frame pointer, we must be off the top of the call stack */ - fake_fp = (unsigned long) (sp_seg->vaddr + sp_seg->size); - fp_seg = sp_seg; - } else { - fake_fp = *fp; - } - if (sp_seg != fp_seg) { - /* Whoa. Stack pointer and frame pointer are in different memory segments. */ - wad_printf("WAD: Warning. Stack pointer and frame pointer are in different regions.\n"); - return 0; - } - - /* Check to see if the PC is valid */ - if (!wad_segment_valid((void *) *pc)) { - return 0; - } - - f = new_frame(); - f->pc = *pc; - f->sp = *sp; - f->fp = fake_fp; - f->segment = wad_segment_find((void *) *pc); - f->stack_size = fake_fp - *sp; - /* Make a copy of the call stack */ - f->stack = (char *) wad_malloc(f->stack_size); - wad_memcpy(f->stack,(void *) *sp, f->stack_size); - - /* Update the sp, fp, and pc */ - -#ifdef WAD_SOLARIS - *pc = *((unsigned long *) *sp+15); /* %i7 - Return address */ - *sp = *((unsigned long *) *sp+14); /* %i6 - frame pointer */ - if (wad_segment_valid((void *) *sp)) { - *fp = *((unsigned long *) *sp+14); - } else { - *fp = 0; - } -#endif - -#ifdef WAD_LINUX - if (wad_segment_valid((void *) ((unsigned long *) *fp+1))) { - *pc = *((unsigned long *) *fp+1); - *sp = *fp; - } else { - *sp = 0; - } - if (wad_segment_valid((void *) ((unsigned long *) *fp))) { - *fp = *((unsigned long *) *fp); - } else { - *fp = 0; - } -#endif - return f; -} - -/* ----------------------------------------------------------------------------- - * wad_stack_trace() - * - * Create a stack trace of the process. Returns a linked list of stack frames - * with a limited about debugging information and other details. - * ----------------------------------------------------------------------------- */ - -WadFrame * -wad_stack_trace(unsigned long pc, unsigned long sp, unsigned long fp) { - WadFrame *firstframe=0, *lastframe=0, *frame=0; - unsigned long p_pc; - unsigned long p_sp; - unsigned long p_fp; - int n = 0; - - /* Try to do a stack traceback */ - - p_pc = pc; - p_sp = sp; - p_fp = fp; - - while ((frame = stack_unwind(&p_pc, &p_sp, &p_fp))) { - /* Got a frame successfully */ - frame->frameno = n; - if (lastframe) { - lastframe->next = frame; - frame->prev = lastframe; - lastframe = frame; - } else { - firstframe = frame; - lastframe = frame; - } - n++; - } - if (lastframe) - lastframe->last = 1; - return firstframe; -} - -/* ----------------------------------------------------------------------------- - * wad_stack_debug() - * - * Make a dump of a stack trace - * ----------------------------------------------------------------------------- */ - -void wad_stack_debug(WadFrame *frame) { - if (wad_debug_mode & DEBUG_STACK) { - /* Walk the exception frames and try to find a return point */ - while (frame) { - /* Print out detailed stack trace information */ - wad_printf("::: Stack frame - 0x%08x :::\n", frame); - wad_printf(" pc = %x\n", frame->pc); - wad_printf(" sp = %x\n", frame->sp); - wad_printf(" fp = %x\n", frame->fp); - wad_printf(" stack = %x\n", frame->stack); - wad_printf(" size = %x\n", frame->stack_size); - wad_printf(" segment = %x (%s)\n", frame->segment, frame->segment ? frame->segment->mappath : "?"); - wad_printf(" object = %x (%s)\n", frame->object, frame->object ? frame->object->path : "?"); - - if (frame->sym_name) { - wad_printf(" sym_name = %s\n", frame->sym_name); - wad_printf(" sym_base = %x\n", frame->sym_base); - wad_printf(" sym_size = %x\n", frame->sym_size); - wad_printf(" sym_bind = %x\n", frame->sym_bind); - wad_printf(" sym_file = %s\n", frame->sym_file ? frame->sym_file : ""); - } - - if (frame->loc_srcfile) { - wad_printf(" loc_srcfile = %s\n", frame->loc_srcfile); - } - - if (frame->loc_objfile) { - wad_printf(" loc_objfile = %s\n", frame->loc_objfile); - } - wad_printf(" loc_line = %d\n", frame->loc_line); - - - wad_printf(" debug_nargs = %d\n", frame->debug_nargs); - if (frame->debug_args) { - int i = 0; - WadLocal *p = frame->debug_args; - wad_printf(" debug_args = [ \n"); - while (p) { - wad_printf(" arg[%d] : name = '%s', loc = %d, type = %d, stack = %d, reg = %d, line=%d, ptr=%x(%d)\n", i, p->name, p->loc, p->type, p->stack,p->reg,p->line,p->ptr,p->size); - p = p->next; - } - } - wad_printf(" ]\n"); - - wad_printf(" debug_nlocal = %d\n", frame->debug_nlocals); - if (frame->debug_locals) { - int i = 0; - WadLocal *p = frame->debug_locals; - wad_printf(" debug_locals = [ \n"); - while (p) { - wad_printf(" loc[%d] : name = '%s', loc = %d, type = %d, stack = %d, reg = %d, line=%d, ptr=%x(%d)\n", i, p->name, p->loc, p->type, p->stack,p->reg,p->line,p->ptr,p->size); - p = p->next; - } - } - wad_printf(" ]\n"); - - frame = frame->next; - } - } -} - - -/* ----------------------------------------------------------------------------- - * wad_steal_outarg() - * - * Steal an output argument - * ----------------------------------------------------------------------------- */ - -long -wad_steal_outarg(WadFrame *f, char *symbol, int argno, int *error) { - long *regs; - WadFrame *lastf = 0; - - *error = 0; - /* Start searching */ - while (f) { - if (f->sym_name && (strcmp(f->sym_name,symbol) == 0)) { - /* Got a match */ - if (lastf) { -#ifdef WAD_SOLARIS - regs = (long *) lastf->stack; - return regs[8+argno]; -#endif -#ifdef WAD_LINUX - regs = (long *) f->stack; - return regs[argno+2]; -#endif - } - } - lastf = f; - f = f->next; - } - *error = -1; - return 0; -} - - - - - - - diff --git a/SWIG/Tools/WAD/Wad/string.c b/SWIG/Tools/WAD/Wad/string.c deleted file mode 100644 index 277340ffd..000000000 --- a/SWIG/Tools/WAD/Wad/string.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ----------------------------------------------------------------------------- - * string.c - * - * This file provides support for string storage in WAD. Since strings are - * used frequently in WAD, this file implements string interning and - * some lookup functions that can be used to return a previously stored - * string rather than making a new copy. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* Hash table containing stab strings and such */ -typedef struct stringtype { - char *str; - struct stringtype *next; -} stringtype; - -#define STRING_HASH_SIZE 1013 - -static stringtype *strings[STRING_HASH_SIZE]; -static int strings_init = 0; - -static int shash(char *name) { - unsigned int h = 0; - char *c; - int i; - c = name; - for (i = 0; (i < 16) && (*c); i++, c++) { - h = ((h^~i) << 6) + *c; - } - return h % STRING_HASH_SIZE; -} - -char * -wad_string_lookup(char *s) { - int h; - int i; - stringtype *st; - - if (!strings_init) { - for (i = 0; i < STRING_HASH_SIZE; i++) { - strings[i] = 0; - } - strings_init = 1; - } - - h = shash(s); - st = strings[h]; - while (st) { - if (strcmp(st->str,s) == 0) return st->str; - st = st->next; - } - - /* Not found. Add the string to the hash table */ - st = (stringtype *) wad_malloc(sizeof(stringtype)); - st->str = wad_strdup(s); - st->next = strings[h]; - strings[h] = st; - return st->str; -} - -void wad_string_debug() { - if (wad_debug_mode & DEBUG_STRING) { - int maxdepth = 0; - int total = 0; - int stringlen = 0; - int i; - - for (i = 0; i < STRING_HASH_SIZE; i++) { - stringtype *s; - int c = 0; - s = strings[i]; - while (s) { - c++; - stringlen += strlen(s->str); - s = s->next; - } - /* wad_printf("WAD: stringhash[%d] = %d\n", i, c);*/ - if (c > maxdepth) maxdepth = c; - total += c; - } - wad_printf("WAD: nstrings = %d (%d bytes)\n", total, stringlen + total*sizeof(stringtype)); - wad_printf("WAD: maxdepth = %d\n", maxdepth); - } -} - -/* Our own string copy */ -char *wad_strcpy(char *t, const char *s) { - if (s) - for (; *s; s++, t++) *t = *s; - *t = 0; - return t; -} - -char * -wad_strcat(char *t, const char *s) { - while (*t) t++; - return wad_strcpy(t,s); -} - -int -wad_strlen(const char *s) { - int count = 0; - while (*(s++)) count++; - return count; -} - - - diff --git a/SWIG/Tools/WAD/Wad/vars.c b/SWIG/Tools/WAD/Wad/vars.c deleted file mode 100644 index a1eab0027..000000000 --- a/SWIG/Tools/WAD/Wad/vars.c +++ /dev/null @@ -1,271 +0,0 @@ -/* ----------------------------------------------------------------------------- - * vars.c - * - * This file examines the stack trace and tries to make some sense out of - * collected debugging information. This includes locating the data on - * the stack and/or registers. - * - * This feature is detached from the debugging info collector to make - * it independent of debugging formats. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago. - * - * This 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. - * - * 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser 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 - * - * See the file COPYING for a complete copy of the LGPL. - * ----------------------------------------------------------------------------- */ - -#include "wad.h" - -static char cvs[] = "$Header$"; - -/* ----------------------------------------------------------------------------- - * wad_build_vars() - * - * Build variable information for a single stack frame - * ----------------------------------------------------------------------------- */ - -void wad_build_vars(WadFrame *f) { - char *stack = 0; - char *nstack = 0; - char *pstack = 0; - WadLocal *loc; - int n; - - stack = (char *) f->stack; - if (f->next) { - nstack = (char *) f->next->stack; - } - if (f->prev) { - pstack = (char *) f->prev->stack; - } - - for (n = 0; n < 2; n++) { - if (n == 0) loc = f->debug_args; - else loc = f->debug_locals; - - while (loc) { - loc->ptr = 0; - if (loc->loc == PARM_STACK) { - if ((loc->stack >= 0) && (nstack)) { - loc->ptr = (void *) (nstack + loc->stack); - } else if (loc->stack < 0) { - loc->ptr = (void *) (stack + f->stack_size + loc->stack); - } - loc->size = sizeof(long); - } - if (loc->loc == PARM_REGISTER) { - /* Parameter is located in a register */ -#ifdef WAD_SOLARIS - if ((loc->reg >= 24) && (loc->reg < 32)) { - /* Value is located in the %in registers. */ - loc->ptr = (void *) (stack + (loc->reg - 16)*sizeof(int)); - loc->size = sizeof(int); - } else if ((loc->reg >= 8) && (loc->reg < 16)) { - - /* Value is located in the %on registers */ - if (nstack) { - loc->ptr = (void *) (stack + (loc->reg)*sizeof(int)); - loc->size = sizeof(int); - } - } else if ((loc->reg >= 16) && (loc->reg < 24)) { - /* Value has been placed in the %ln registers */ - loc->ptr = (void *) (stack + (loc->reg - 16)*sizeof(int)); - loc->size = sizeof(int); - } -#endif - } - loc = loc->next; - } - } -} - -/* This function creates a formatted integer given a pointer, size, and sign flag */ -static -char *wad_format_int(char *ptr, int nbytes, int sgn) { - static char fmt[128]; - unsigned char *s; - int incr; - unsigned long value = 0; - int i; - -#ifdef WAD_LITTLE_ENDIAN - s = (unsigned char *) (ptr + nbytes - 1); - incr = -1; -#else - s = (unsigned char *) (ptr); - incr = +1; -#endif - for (i = 0; i < nbytes; i++, s += incr) { - value = (value << 8) + *s; - } - if (sgn) { - return wad_format_signed((long) value,-1); - } else { - return wad_format_unsigned((unsigned long) value, -1); - } - return fmt; -} - -/* Try to make a formatted version of a local */ -char *wad_format_var(WadLocal *l) { - static char hexdigits[] = "0123456789abcdef"; - static char buffer[1024]; - double dval; - float fval; - - buffer[0] = 0; - - switch(l->type) { - case WAD_TYPE_INT32: - wad_strcpy(buffer,wad_format_int(l->ptr,4,1)); - break; - case WAD_TYPE_UINT32: - wad_strcpy(buffer,wad_format_int(l->ptr,4,0)); - break; - case WAD_TYPE_INT16: - wad_strcpy(buffer,wad_format_int(l->ptr,2,1)); - break; - case WAD_TYPE_UINT16: - wad_strcpy(buffer,wad_format_int(l->ptr,2,0)); - break; - case WAD_TYPE_INT8: - wad_strcpy(buffer,wad_format_int(l->ptr,1,1)); - break; - case WAD_TYPE_UINT8: - wad_strcpy(buffer,wad_format_int(l->ptr,1,0)); - break; - case WAD_TYPE_CHAR: - buffer[0] = '\''; - buffer[1] = *((char *) l->ptr); - buffer[2] = '\''; - buffer[3] = 0; - break; - case WAD_TYPE_FLOAT: - wad_memcpy(&fval,l->ptr,sizeof(float)); - sprintf(buffer,"%g",fval); - break; - case WAD_TYPE_DOUBLE: - wad_memcpy(&dval,l->ptr,sizeof(double)); - sprintf(buffer,"%g",dval); - break; - case WAD_TYPE_UNKNOWN: - case WAD_TYPE_POINTER: - default: - /* Hmmm. Unknown data type. We'll just treat it as a word */ - if (l->ptr) { - int incr,i; - int b; - int leading = 1; - char *c; - char *ptr; - -#ifdef WAD_LITTLE_ENDIAN - ptr = ((char *) l->ptr) + 3; - incr = -1; -#else - ptr = (char *) l->ptr; - incr =1 ; -#endif - wad_strcat(buffer,"0x"); - c = buffer+2; - for (i = 0; i < sizeof(void *); i++) { - b = (int) *ptr; - if (!leading || (b)) { - if (!leading || (b & 0xf0)) - *(c++) = hexdigits[(b & 0xf0) >> 4]; - *(c++) = hexdigits[(b & 0xf)]; - leading = 0; - } - ptr += incr; - } - if (leading) - *(c++) = '0'; - - *c = 0; - } - } - return buffer; -} - -/* Convert a wad local variable to a long */ -long wad_local_as_long(WadLocal *loc) { - long value = 0; - int32 i32; - int16 i16; - int8 i8; - uint32 u32; - uint16 u16; - uint8 u8; - - switch(loc->type) { - case WAD_TYPE_INT32: - wad_memcpy(&i32,loc->ptr,4); - value = (long) i32; - break; - case WAD_TYPE_UINT32: - wad_memcpy(&u32,loc->ptr,4); - value = (long) u32; - break; - case WAD_TYPE_INT16: - wad_memcpy(&i16,loc->ptr,2); - value = (long) i16; - break; - case WAD_TYPE_UINT16: - wad_memcpy(&u16,loc->ptr,2); - value = (long) u16; - break; - case WAD_TYPE_INT8: - case WAD_TYPE_CHAR: - wad_memcpy(&i8, loc->ptr,1); - value = (long) i8; - break; - case WAD_TYPE_UINT8: - wad_memcpy(&u8, loc->ptr,1); - value = (long) u8; - break; - default: - wad_memcpy(&u32,loc->ptr,4); - value = (long) u32; - } - return value; -} - -/* Convert a wad local variable to a long */ -double wad_local_as_double(WadLocal *loc) { - double value = 0; - float fval; - - switch(loc->type) { - case WAD_TYPE_DOUBLE: - wad_memcpy(&value,loc->ptr,8); - break; - case WAD_TYPE_FLOAT: - wad_memcpy(&fval,loc->ptr,4); - value = (double) fval; - break; - default: - value = 0; - } - return value; -} - - - - - - diff --git a/SWIG/Tools/WAD/Wad/wadhandler.pl b/SWIG/Tools/WAD/Wad/wadhandler.pl deleted file mode 100644 index e29240b69..000000000 --- a/SWIG/Tools/WAD/Wad/wadhandler.pl +++ /dev/null @@ -1,36 +0,0 @@ -package libwadpl; -sub wad_handler_traceback { - package DB; - my $es = ""; - ($pack,$file,$line) = caller(1); - - for ($i = 2; ($p,$f,$l,$s,$h,$w,$e,$r) = caller($i); $i++) { - @a = (); - for $arg (@args) { - $_ = "$arg"; - s/([\'\\])/\\$1/g; - s/([^\0]*)/'$1'/ - unless /^(?: -?[\d.]+ | \*[\w:]* )$/x; - s/([\200-\377])/sprintf("M-%c",ord($1)&0177)/eg; - s/([\0-\37\177])/sprintf("^%c",ord($1)^64)/eg; - push(@a, $_); - } - $w = $w ? '@ = ' : '$ = '; - $a = $h ? '(' . join(', ', @a) . ')' : ''; - $e =~ s/\n\s*\;\s*\Z// if $e; - $e =~ s/[\\\']/\\$1/g if $e; - if ($r) { - $s = "require '$e'"; - } elsif (defined $r) { - $s = "eval '$e'"; - } elsif ($s eq '(eval)') { - $s = "eval {...}"; - } - $f = "file `$f'" unless $f eq '-e'; - $mess = "$w$s$a called from $f line $l\n"; - $es = $mess . $es; - - } - $es = "Signal at $file line $line\n" . $es; - return $es; -} diff --git a/SWIG/Tools/WAD/Wad/wadpl.cxx b/SWIG/Tools/WAD/Wad/wadpl.cxx deleted file mode 100644 index 25ca5bb74..000000000 --- a/SWIG/Tools/WAD/Wad/wadpl.cxx +++ /dev/null @@ -1,176 +0,0 @@ -/* ----------------------------------------------------------------------------- - * wadpl.cxx - * - * Dynamically loadable module for Perl. - * - * Author(s) : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (C) 2000. The University of Chicago - * See the file LICENSE for information on usage and redistribution. - * ----------------------------------------------------------------------------- */ - -#ifdef __cplusplus -extern "C" { -#endif -#include "EXTERN.h" -#include "perl.h" -#include "XSUB.h" - -#include "wad.h" -#ifdef __cplusplus -} -#endif - -#include <signal.h> - -#include "wad_perl_handler.c" - -/* Error message returned to perl */ - -static char message[65536]; -static int global_signo = 0; - -static void returnfunc(void) { - SV *s; - s = perl_eval_pv((char*)"libwadpl::wad_handler_traceback(0)", 0); - croak("%s\n%s",SvPV(s,PL_na),message); - return; -} - -/* Handler function */ -static void handler(int signo, WadFrame *frame, char *ret) { - - static char temp[1024]; - int len = 0; - char *name; - char *fd; - WadFrame *f; - WadFrame *fline = 0; - int err; - char *type; - - if (!ret) { - wad_default_callback(signo, frame, ret); - return; - } - - - switch(signo) { - case SIGSEGV: - type = (char*)"Segmentation fault."; - break; - case SIGBUS: - type = (char*)"Bus error."; - break; - case SIGABRT: - type = (char*)"Abort."; - break; - case SIGFPE: - type = (char*)"Math."; - default: - break; - } - strcpy(message,type); - strcat(message,"\n[ C stack trace ]\n\n"); - fd = (char *) frame; - f = (WadFrame *) fd; - - /* Find the last exception frame */ - while (!f->last) { - fd = fd + f->size; - f = (WadFrame *) fd; - } - /* Now work backwards */ - fd = fd - f->lastsize; - f = (WadFrame *) fd; - while (1) { - sprintf(temp,"#%-3d 0x%08x in ", f->frameno, f->pc); - strcat(message,temp); - strcat(message,*(fd + f->sym_off) ? fd+f->sym_off : "?"); - strcat(message,"()"); - if (strlen(SRCFILE(f))) { - strcat(message," in '"); - strcat(message, wad_strip_dir(SRCFILE(f))); - strcat(message,"'"); - if (f->line_number > 0) { - sprintf(temp,", line %d", f->line_number); - strcat(message,temp); - fline = f; - } - } else { - if (strlen(fd+f->obj_off)) { - strcat(message," from '"); - strcat(message, wad_strip_dir(OBJFILE(f))); - strcat(message,"'"); - } - } - strcat(message,"\n"); - if (!f->lastsize) break; - fd = fd - f->lastsize; - f = (WadFrame *) fd; - } - if (fline) { - int first; - int last; - char *line, *c; - int i; - first = fline->line_number - 2; - last = fline->line_number + 2; - if (first < 1) first = 1; - - line = wad_load_source(SRCFILE(fline),first); - if (line) { - strcat(message,"\n"); - strcat(message, SRCFILE(fline)); - sprintf(temp,", line %d\n\n", fline->line_number); - strcat(message, temp); - for (i = first; i <= last; i++) { - if (i == fline->line_number) strcat(message," => "); - else strcat(message," "); - c = strchr(line,'\n'); - if (c) { - *c = 0; - strcat(message,line); - strcat(message,"\n"); - *c = '\n'; - } else { - strcat(message,line); - strcat(message,"\n"); - break; - } - line = c+1; - } - wad_release_source(); - strcat(message,"\n"); - } - } - wad_set_return_func(returnfunc); - wad_release_trace(); -} - -static void perlwadinit() { - printf("WAD Enabled\n"); - wad_init(); - wad_set_callback(handler); - wad_set_return("Perl_pp_entersub", 0); - perl_eval_pv(wad_perl_handler, 0); -} - -/* This hack is used to auto-initialize wad regardless of whether we are - used as an imported module or as a link-library for another module */ - -class wadinitializer { -public: - wadinitializer() { - perlwadinit(); - } -}; - -static wadinitializer wi; - -extern "C" -XS(boot_libwadpl) { - dXSARGS; - ST(0) = &PL_sv_yes; - XSRETURN(1); -} diff --git a/SWIG/Tools/WAD/configure.in b/SWIG/Tools/WAD/configure.in deleted file mode 100644 index 99335b6a5..000000000 --- a/SWIG/Tools/WAD/configure.in +++ /dev/null @@ -1,363 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -dnl NOTES: -dnl * As of 1.34, we no longer use and test for "nope" to indicate -dnl an empty variable. Instead, we use `VAR=' (set the variable -dnl to nothing) and `test -z "$VAR"' or `test -n "$VAR"' as the -dnl case may be. --ttn, 2000/08/04 12:11:26 - -AC_INIT(Include/wad.h) -AC_PREREQ(2.0) - -# Set name for machine-dependent library files -AC_SUBST(MACHDEP) -AC_MSG_CHECKING(MACHDEP) -if test -z "$MACHDEP" -then - if test -f /usr/lib/NextStep/software_version; then - set X `hostinfo | grep 'NeXT Mach.*:' | \ - sed -e 's/://' -e 's/\./_/'` && \ - ac_sys_system=next && ac_sys_release=$4 - MACHDEP="$ac_sys_system$ac_sys_release$ac_sys_cpu" - else - ac_sys_system=`uname -s` - if test "$ac_sys_system" = "AIX" ; then - ac_sys_release=`uname -v` - else - ac_sys_release=`uname -r` - fi - ac_md_system=`echo $ac_sys_system | - tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'` - ac_md_release=`echo $ac_sys_release | - tr -d '[/ ]' | sed 's/\..*//'` - MACHDEP="$ac_md_system$ac_md_release" - fi - case MACHDEP in - '') MACHDEP=unknown;; - esac -fi -AC_MSG_RESULT($MACHDEP) - -AC_PROG_CC -AC_PROG_CXX -AC_PROG_RANLIB - -dnl Checks for programs. - -AC_SUBST(AR) -AC_CHECK_PROGS(AR, ar aal, ar) - -dnl Checks for header files. -AC_HEADER_STDC -dnl Checks for library functions. - -# Set info about shared libraries. -AC_SUBST(SO) -AC_SUBST(LDSHARED) -AC_SUBST(CCSHARED) - -# SO is the extension of shared libraries `(including the dot!) -# -- usually .so, .sl on HP-UX -AC_MSG_CHECKING(SO) -if test -z "$SO" -then - case $ac_sys_system in - hp*|HP*) SO=.sl;; - *) SO=.so;; - esac -fi -AC_MSG_RESULT($SO) - -# WAD Options -AC_SUBST(WADOPT) -AC_MSG_CHECKING(WADOPT) -if test -z "$WADOPT" -then - case $ac_sys_system/$ac_sys_release in - SunOS/5*) WADOPT="-DWAD_SOLARIS";; - Linux*) WADOPT="-DWAD_LINUX";; - *) WADOPT="-DWAD_UNKWOWN";; - esac -fi -AC_MSG_RESULT($WADOPT) - - -# LDSHARED is the ld *command* used to create shared library -# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5 -# (Shared libraries in this instance are shared modules to be loaded into -# Python, as opposed to building Python itself as a shared library.) -AC_MSG_CHECKING(LDSHARED) -if test -z "$LDSHARED" -then - case $ac_sys_system/$ac_sys_release in - AIX*) LDSHARED="\$(srcdir)/ld_so_aix \$(CC)";; - IRIX/5*) LDSHARED="ld -shared";; - IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";; - SunOS/4*) LDSHARED="ld";; - SunOS/5*) LDSHARED="ld -G";; - hp*|HP*) LDSHARED="ld -b";; - OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";; - DYNIX/ptx*) LDSHARED="ld -G";; - next/*) - if test "$ns_dyld" - then LDSHARED='$(CC) $(LDFLAGS) -bundle -prebind' - else LDSHARED='$(CC) $(CFLAGS) -nostdlib -r'; - fi - if test "$with_next_framework" ; then - LDSHARED="$LDSHARED \$(LDLIBRARY)" - fi ;; - Linux*) LDSHARED="gcc -shared";; - dgux*) LDSHARED="ld -G";; - FreeBSD*/3*) LDSHARED="gcc -shared";; - FreeBSD*|OpenBSD*) LDSHARED="ld -Bshareable";; - NetBSD*) - if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]] - then - LDSHARED="cc -shared" - else - LDSHARED="ld -Bshareable" - fi;; - SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";; - *) LDSHARED="ld";; - esac -fi -AC_MSG_RESULT($LDSHARED) - - -# CXXSHARED is the C++ *command* used to create shared library -AC_SUBST(CXXLINK) - -AC_MSG_CHECKING(CXXLINK) -if test -z "$CXXLINK" -then - case $ac_sys_system/$ac_sys_release in - SunOS/5*) if test "$GCC" = yes; - then CXXLINK="g++ -shared"; - else CXXLINK="CC -G"; - fi;; - Linux*) CXXLINK="g++ -shared";; - *) CXXLINK="g++";; - esac -fi -AC_MSG_RESULT($CXXLINK) - -# CCSHARED are the C *flags* used to create objects to go into a shared -# library (module) -- this is only needed for a few systems -AC_MSG_CHECKING(CCSHARED) -if test -z "$CCSHARED" -then - case $ac_sys_system/$ac_sys_release in - hp*|HP*) if test "$GCC" = yes; - then CCSHARED="-fpic"; - else CCSHARED="+z"; - fi;; - Linux*) CCSHARED="-fpic";; - FreeBSD*|OpenBSD*) CCSHARED="-fpic";; - NetBSD*) CCSHARED="-fPIC";; - SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";; - IRIX*/6*) case $CC in - *gcc*) CCSHARED="-shared";; - *) CCSHARED="";; - esac;; - esac -fi -AC_MSG_RESULT($CCSHARED) - -AC_SUBST(CXXSHARED) -# CCSHARED are the C *flags* used to create objects to go into a shared -# library (module) -- this is only needed for a few systems -AC_MSG_CHECKING(CXXSHARED) -if test -z "$CXXSHARED" -then - case $ac_sys_system/$ac_sys_release in - Linux*) CXXSHARED="-fpic";; - SunOS/5*) if test "$GCC" = yes; - then CXXSHARED="-fpic"; - else CXXSHARED="-Kpic"; - fi;; - esac -fi -AC_MSG_RESULT($CXXSHARED) - -# RPATH is the path used to look for shared library files. -AC_MSG_CHECKING(RPATH) -if test -z "$RPATH" -then - case $ac_sys_system/$ac_sys_release in - SunOS/5*) RPATH="\"-R\"";; - Linux*) RPATH="-Xlinker -rpath ";; - *) RPATH="";; - esac -fi -AC_MSG_RESULT($RPATH) -AC_SUBST(RPATH) - -#-------------------------------------------------------------------- -# Try to locate the Tcl package -#-------------------------------------------------------------------- - -TCLINCLUDE= -TCLLIB= -TCLPACKAGE= -MAKETCL= - -AC_ARG_WITH(tcl,[ --with-tcl=path Set location of Tcl package],[ - TCLPACKAGE="$withval"], [TCLPACKAGE=]) -AC_ARG_WITH(tclincl,[ --with-tclincl=path Set location of Tcl include directory],[ - TCLINCLUDE="-I$withval"], [TCLINCLUDE=]) -AC_ARG_WITH(tcllib,[ --with-tcllib=path Set location of Tcl library directory],[ - TCLLIB="-L$withval"], [TCLLIB=]) - -if test -z "$TCLINCLUDE"; then - if test -n "$TCLPACKAGE"; then - TCLINCLUDE="-I$TCLPACKAGE/include" - fi -fi - -if test -z "$TCLLIB"; then - if test -n "$TCLPACKAGE"; then - TCLLIB="-L$TCLPACKAGE/lib" - fi -fi - -AC_MSG_CHECKING(for Tcl header files) -if test -z "$TCLINCLUDE"; then -AC_TRY_CPP([#include <tcl.h>], , TCLINCLUDE="") -if test -z "$TCLINCLUDE"; then - dirs="$prefix/include /usr/local/include /usr/include /opt/local/include /home/sci/local/include" - for i in $dirs ; do - if test -r $i/tcl.h; then - AC_MSG_RESULT($i) - TCLINCLUDE="-I$i" - MAKETCL="tcl" - break - fi - done -fi -if test -z "$TCLINCLUDE"; then - TCLINCLUDE="" - MAKETCL="" - AC_MSG_RESULT(not found) -fi -else - AC_MSG_RESULT($TCLINCLUDE) -fi - -AC_SUBST(TCLINCLUDE) -AC_SUBST(MAKETCL) - -#---------------------------------------------------------------- -# Look for Python -#---------------------------------------------------------------- - -PYINCLUDE= -MAKEPYTHON= -PYLIB= -PYPACKAGE= - -AC_ARG_WITH(py,[ --with-py=path Set location of Python],[ - PYPACKAGE="$withval"], [PYPACKAGE=]) -AC_ARG_WITH(pyincl,[ --with-pyincl=path Set location of Python include directory],[ - PYINCLUDE="$withval"], [PYINCLUDE=]) -AC_ARG_WITH(pylib,[ --with-pylib=path Set location of Python library directory],[ - PYLIB="$withval"], [PYLIB=]) - -if test -z "$PYINCLUDE"; then - if test -n "$PYPACKAGE"; then - PYINCLUDE="$PYPACKAGE/include" - fi -fi - -if test -z "$PYLIB"; then - if test -n "$PYPACKAGE"; then - PYLIB="$PYPACKAGE/lib" - fi -fi - - -AC_MSG_CHECKING(for Python header files) - -dirs="$PYINCLUDE $PYINCLUDE/python2.0 $PYINCLUDE/python1.6 $PYINCLUDE/python1.5 $prefix/include/python2.0 $prefix/include/python1.6 $prefix/include/python1.5 /usr/local/include/python2.0 /usr/local/include/python1.6 /usr/local/include/python1.5 /usr/include/python1.5" -for i in $dirs ; do - if test -r $i/Python.h; then - AC_MSG_RESULT($i) - PYINCLUDE="-I$i" - MAKEPYTHON="python" - break - fi -done -if test -z "$PYINCLUDE"; then - PYINCLUDE="" - MAKEPYTHON="" - AC_MSG_RESULT(not found) -fi - -AC_SUBST(PYINCLUDE) -AC_SUBST(PYLINK) -AC_SUBST(MAKEPYTHON) - -#---------------------------------------------------------------- -# Look for Perl5 -#---------------------------------------------------------------- - -PERLBIN= -MAKEPERL= - -AC_ARG_WITH(perl5,[ --with-perl5=path Set location of Perl5 executable],[ PERLBIN="$withval"], [PERLBIN=]) - -# First figure out what the name of Perl5 is - -if test -z "$PERLBIN"; then -AC_CHECK_PROGS(PERL, perl5.004 perl5.003 perl5.002 perl5.001 perl5 perl) -else -PERL="$PERLBIN" -fi -AC_MSG_CHECKING(for Perl5 header files) -if test -n "$PERL"; then - PERL5DIR=`($PERL -e 'use Config; print $Config{archlib};') 2>/dev/null` - if test "$PERL5DIR" != ""; then - dirs="$PERL5DIR $PERL5DIR/CORE" - PERL5EXT=none - for i in $dirs; do - if test -r $i/perl.h; then - AC_MSG_RESULT($i) - PERL5EXT="-I$i" - MAKEPERL="perl" - break; - fi - done - if test "$PERL5EXT" = none; then - PERL5EXT="" - MAKEPERL="" - AC_MSG_RESULT(could not locate perl.h...using $PERL5EXT) - fi - else - AC_MSG_RESULT(unable to determine perl5 configuration) - PERL5EXT="" - MAKEPERL="" - fi - else - AC_MSG_RESULT(could not figure out how to run perl5) - PERL5EXT="" - MAKEPERL="" - fi - -AC_SUBST(PERL5EXT) -AC_SUBST(MAKEPERL) - -dnl We use the following in `AC_OUTPUT' and "make distclean". -configure_substituted_files=`echo \ - Wad/Makefile \ - Python/Makefile \ - Tcl/Makefile \ - Test/Makefile \ - Prebuilt/linux/Makefile \ - Prebuilt/solaris/Makefile \ - Makefile \ -` -AC_SUBST(configure_substituted_files) - -AC_OUTPUT([$configure_substituted_files]) - -dnl configure.in ends here - diff --git a/SWIG/Tools/swig.spec b/SWIG/Tools/swig.spec deleted file mode 100644 index 3a9fb963c..000000000 --- a/SWIG/Tools/swig.spec +++ /dev/null @@ -1,88 +0,0 @@ -%define ver 1.3a4 -%define prefix /usr - -# Preamble -Summary: Simplified Wrapper and Interface Generator -Name: swig -Version: %ver -Prefix: %prefix -BuildRoot: /usr/src/redhat/BUILD -Release: 1 -Copyright: BSD -URL: http://www.swig.org -Group: System Environment/Daemons -Source0: http://download.sourceforge.net/swig/swig1.3a4.tar.gz -Packager: Dustin Mitchell <dustin@cs.uchicago.edu> -%description -SWIG is an interface compiler that connects programs written in C, -C++, and Objective-C with scripting languages including Perl, Python, -and Tcl/Tk. It works by taking the declarations commonly found in -C/C++ header files and using them to generate the glue code (wrappers) -that scripting languages need to access the underlying C/C++ code - -# PREP -%prep -rm -rf $RPM_BUILD_DIR/swig-%{ver} -zcat $RPM_SOURCE_DIR/swig-%{ver}.tar.gz | tar -xvvf - -mv $RPM_BUILD_DIR/SWIG-%{ver} $RPM_BUILD_DIR/swig-%{ver} - -# BUILD -%build -cd $RPM_BUILD_DIR/swig-%{ver} -./configure --prefix=%{prefix} -make - -# INSTALL -%install -cd $RPM_BUILD_DIR/swig-%{ver} -make prefix=$RPM_BUILD_DIR%{prefix} install - -# FILES -%files -%{prefix}/lib/swig1.3/tcl/constarray.i -%{prefix}/lib/swig1.3/tcl/consthash.i -%{prefix}/lib/swig1.3/tcl/ptrlang.i -%{prefix}/lib/swig1.3/tcl/tclsh.i -%{prefix}/lib/swig1.3/tcl/typemaps.i -%{prefix}/lib/swig1.3/tcl/wish.i -%{prefix}/lib/swig1.3/tcl/object.swg -%{prefix}/lib/swig1.3/tcl/swigtcl8.swg -%{prefix}/lib/swig1.3/array.i -%{prefix}/lib/swig1.3/autodoc.i -%{prefix}/lib/swig1.3/carray.i -%{prefix}/lib/swig1.3/constraints.i -%{prefix}/lib/swig1.3/ctype.i -%{prefix}/lib/swig1.3/exception.i -%{prefix}/lib/swig1.3/malloc.i -%{prefix}/lib/swig1.3/math.i -%{prefix}/lib/swig1.3/memory.i -%{prefix}/lib/swig1.3/objc.i -%{prefix}/lib/swig1.3/pointer.i -%{prefix}/lib/swig1.3/stdlib.i -%{prefix}/lib/swig1.3/timers.i -%{prefix}/lib/swig1.3/perl5/perlmain.i -%{prefix}/lib/swig1.3/perl5/ptrlang.i -%{prefix}/lib/swig1.3/perl5/typemaps.i -#%{prefix}/lib/swig1.3/perl5/headers.swg # doesn't seem to exist -%{prefix}/lib/swig1.3/perl5/perl5.swg -#%{prefix}/lib/swig1.3/perl5/perl5mg.swg # doesn't seem to exist -%{prefix}/lib/swig1.3/perl5/Makefile.pl -%{prefix}/lib/swig1.3/python/embed.i -%{prefix}/lib/swig1.3/python/embed13.i -%{prefix}/lib/swig1.3/python/embed14.i -%{prefix}/lib/swig1.3/python/embed15.i -%{prefix}/lib/swig1.3/python/ptrlang.i -%{prefix}/lib/swig1.3/python/typemaps.i -%{prefix}/lib/swig1.3/python/typemaps_old.i -%{prefix}/lib/swig1.3/python/defarg.swg -%{prefix}/lib/swig1.3/python/python.swg -%{prefix}/lib/swig1.3/guile/guilemain.i -%{prefix}/lib/swig1.3/guile/interpreter.i -%{prefix}/lib/swig1.3/guile/typemaps.i -%{prefix}/lib/swig1.3/guile/guile.swg -%{prefix}/lib/swig1.3/guile/guiledec.swg -%{prefix}/lib/swig1.3/java/typemaps.i -%{prefix}/lib/swig1.3/java/java.swg -%{prefix}/lib/swig1.3/mzscheme/typemaps.i -%{prefix}/lib/swig1.3/mzscheme/mzscheme.swg -%{prefix}/bin/swig |