Index: code/branches/buildsystem3/src/tolua/CMakeLists.txt
===================================================================
--- code/branches/buildsystem3/src/tolua/CMakeLists.txt	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/CMakeLists.txt	(revision 2664)
@@ -1,3 +1,27 @@
-SET (TOLUALIB_SRC_FILES
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        This program is free software; you can redistribute it and/or
+ #         modify it under the terms of the GNU General Public License
+ #        as published by the Free Software Foundation; either version 2
+ #            of the License, or (at your option) any later version.
+ #
+ #       This program is distributed in the hope that it will be useful,
+ #        but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #                 GNU General Public License for more details.
+ #
+ #   You should have received a copy of the GNU General Public License along
+ #      with this program; if not, write to the Free Software Foundation,
+ #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ #
+
+################### Tolua++ library ###################
+
+SET(TOLUA++_FILES
+  tolua_event.h
+  tolua++.h
+
   tolua_event.c
   tolua_is.c
@@ -6,68 +30,49 @@
   tolua_to.c
 )
+GENERATE_SOURCE_GROUPS(${TOLUA++_FILES})
 
-ADD_LIBRARY (tolualib_orxonox SHARED ${TOLUALIB_SRC_FILES})
+ADD_COMPILER_FLAGS("-w44996" MSVC)
 
-TARGET_LINK_LIBRARIES (tolualib_orxonox
-  lua_orxonox
-)
+ADD_LIBRARY(tolua++_orxonox SHARED ${TOLUA++_FILES})
+SET_TARGET_PROPERTIES(tolua++_orxonox PROPERTIES DEFINE_SYMBOL "TOLUA_SHARED_BUILD")
+TARGET_LINK_LIBRARIES(tolua++_orxonox ${LUA_LIBRARIES})
+
+ORXONOX_INSTALL(tolua++_orxonox)
 
 
-SET (TOLUAGEN_SRC_FILES
-  tolua.c
-  toluabind.c
+################## Tolua++ generator ##################
+
+ADD_EXECUTABLE(tolua++app_orxonox tolua.c)
+TARGET_LINK_LIBRARIES(tolua++app_orxonox tolua++_orxonox ${LUA_LIBRARIES})
+
+OPTION(TOLUA_PARSER_RELEASE "Disable all debug messages from tolua bind files for Release and MinSizeRel build types." FALSE)
+
+# Set some variables to the cache in order to use them in the TOLUA macro
+SET(TOLUA_PARSER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/all-${LUA_VERSION}.lua" CACHE INTERNAL "")
+SET(TOLUA_PARSER_DEPENDENCIES
+  tolua++app_orxonox
+  ${CMAKE_CURRENT_SOURCE_DIR}/all-${LUA_VERSION}.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/compat-5.1.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/compat.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/basic.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/feature.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/verbatim.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/code.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/typedef.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/container.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/package.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/module.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/namespace.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/define.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/enumerate.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/declaration.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/variable.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/array.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/function.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/operator.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/class.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/clean.lua
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua/doit.lua
+
+  CACHE INTERNAL ""
 )
-
-ADD_EXECUTABLE (toluagen_orxonox ${TOLUAGEN_SRC_FILES})
-
-TARGET_LINK_LIBRARIES (toluagen_orxonox
-  lua_orxonox
-  tolualib_orxonox
-  m
-)
-
-
-SET (TOLUA_PACKAGE "../../src/tolua/tolua-5.1.pkg")
-GET_TARGET_PROPERTY(TOLUAGEN_EXE toluagen_orxonox LOCATION)
-ADD_CUSTOM_COMMAND(
-  OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/toluabind_orxonox.c
-  COMMAND ${TOLUAGEN_EXE} -n tolua -o ../../src/tolua/toluabind_orxonox.c -H ../../src/tolua/toluabind_orxonox.h ${TOLUA_PACKAGE}
-  DEPENDS
-    toluagen_orxonox
-    tolua-5.1.pkg
-    lua/compat-5.1.lua
-    lua/compat.lua
-    lua/basic.lua
-    lua/feature.lua
-    lua/verbatim.lua
-    lua/code.lua
-    lua/typedef.lua
-    lua/container.lua
-    lua/package.lua
-    lua/module.lua
-    lua/namespace.lua
-    lua/define.lua
-    lua/enumerate.lua
-    lua/declaration.lua
-    lua/variable.lua
-    lua/array.lua
-    lua/function.lua
-    lua/operator.lua
-    lua/class.lua
-    lua/clean.lua
-    lua/doit.lua
-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib
-)
-
-SET (TOLUAEXE_SRC_FILES
-  tolua.c
-  toluabind_orxonox.c
-)
-
-ADD_EXECUTABLE (tolua_orxonox ${TOLUAEXE_SRC_FILES})
-
-TARGET_LINK_LIBRARIES (tolua_orxonox
-  lua_orxonox
-  tolualib_orxonox
-  m
-)
Index: code/branches/buildsystem3/src/tolua/MANUAL
===================================================================
--- code/branches/buildsystem3/src/tolua/MANUAL	(revision 2664)
+++ code/branches/buildsystem3/src/tolua/MANUAL	(revision 2664)
@@ -0,0 +1,58 @@
+This tolua++ is modified with support for exception handling, and more will
+likely come over time.
+
+So to avoid forgetting how it works and what's new, all added features will
+be documented in full in this file:
+
+***********************
+* Exception handling: *
+***********************
+A new function modifier 'tolua_throws' has been added. It goes the same place
+as 'tolua_outside' etc. - so before the function name and return type.
+
+Two "types" of exceptions are supported internally, but they can be customized
+by making the tolua++ binary execute a Lua script before parsing with the '-L'
+command line option.
+Look in '../LuaScriptModule/package/exceptions.lua' to see the format. It's
+fairly simple and gives you alot of control.
+
+You always have 'std::exception' and 'any' (which means ...) available.
+
+This first example would be valid in a .pkg file for tolua++, and would ensure
+that any exceptions based on 'std::exception' thrown by the real C++ function
+would result in return value of 'nil' in Lua:
+
+	tolua_throws|std::exception,nil| void I_Throw:StdException();
+
+Inside the pipes the exception name follow by return values (or actions) are
+listed. The syntax is like so:
+
+	tolua_throws|<exceptionName>[,<ret1>[,<ret2> ... [, <retN>]]]|[<exceptionName>...|]
+
+The return values can by any of the following:
+* nil
+* message (the exception message, or 'Unknown' if not possible.
+* true
+* false
+* error (can only be used alone, will contain the exception is possible)
+
+In case no return values are specified, it will default to: 'nil, message'.
+
+Example 1: 
+----------
+Returns 'nil, false' for all exceptions:
+
+	tolua_throws|any,nil,false|
+
+Example 2:
+----------
+Returns 'nil, message' if a 'std::exception' is thrown:
+
+	tolua_throws|std::exception,nil,message|
+
+Example 3:
+----------
+If a CEGUI::Exception is thrown, return 'nil, message'.
+If any other kind of exception is thrown abort (error).
+
+	tolua_throws|CEGUI::Exception|any,error|
Index: code/branches/buildsystem3/src/tolua/README
===================================================================
--- code/branches/buildsystem3/src/tolua/README	(revision 2664)
+++ code/branches/buildsystem3/src/tolua/README	(revision 2664)
@@ -0,0 +1,32 @@
+This is tolua++-1.0
+
+* What is tolua++?
+  tolua++ is an extension of toLua, a tool to integrate C/C++ code with
+  Lua. tolua++ includes new features oriented to c++, such as class
+  templates.
+
+  tolua is a tool that greatly simplifies the integration of C/C++ code 
+  with Lua. Based on a "cleaned" header file, tolua automatically generates 
+  the binding code to access C/C++ features from Lua. Using Lua-5.0 API and
+  metamethod facilities, the current version automatically maps C/C++ 
+  constants, external variables, functions, namespace, classes, and methods 
+  to Lua. It also provides facilities to create Lua modules.
+
+* Availability
+  tolua is freely available; you can redistribute it and/or modify it.
+  The software provided hereunder is on an "as is" basis, and
+  the author has no obligation to provide maintenance, support, 
+  updates, enhancements, or modifications.
+
+  tolua can be downloaded from the sites below:
+            http://www.codenix.com/~tolua/
+            http://www.codenix.com/~tolua/tolua++-1.0.tar.bz2
+
+* Installation
+  See INSTALL.
+
+* Contacting the author
+  tolua has been designed and implemented by Waldemar Celes.
+  tolua++ is maintained by Ariel Manzur.
+  Send your comments, bug reports and anything else to 
+  tolua@codenix.com
Index: code/branches/buildsystem3/src/tolua/VERSION
===================================================================
--- code/branches/buildsystem3/src/tolua/VERSION	(revision 2664)
+++ code/branches/buildsystem3/src/tolua/VERSION	(revision 2664)
@@ -0,0 +1,9 @@
+Tolua++ v1.0.92 with changes:
+
+- Exception handling by CEGUI team
+- Corrected all indentation by Orxonox
+- Added more command line arguments by Orxonox
+- Several small changes considering the output files by Orxonox
+
+The changes to the C source files are stored in changes_orxonox.diff
+
Index: code/branches/buildsystem3/src/tolua/all-5.0.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/all-5.0.lua	(revision 2664)
+++ code/branches/buildsystem3/src/tolua/all-5.0.lua	(revision 2664)
@@ -0,0 +1,28 @@
+dofile(path.."lua/compat.lua")
+dofile(path.."lua/basic.lua")
+dofile(path.."lua/feature.lua")
+dofile(path.."lua/verbatim.lua")
+dofile(path.."lua/code.lua")
+dofile(path.."lua/typedef.lua")
+dofile(path.."lua/container.lua")
+dofile(path.."lua/package.lua")
+dofile(path.."lua/module.lua")
+dofile(path.."lua/namespace.lua")
+dofile(path.."lua/define.lua")
+dofile(path.."lua/enumerate.lua")
+dofile(path.."lua/declaration.lua")
+dofile(path.."lua/variable.lua")
+dofile(path.."lua/array.lua")
+dofile(path.."lua/function.lua")
+dofile(path.."lua/operator.lua")
+dofile(path.."lua/class.lua")
+dofile(path.."lua/clean.lua")
+--dofile(path.."lua/custom.lua")
+dofile(path.."lua/doit.lua")
+
+local err,msg = xpcall(doit, debug.traceback)
+if not err then
+--print("**** msg is "..tostring(msg))
+ local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)")
+ tolua_error(msg,label)
+end
Index: code/branches/buildsystem3/src/tolua/all-5.1.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/all-5.1.lua	(revision 2664)
+++ code/branches/buildsystem3/src/tolua/all-5.1.lua	(revision 2664)
@@ -0,0 +1,29 @@
+dofile(path.."lua/compat-5.1.lua")
+dofile(path.."lua/compat.lua")
+dofile(path.."lua/basic.lua")
+dofile(path.."lua/feature.lua")
+dofile(path.."lua/verbatim.lua")
+dofile(path.."lua/code.lua")
+dofile(path.."lua/typedef.lua")
+dofile(path.."lua/container.lua")
+dofile(path.."lua/package.lua")
+dofile(path.."lua/module.lua")
+dofile(path.."lua/namespace.lua")
+dofile(path.."lua/define.lua")
+dofile(path.."lua/enumerate.lua")
+dofile(path.."lua/declaration.lua")
+dofile(path.."lua/variable.lua")
+dofile(path.."lua/array.lua")
+dofile(path.."lua/function.lua")
+dofile(path.."lua/operator.lua")
+dofile(path.."lua/class.lua")
+dofile(path.."lua/clean.lua")
+--dofile(path.."lua/custom.lua")
+dofile(path.."lua/doit.lua")
+
+local err,msg = xpcall(doit, debug.traceback)
+if not err then
+--print("**** msg is "..tostring(msg))
+ local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)")
+ tolua_error(msg,label)
+end
Index: code/branches/buildsystem3/src/tolua/changes_orxonox.diff
===================================================================
--- code/branches/buildsystem3/src/tolua/changes_orxonox.diff	(revision 2664)
+++ code/branches/buildsystem3/src/tolua/changes_orxonox.diff	(revision 2664)
@@ -0,0 +1,182 @@
+diff -ruN tolua/tolua++.h tolua2/tolua++.h
+--- tolua/tolua++.h	Wed Jan 28 21:51:38 2009
++++ tolua2/tolua++.h	Sat Jan 10 14:48:44 2009
+@@ -16,9 +16,34 @@
+ #ifndef TOLUA_H
+ #define TOLUA_H
+ 
++/* original code */
++/*
+ #ifndef TOLUA_API
+ #define TOLUA_API extern
+ #endif
++*/
++
++/********************************
++******* ORXONOX CHANGES *********
++********************************/
++
++#if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined( TOLUA_STATIC_BUILD )
++#  ifdef TOLUA_SHARED_BUILD
++#    define TOLUA_API __declspec(dllexport)
++#  else
++#    if defined( __MINGW32__ )
++#      define TOLUA_API
++#    else
++#      define TOLUA_API __declspec(dllimport)
++#    endif
++#  endif
++#else
++#  define TOLUA_API extern
++#endif
++
++/********************************
++****** END ORXONOX CHANGES ******
++********************************/
+ 
+ #define TOLUA_VERSION "tolua++-1.0.92"
+ 
+diff -ruN tolua/tolua.c tolua2/tolua.c
+--- tolua/tolua.c	Wed Jan 28 21:51:00 2009
++++ tolua2/tolua.c	Sat Jan 10 14:48:45 2009
+@@ -4,6 +4,8 @@
+ ** TeCGraf/PUC-Rio
+ ** Aug 2003
+ ** $Id:$
++** Extension by Orxonox (Reto Grieder) to support working directory
++** and direct usage of lua files. (2008)
+ */
+ 
+ /* This code is free software; you can redistribute it and/or modify it.
+@@ -33,6 +35,8 @@
+          "  -o  file : set output file; default is stdout.\n"
+          "  -H  file : create include file.\n"
+          "  -n  name : set package name; default is input file root name.\n"
++         "  -w  directory : set working directory; default is location of package file.\n"
++         "  -s  file : specify source lua code for the parser; all.lua is default.\n"
+          "  -p       : parse only.\n"
+          "  -P       : parse and print structure information (for debug).\n"
+          "  -S       : disable support for c++ strings.\n"
+@@ -64,12 +68,12 @@
+ }
+ 
+ static void add_extra (lua_State* L, char* value) {
+-	int len;
+-	lua_getglobal(L, "_extra_parameters");
+-	len = luaL_getn(L, -1);
+-	lua_pushstring(L, value);
+-	lua_rawseti(L, -2, len+1);
+-	lua_pop(L, 1);
++ int len;
++ lua_getglobal(L, "_extra_parameters");
++ len = luaL_getn(L, -1);
++ lua_pushstring(L, value);
++ lua_rawseti(L, -2, len+1);
++ lua_pop(L, 1);
+ };
+ 
+ static void error (char* o)
+@@ -81,6 +85,9 @@
+ 
+ int main (int argc, char* argv[])
+ {
++ char* working_directory = "";
++ char* lua_source = "";
++
+  #ifdef LUA_VERSION_NUM /* lua 5.1 */
+  lua_State* L = luaL_newstate();
+  luaL_openlibs(L);
+@@ -97,6 +104,7 @@
+  lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION");
+  lua_pushstring(L,LUA_VERSION); lua_setglobal(L,"TOLUA_LUA_VERSION");
+ 
++
+  if (argc==1)
+  {
+   help();
+@@ -124,6 +132,14 @@
+      case 'o': setfield(L,t,"o",argv[++i]); break;
+      case 'n': setfield(L,t,"n",argv[++i]); break;
+      case 'H': setfield(L,t,"H",argv[++i]); break;
++     case 'w':
++      working_directory = argv[++i];
++      setfield(L,t,"w",argv[i]);
++      break;
++     case 's':
++      lua_source = argv[++i];
++      setfield(L,t,"s",argv[i]);
++      break;
+      case 'S': setfield(L,t,"S",""); break;
+      case '1': setfield(L,t,"1",""); break;
+      case 'L': setfield(L,t,"L",argv[++i]); break;
+@@ -143,25 +159,53 @@
+   }
+   lua_pop(L,1);
+  }
+-/* #define TOLUA_SCRIPT_RUN */
+-#ifndef TOLUA_SCRIPT_RUN
++
+  {
+-  int tolua_tolua_open (lua_State* L);
+-  tolua_tolua_open(L);
+- }
++  char path[BUFSIZ];
++  char file[BUFSIZ];
++  path[0] = '\0';
++  file[0] = '\0';
++
++  if (strlen(lua_source) > 0 &&
++      lua_source[0] != '/' &&
++      lua_source[0] != '\\' &&
++      strlen(lua_source) > 1 &&
++      lua_source[1] != ':')
++  {
++   /* Relative path, prefix working directory */
++   strcpy(path, working_directory);
++   /* Make sure there is '\\' or '/' at the end of the path */
++   if (strlen(path) > 0)
++   {
++    char last = path[strlen(path) - 1];
++    if (last != '\\' && last != '/')
++     strcat(path, "/");
++   }
++  }
++
++  strcat(path, lua_source);
++
++  /* Extract the full path */
++  {
++   char* p;
++   p = strrchr(path, '/');
++   if (p == NULL)
++    p = strrchr(path, '\\');
++   p = (p == NULL) ? path : p + 1;
++   strcpy(file, p);
++   *p = '\0';
++  }
++  if (strlen(file) == 0)
++   strcpy(file, "all.lua");
++
++  lua_pushstring(L, path);
++  lua_setglobal(L, "path");
++  strcat(path, file);
++#ifdef LUA_VERSION_NUM /* lua 5.1 */
++  luaL_dofile(L, path);
+ #else
+- {
+-  char* p;
+-  char  path[BUFSIZ];
+-  strcpy(path,argv[0]);
+-  p = strrchr(path,'/');
+-  if (p==NULL) p = strrchr(path,'\\');
+-  p = (p==NULL) ? path : p+1;
+-  sprintf(p,"%s","../src/bin/lua/");
+-  lua_pushstring(L,path); lua_setglobal(L,"path");
+-		strcat(path,"all.lua");
+-  lua_dofile(L,path);
+- }
++  lua_dofile(L, path);
+ #endif
++ }
+  return 0;
+ }
Index: code/branches/buildsystem3/src/tolua/lua/array.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/array.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/array.lua	(revision 2664)
@@ -21,18 +21,18 @@
 -- Print method
 function classArray:print (ident,close)
- print(ident.."Array{")
- print(ident.." mod  = '"..self.mod.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.." ptr  = '"..self.ptr.."',")
- print(ident.." name = '"..self.name.."',")
- print(ident.." def  = '"..self.def.."',")
- print(ident.." dim  = '"..self.dim.."',")
- print(ident.." ret  = '"..self.ret.."',")
- print(ident.."}"..close)
+    print(ident.."Array{")
+    print(ident.." mod  = '"..self.mod.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.." ptr  = '"..self.ptr.."',")
+    print(ident.." name = '"..self.name.."',")
+    print(ident.." def  = '"..self.def.."',")
+    print(ident.." dim  = '"..self.dim.."',")
+    print(ident.." ret  = '"..self.ret.."',")
+    print(ident.."}"..close)
 end
 
 -- check if it is a variable
 function classArray:isvariable ()
- return true
+    return true
 end
 
@@ -40,181 +40,180 @@
 -- get variable value
 function classArray:getvalue (class,static)
- if class and static then
-  return class..'::'..self.name..'[tolua_index]'
- elseif class then
-  return 'self->'..self.name..'[tolua_index]'
- else
-  return self.name..'[tolua_index]'
- end
+    if class and static then
+        return class..'::'..self.name..'[tolua_index]'
+    elseif class then
+        return 'self->'..self.name..'[tolua_index]'
+    else
+        return self.name..'[tolua_index]'
+    end
 end
 
 -- Write binding functions
 function classArray:supcode ()
- local class = self:inclass()
-
- -- get function ------------------------------------------------
- if class then
-  output("/* get function:",self.name," of class ",class," */")
- else
-  output("/* get function:",self.name," */")
- end
- self.cgetname = self:cfuncname("tolua_get")
- output("#ifndef TOLUA_DISABLE_"..self.cgetname)
- output("\nstatic int",self.cgetname,"(lua_State* tolua_S)")
- output("{")
- output(" int tolua_index;")
-
- -- declare self, if the case
- local _,_,static = strfind(self.mod,'^%s*(static)')
- if class and static==nil then
-  output(' ',self.parent.type,'*','self;')
-  output(' lua_pushstring(tolua_S,".self");')
-  output(' lua_rawget(tolua_S,1);')
-  output(' self = ')
-  output('(',self.parent.type,'*) ')
-  output('lua_touserdata(tolua_S,-1);')
- elseif static then
-  _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
- end
-
- -- check index
-	output('#ifndef TOLUA_RELEASE\n')
-	output(' {')
-	output('  tolua_Error tolua_err;')
- output('  if (!tolua_isnumber(tolua_S,2,0,&tolua_err))')
- output('   tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);')
-	output(' }')
-	output('#endif\n')
-	if flags['1'] then -- for compatibility with tolua5 ?
-		output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;')
-	else
-		output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);')
-	end
-	output('#ifndef TOLUA_RELEASE\n')
-	if self.dim and self.dim ~= '' then
-	  output(' if (tolua_index<0 || tolua_index>='..self.dim..')')
-	else
-	  output(' if (tolua_index<0)')
-	end
- output('  tolua_error(tolua_S,"array indexing out of range.",NULL);')
-	output('#endif\n')
-
- -- return value
- local t,ct = isbasic(self.type)
- if t then
-  output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');')
- else
-		t = self.type
-  if self.ptr == '&' or self.ptr == '' then
-   output(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");')
-  else
-   output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");')
-  end
- end
- output(' return 1;')
- output('}')
- output('#endif //#ifndef TOLUA_DISABLE\n')
- output('\n')
-
- -- set function ------------------------------------------------
- if not strfind(self.type,'const') then
-  if class then
-   output("/* set function:",self.name," of class ",class," */")
-  else
-   output("/* set function:",self.name," */")
-  end
-  self.csetname = self:cfuncname("tolua_set")
-  output("#ifndef TOLUA_DISABLE_"..self.csetname)
-  output("\nstatic int",self.csetname,"(lua_State* tolua_S)")
-  output("{")
-
-  -- declare index
-  output(' int tolua_index;')
-
-  -- declare self, if the case
-  local _,_,static = strfind(self.mod,'^%s*(static)')
-  if class and static==nil then
-   output(' ',self.parent.type,'*','self;')
-   output(' lua_pushstring(tolua_S,".self");')
-   output(' lua_rawget(tolua_S,1);')
-   output(' self = ')
-   output('(',self.parent.type,'*) ')
-   output('lua_touserdata(tolua_S,-1);')
-  elseif static then
-   _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
-  end
-
-  -- check index
-	 output('#ifndef TOLUA_RELEASE\n')
-	 output(' {')
-	 output('  tolua_Error tolua_err;')
-  output('  if (!tolua_isnumber(tolua_S,2,0,&tolua_err))')
-  output('   tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);')
-		output(' }')
-		output('#endif\n')
-
-	if flags['1'] then -- for compatibility with tolua5 ?
-		output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;')
-	else
-		output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);')
-	end
-
-	 output('#ifndef TOLUA_RELEASE\n')
-	if self.dim and self.dim ~= '' then
-	  output(' if (tolua_index<0 || tolua_index>='..self.dim..')')
-	else
-	  output(' if (tolua_index<0)')
-	end
-  output('  tolua_error(tolua_S,"array indexing out of range.",NULL);')
-		output('#endif\n')
-
-  -- assign value
-  local ptr = ''
-  if self.ptr~='' then ptr = '*' end
-  output(' ')
-  if class and static then
-   output(class..'::'..self.name..'[tolua_index]')
-  elseif class then
-   output('self->'..self.name..'[tolua_index]')
-  else
-   output(self.name..'[tolua_index]')
-  end
-  local t = isbasic(self.type)
-  output(' = ')
-  if not t and ptr=='' then output('*') end
-  output('((',self.mod,self.type)
-  if not t then
-   output('*')
-  end
-  output(') ')
-  local def = 0
-  if self.def ~= '' then def = self.def end
-  if t then
-   output('tolua_to'..t,'(tolua_S,3,',def,'));')
-  else
-   output('tolua_tousertype(tolua_S,3,',def,'));')
-  end
-  output(' return 0;')
-  output('}')
-  output('#endif //#ifndef TOLUA_DISABLE\n')
-  output('\n')
- end
-
+    local class = self:inclass()
+
+    -- get function ------------------------------------------------
+    if class then
+        output("/* get function:",self.name," of class ",class," */")
+    else
+        output("/* get function:",self.name," */")
+    end
+    self.cgetname = self:cfuncname("tolua_get")
+    output("#ifndef TOLUA_DISABLE_"..self.cgetname)
+    output("\nstatic int",self.cgetname,"(lua_State* tolua_S)")
+    output("{")
+    output(" int tolua_index;")
+
+    -- declare self, if the case
+    local _,_,static = strfind(self.mod,'^%s*(static)')
+    if class and static==nil then
+        output(' ',self.parent.type,'*','self;')
+        output(' lua_pushstring(tolua_S,".self");')
+        output(' lua_rawget(tolua_S,1);')
+        output(' self = ')
+        output('(',self.parent.type,'*) ')
+        output('lua_touserdata(tolua_S,-1);')
+    elseif static then
+        _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
+    end
+
+    -- check index
+    output('#ifndef TOLUA_RELEASE\n')
+    output(' {')
+    output('  tolua_Error tolua_err;')
+    output('  if (!tolua_isnumber(tolua_S,2,0,&tolua_err))')
+    output('   tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);')
+    output(' }')
+    output('#endif\n')
+    if flags['1'] then -- for compatibility with tolua5 ?
+        output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;')
+    else
+        output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);')
+    end
+    output('#ifndef TOLUA_RELEASE\n')
+    if self.dim and self.dim ~= '' then
+        output(' if (tolua_index<0 || tolua_index>='..self.dim..')')
+    else
+        output(' if (tolua_index<0)')
+    end
+    output('  tolua_error(tolua_S,"array indexing out of range.",NULL);')
+    output('#endif\n')
+
+    -- return value
+    local t,ct = isbasic(self.type)
+    if t then
+        output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');')
+    else
+        t = self.type
+        if self.ptr == '&' or self.ptr == '' then
+            output(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");')
+        else
+            output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");')
+        end
+    end
+    output(' return 1;')
+    output('}')
+    output('#endif //#ifndef TOLUA_DISABLE\n')
+    output('\n')
+
+    -- set function ------------------------------------------------
+    if not strfind(self.type,'const') then
+        if class then
+            output("/* set function:",self.name," of class ",class," */")
+        else
+            output("/* set function:",self.name," */")
+        end
+        self.csetname = self:cfuncname("tolua_set")
+        output("#ifndef TOLUA_DISABLE_"..self.csetname)
+        output("\nstatic int",self.csetname,"(lua_State* tolua_S)")
+        output("{")
+
+        -- declare index
+        output(' int tolua_index;')
+
+        -- declare self, if the case
+        local _,_,static = strfind(self.mod,'^%s*(static)')
+        if class and static==nil then
+            output(' ',self.parent.type,'*','self;')
+            output(' lua_pushstring(tolua_S,".self");')
+            output(' lua_rawget(tolua_S,1);')
+            output(' self = ')
+            output('(',self.parent.type,'*) ')
+            output('lua_touserdata(tolua_S,-1);')
+        elseif static then
+            _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
+        end
+
+        -- check index
+        output('#ifndef TOLUA_RELEASE\n')
+        output(' {')
+        output('  tolua_Error tolua_err;')
+        output('  if (!tolua_isnumber(tolua_S,2,0,&tolua_err))')
+        output('   tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);')
+        output(' }')
+        output('#endif\n')
+
+        if flags['1'] then -- for compatibility with tolua5 ?
+            output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;')
+        else
+            output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);')
+        end
+
+        output('#ifndef TOLUA_RELEASE\n')
+        if self.dim and self.dim ~= '' then
+            output(' if (tolua_index<0 || tolua_index>='..self.dim..')')
+        else
+            output(' if (tolua_index<0)')
+        end
+        output('  tolua_error(tolua_S,"array indexing out of range.",NULL);')
+        output('#endif\n')
+
+        -- assign value
+        local ptr = ''
+        if self.ptr~='' then ptr = '*' end
+            output(' ')
+        if class and static then
+            output(class..'::'..self.name..'[tolua_index]')
+        elseif class then
+            output('self->'..self.name..'[tolua_index]')
+        else
+            output(self.name..'[tolua_index]')
+        end
+        local t = isbasic(self.type)
+        output(' = ')
+        if not t and ptr=='' then output('*') end
+        output('((',self.mod,self.type)
+        if not t then
+            output('*')
+        end
+        output(') ')
+        local def = 0
+        if self.def ~= '' then def = self.def end
+        if t then
+            output('tolua_to'..t,'(tolua_S,3,',def,'));')
+        else
+            output('tolua_tousertype(tolua_S,3,',def,'));')
+        end
+        output(' return 0;')
+        output('}')
+        output('#endif //#ifndef TOLUA_DISABLE\n')
+        output('\n')
+    end
 end
 
 function classArray:register (pre)
- pre = pre or ''
- if self.csetname then
-  output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');')
- else
-  output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);')
- end
+    pre = pre or ''
+    if self.csetname then
+        output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');')
+    else
+        output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);')
+    end
 end
 
 -- Internal constructor
 function _Array (t)
- setmetatable(t,classArray)
- append(t)
- return t
+    setmetatable(t,classArray)
+    append(t)
+    return t
 end
 
@@ -222,6 +221,6 @@
 -- Expects a string representing the variable declaration.
 function Array (s)
- return _Array (Declaration(s,'var'))
-end
-
-
+    return _Array (Declaration(s,'var'))
+end
+
+
Index: code/branches/buildsystem3/src/tolua/lua/basic.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/basic.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/basic.lua	(revision 2664)
@@ -16,31 +16,31 @@
 -- and all occurrences of "void*" will be replaced by "_userdata"
 _basic = {
- ['void'] = '',
- ['char'] = 'number',
- ['int'] = 'number',
- ['short'] = 'number',
- ['long'] = 'number',
- ['unsigned'] = 'number',
- ['float'] = 'number',
- ['double'] = 'number',
- ['_cstring'] = 'string',
- ['_userdata'] = 'userdata',
- ['char*'] = 'string',
- ['void*'] = 'userdata',
- ['bool'] = 'boolean',
- ['lua_Object'] = 'value',
- ['LUA_VALUE'] = 'value',    -- for compatibility with tolua 4.0
- ['lua_State*'] = 'state',
- ['_lstate'] = 'state',
- ['lua_Function'] = 'value',
+    ['void'] = '',
+    ['char'] = 'number',
+    ['int'] = 'number',
+    ['short'] = 'number',
+    ['long'] = 'number',
+    ['unsigned'] = 'number',
+    ['float'] = 'number',
+    ['double'] = 'number',
+    ['_cstring'] = 'string',
+    ['_userdata'] = 'userdata',
+    ['char*'] = 'string',
+    ['void*'] = 'userdata',
+    ['bool'] = 'boolean',
+    ['lua_Object'] = 'value',
+    ['LUA_VALUE'] = 'value',    -- for compatibility with tolua 4.0
+    ['lua_State*'] = 'state',
+    ['_lstate'] = 'state',
+    ['lua_Function'] = 'value',
 }
 
 _basic_ctype = {
- number = "lua_Number",
- string = "const char*",
- userdata = "void*",
- boolean = "bool",
- value = "int",
- state = "lua_State*",
+    number = "lua_Number",
+    string = "const char*",
+    userdata = "void*",
+    boolean = "bool",
+    value = "int",
+    state = "lua_State*",
 }
 
@@ -68,107 +68,107 @@
 _renaming = {}
 function appendrenaming (s)
- local b,e,old,new = strfind(s,"%s*(.-)%s*@%s*(.-)%s*$")
-	if not b then
-	 error("#Invalid renaming syntax; it should be of the form: pattern@pattern")
-	end
-	tinsert(_renaming,{old=old, new=new})
+    local b,e,old,new = strfind(s,"%s*(.-)%s*@%s*(.-)%s*$")
+    if not b then
+        error("#Invalid renaming syntax; it should be of the form: pattern@pattern")
+    end
+    tinsert(_renaming,{old=old, new=new})
 end
 
 function applyrenaming (s)
-	for i=1,getn(_renaming) do
-	 local m,n = gsub(s,_renaming[i].old,_renaming[i].new)
-		if n ~= 0 then
-		 return m
-		end
-	end
-	return nil
+    for i=1,getn(_renaming) do
+        local m,n = gsub(s,_renaming[i].old,_renaming[i].new)
+        if n ~= 0 then
+            return m
+        end
+    end
+    return nil
 end
 
 -- Error handler
 function tolua_error (s,f)
-if _curr_code then
-	print("***curr code for error is "..tostring(_curr_code))
-	print(debug.traceback())
-end
- local out = _OUTPUT
- _OUTPUT = _STDERR
- if strsub(s,1,1) == '#' then
-  write("\n** tolua: "..strsub(s,2)..".\n\n")
-  if _curr_code then
-   local _,_,s = strfind(_curr_code,"^%s*(.-\n)") -- extract first line
-   if s==nil then s = _curr_code end
-   s = gsub(s,"_userdata","void*") -- return with 'void*'
-   s = gsub(s,"_cstring","char*")  -- return with 'char*'
-   s = gsub(s,"_lstate","lua_State*")  -- return with 'lua_State*'
-   write("Code being processed:\n"..s.."\n")
-  end
- else
- if not f then f = "(f is nil)" end
-  print("\n** tolua internal error: "..f..s..".\n\n")
-  return
- end
- _OUTPUT = out
+    if _curr_code then
+        print("***curr code for error is "..tostring(_curr_code))
+        print(debug.traceback())
+    end
+    local out = _OUTPUT
+    _OUTPUT = _STDERR
+    if strsub(s,1,1) == '#' then
+        write("\n** tolua: "..strsub(s,2)..".\n\n")
+        if _curr_code then
+            local _,_,s = strfind(_curr_code,"^%s*(.-\n)") -- extract first line
+            if s==nil then s = _curr_code end
+            s = gsub(s,"_userdata","void*") -- return with 'void*'
+            s = gsub(s,"_cstring","char*")  -- return with 'char*'
+            s = gsub(s,"_lstate","lua_State*")  -- return with 'lua_State*'
+            write("Code being processed:\n"..s.."\n")
+        end
+    else
+        if not f then f = "(f is nil)" end
+        print("\n** tolua internal error: "..f..s..".\n\n")
+        return
+    end
+    _OUTPUT = out
 end
 
 function warning (msg)
- local out = _OUTPUT
- _OUTPUT = _STDERR
- write("\n** tolua warning: "..msg..".\n\n")
- _OUTPUT = out
+    local out = _OUTPUT
+    _OUTPUT = _STDERR
+    write("\n** tolua warning: "..msg..".\n\n")
+    _OUTPUT = out
 end
 
 -- register an user defined type: returns full type
 function regtype (t)
-	--if isbasic(t) then
-	--	return t
-	--end
-	local ft = findtype(t)
-
-	if not _usertype[ft] then
-		return appendusertype(t)
-	end
-	return ft
+    --if isbasic(t) then
+    --    return t
+    --end
+    local ft = findtype(t)
+
+    if not _usertype[ft] then
+        return appendusertype(t)
+    end
+    return ft
 end
 
 -- return type name: returns full type
 function typevar(type)
-	if type == '' or type == 'void' then
-		return type
-	else
-		local ft = findtype(type)
-		if ft then
-			return ft
-		end
-		_usertype[type] = type
-		return type
-	end
+    if type == '' or type == 'void' then
+        return type
+    else
+        local ft = findtype(type)
+        if ft then
+            return ft
+        end
+        _usertype[type] = type
+        return type
+    end
 end
 
 -- check if basic type
 function isbasic (type)
- local t = gsub(type,'const ','')
- local m,t = applytypedef('', t)
- local b = _basic[t]
- if b then
-  return b,_basic_ctype[b]
- end
- return nil
+    local t = gsub(type,'const ','')
+    local m,t = applytypedef('', t)
+    local b = _basic[t]
+    if b then
+        return b,_basic_ctype[b]
+    end
+    return nil
 end
 
 -- split string using a token
 function split (s,t)
- local l = {n=0}
- local f = function (s)
-  l.n = l.n + 1
-  l[l.n] = s
-  return ""
- end
- local p = "%s*(.-)%s*"..t.."%s*"
- s = gsub(s,"^%s+","")
- s = gsub(s,"%s+$","")
- s = gsub(s,p,f)
- l.n = l.n + 1
- l[l.n] = gsub(s,"(%s%s*)$","")
- return l
+    local l = {n=0}
+    local f = function (s)
+        l.n = l.n + 1
+        l[l.n] = s
+        return ""
+    end
+    local p = "%s*(.-)%s*"..t.."%s*"
+    s = gsub(s,"^%s+","")
+    s = gsub(s,"%s+$","")
+    s = gsub(s,p,f)
+    l.n = l.n + 1
+    l[l.n] = gsub(s,"(%s%s*)$","")
+    return l
 end
 
@@ -178,59 +178,59 @@
 function split_c_tokens(s, pat)
 
-	s = string.gsub(s, "^%s*", "")
-	s = string.gsub(s, "%s*$", "")
-
-	local token_begin = 1
-	local token_end = 1
-	local ofs = 1
-	local ret = {n=0}
-
-	function add_token(ofs)
-
-		local t = string.sub(s, token_begin, ofs)
-		t = string.gsub(t, "^%s*", "")
-		t = string.gsub(t, "%s*$", "")
-		ret.n = ret.n + 1
-		ret[ret.n] = t
-	end
-
-	while ofs <= string.len(s) do
-
-		local sub = string.sub(s, ofs, -1)
-		local b,e = string.find(sub, "^"..pat)
-		if b then
-			add_token(ofs-1)
-			ofs = ofs+e
-			token_begin = ofs
-		else
-			local char = string.sub(s, ofs, ofs)
-			if char == "(" or char == "<" then
-
-				local block
-				if char == "(" then block = "^%b()" end
-				if char == "<" then block = "^%b<>" end
-
-				b,e = string.find(sub, block)
-				if not b then
-					-- unterminated block?
-					ofs = ofs+1
-				else
-					ofs = ofs + e
-				end
-
-			else
-				ofs = ofs+1
-			end
-		end
-
-	end
-	add_token(ofs)
-	--if ret.n == 0 then
-
-	--	ret.n=1
-	--	ret[1] = ""
-	--end
-
-	return ret
+    s = string.gsub(s, "^%s*", "")
+    s = string.gsub(s, "%s*$", "")
+
+    local token_begin = 1
+    local token_end = 1
+    local ofs = 1
+    local ret = {n=0}
+
+    function add_token(ofs)
+
+        local t = string.sub(s, token_begin, ofs)
+        t = string.gsub(t, "^%s*", "")
+        t = string.gsub(t, "%s*$", "")
+        ret.n = ret.n + 1
+        ret[ret.n] = t
+    end
+
+    while ofs <= string.len(s) do
+
+        local sub = string.sub(s, ofs, -1)
+        local b,e = string.find(sub, "^"..pat)
+        if b then
+            add_token(ofs-1)
+            ofs = ofs+e
+            token_begin = ofs
+        else
+            local char = string.sub(s, ofs, ofs)
+            if char == "(" or char == "<" then
+
+                local block
+                if char == "(" then block = "^%b()" end
+                if char == "<" then block = "^%b<>" end
+
+                b,e = string.find(sub, block)
+                if not b then
+                    -- unterminated block?
+                    ofs = ofs+1
+                else
+                    ofs = ofs + e
+                end
+
+            else
+                ofs = ofs+1
+            end
+        end
+
+    end
+    add_token(ofs)
+    --if ret.n == 0 then
+
+    --    ret.n=1
+    --    ret[1] = ""
+    --end
+
+    return ret
 
 end
@@ -238,73 +238,73 @@
 -- concatenate strings of a table
 function concat (t,f,l,jstr)
-	jstr = jstr or " "
- local s = ''
- local i=f
- while i<=l do
-  s = s..t[i]
-  i = i+1
-  if i <= l then s = s..jstr end
- end
- return s
+    jstr = jstr or " "
+    local s = ''
+    local i=f
+    while i<=l do
+        s = s..t[i]
+        i = i+1
+        if i <= l then s = s..jstr end
+    end
+    return s
 end
 
 -- concatenate all parameters, following output rules
 function concatparam (line, ...)
- local i=1
- while i<=arg.n do
-  if _cont and not strfind(_cont,'[%(,"]') and
-     strfind(arg[i],"^[%a_~]") then
-	    line = line .. ' '
-  end
-  line = line .. arg[i]
-  if arg[i] ~= '' then
-   _cont = strsub(arg[i],-1,-1)
-  end
-  i = i+1
- end
- if strfind(arg[arg.n],"[%/%)%;%{%}]$") then
-  _cont=nil line = line .. '\n'
- end
-	return line
+    local i=1
+    while i<=arg.n do
+        if _cont and not strfind(_cont,'[%(,"]') and
+            strfind(arg[i],"^[%a_~]") then
+            line = line .. ' '
+        end
+        line = line .. arg[i]
+        if arg[i] ~= '' then
+            _cont = strsub(arg[i],-1,-1)
+        end
+        i = i+1
+    end
+    if strfind(arg[arg.n],"[%/%)%;%{%}]$") then
+        _cont=nil line = line .. '\n'
+    end
+    return line
 end
 
 -- output line
 function output (...)
- local i=1
- while i<=arg.n do
-  if _cont and not strfind(_cont,'[%(,"]') and
-     strfind(arg[i],"^[%a_~]") then
-	    write(' ')
-  end
-  write(arg[i])
-  if arg[i] ~= '' then
-   _cont = strsub(arg[i],-1,-1)
-  end
-  i = i+1
- end
- if strfind(arg[arg.n],"[%/%)%;%{%}]$") then
-  _cont=nil write('\n')
- end
+    local i=1
+    while i<=arg.n do
+        if _cont and not strfind(_cont,'[%(,"]') and
+            strfind(arg[i],"^[%a_~]") then
+            write(' ')
+        end
+        write(arg[i])
+        if arg[i] ~= '' then
+            _cont = strsub(arg[i],-1,-1)
+        end
+        i = i+1
+    end
+    if strfind(arg[arg.n],"[%/%)%;%{%}]$") then
+        _cont=nil write('\n')
+    end
 end
 
 function get_property_methods(ptype, name)
 
-	if get_property_methods_hook and get_property_methods_hook(ptype,name) then
-		return get_property_methods_hook(ptype, name)
-	end
-
-	if ptype == "default" then -- get_name, set_name
-		return "get_"..name, "set_"..name
-	end
-
-	if ptype == "qt" then -- name, setName
-		return name, "set"..string.upper(string.sub(name, 1, 1))..string.sub(name, 2, -1)
-	end
-
-	if ptype == "overload" then -- name, name
-		return name,name
-	end
-
-	return nil
+    if get_property_methods_hook and get_property_methods_hook(ptype,name) then
+        return get_property_methods_hook(ptype, name)
+    end
+
+    if ptype == "default" then -- get_name, set_name
+        return "get_"..name, "set_"..name
+    end
+
+    if ptype == "qt" then -- name, setName
+        return name, "set"..string.upper(string.sub(name, 1, 1))..string.sub(name, 2, -1)
+    end
+
+    if ptype == "overload" then -- name, name
+        return name,name
+    end
+
+    return nil
 end
 
@@ -315,5 +315,5 @@
 -- takes the package object as the parameter
 function preprocess_hook(p)
-	-- p.code has all the input code from the pkg
+    -- p.code has all the input code from the pkg
 end
 
@@ -351,6 +351,6 @@
 function parser_hook(s)
 
-	return nil
-end
-
-
+    return nil
+end
+
+
Index: code/branches/buildsystem3/src/tolua/lua/class.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/class.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/class.lua	(revision 2664)
@@ -18,10 +18,10 @@
 --    {i}  = list of members
 classClass = {
- classtype = 'class',
- name = '',
- base = '',
- type = '',
- btype = '',
- ctype = '',
+    classtype = 'class',
+    name = '',
+    base = '',
+    type = '',
+    btype = '',
+    ctype = '',
 }
 classClass.__index = classClass
@@ -31,75 +31,75 @@
 -- register class
 function classClass:register (pre)
-	if not self:check_public_access() then
-		return
-	end
-
- pre = pre or ''
- push(self)
-	if _collect[self.type] then
-		output(pre,'#ifdef __cplusplus\n')
-  output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');')
-		output(pre,'#else\n')
-  output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);')
-		output(pre,'#endif\n')
-	else
-  output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);')
-	end
-	if self.extra_bases then
-		for k,base in ipairs(self.extra_bases) do
-			-- not now
-   --output(pre..' tolua_addbase(tolua_S, "'..self.type..'", "'..base..'");')
-		end
-	end
- output(pre..'tolua_beginmodule(tolua_S,"'..self.lname..'");')
- local i=1
- while self[i] do
-  self[i]:register(pre..' ')
-  i = i+1
- end
- output(pre..'tolua_endmodule(tolua_S);')
-	pop()
+    if not self:check_public_access() then
+        return
+    end
+
+    pre = pre or ''
+    push(self)
+    if _collect[self.type] then
+        output(pre,'#ifdef __cplusplus\n')
+        output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');')
+        output(pre,'#else\n')
+        output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);')
+        output(pre,'#endif\n')
+    else
+        output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);')
+    end
+    if self.extra_bases then
+        for k,base in ipairs(self.extra_bases) do
+            -- not now
+            --output(pre..' tolua_addbase(tolua_S, "'..self.type..'", "'..base..'");')
+        end
+    end
+    output(pre..'tolua_beginmodule(tolua_S,"'..self.lname..'");')
+    local i=1
+    while self[i] do
+        self[i]:register(pre..' ')
+        i = i+1
+    end
+    output(pre..'tolua_endmodule(tolua_S);')
+    pop()
 end
 
 -- return collection requirement
 function classClass:requirecollection (t)
-	if self.flags.protected_destructor then
-		return false
-	end
- push(self)
-	local r = false
- local i=1
- while self[i] do
-  r = self[i]:requirecollection(t) or r
-  i = i+1
- end
-	pop()
-	-- only class that exports destructor can be appropriately collected
-	-- classes that export constructors need to have a collector (overrided by -D flag on command line)
-	if self._delete or ((not flags['D']) and self._new) then
-		--t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_")
-		t[self.type] = "tolua_collect_" .. clean_template(self.type)
-		r = true
-	end
- return r
+    if self.flags.protected_destructor then
+        return false
+    end
+    push(self)
+    local r = false
+    local i=1
+    while self[i] do
+        r = self[i]:requirecollection(t) or r
+        i = i+1
+    end
+    pop()
+    -- only class that exports destructor can be appropriately collected
+    -- classes that export constructors need to have a collector (overrided by -D flag on command line)
+    if self._delete or ((not flags['D']) and self._new) then
+        --t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_")
+        t[self.type] = "tolua_collect_" .. clean_template(self.type)
+        r = true
+    end
+    return r
 end
 
 -- output tags
 function classClass:decltype ()
- push(self)
-	self.type = regtype(self.original_name or self.name)
-	self.btype = typevar(self.base)
-	self.ctype = 'const '..self.type
-	if self.extra_bases then
-		for i=1,table.getn(self.extra_bases) do
-			self.extra_bases[i] = typevar(self.extra_bases[i])
-		end
-	end
- local i=1
- while self[i] do
-  self[i]:decltype()
-  i = i+1
- end
-	pop()
+    push(self)
+    self.type = regtype(self.original_name or self.name)
+    self.btype = typevar(self.base)
+    self.ctype = 'const '..self.type
+    if self.extra_bases then
+        for i=1,table.getn(self.extra_bases) do
+            self.extra_bases[i] = typevar(self.extra_bases[i])
+        end
+    end
+    local i=1
+    while self[i] do
+        self[i]:decltype()
+        i = i+1
+    end
+    pop()
 end
 
@@ -107,29 +107,29 @@
 -- Print method
 function classClass:print (ident,close)
- print(ident.."Class{")
- print(ident.." name = '"..self.name.."',")
- print(ident.." base = '"..self.base.."';")
- print(ident.." lname = '"..self.lname.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.." btype = '"..self.btype.."',")
- print(ident.." ctype = '"..self.ctype.."',")
- local i=1
- while self[i] do
-  self[i]:print(ident.." ",",")
-  i = i+1
- end
- print(ident.."}"..close)
+    print(ident.."Class{")
+    print(ident.." name = '"..self.name.."',")
+    print(ident.." base = '"..self.base.."';")
+    print(ident.." lname = '"..self.lname.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.." btype = '"..self.btype.."',")
+    print(ident.." ctype = '"..self.ctype.."',")
+    local i=1
+    while self[i] do
+        self[i]:print(ident.." ",",")
+        i = i+1
+    end
+    print(ident.."}"..close)
 end
 
 function classClass:set_protected_destructor(p)
-	self.flags.protected_destructor = self.flags.protected_destructor or p
+self.flags.protected_destructor = self.flags.protected_destructor or p
 end
 
 -- Internal constructor
 function _Class (t)
- setmetatable(t,classClass)
- t:buildnames()
- append(t)
- return t
+    setmetatable(t,classClass)
+    t:buildnames()
+    append(t)
+    return t
 end
 
@@ -138,83 +138,83 @@
 function Class (n,p,b)
 
-	if table.getn(p) > 1 then
-		b = string.sub(b, 1, -2)
-		for i=2,table.getn(p),1 do
-			b = b.."\n tolua_inherits "..p[i].." __"..p[i].."__;\n"
-		end
-		b = b.."\n}"
-	end
-
-	-- check for template
-	b = string.gsub(b, "^{%s*TEMPLATE_BIND", "{\nTOLUA_TEMPLATE_BIND")
-	local t,_,T,I = string.find(b, "^{%s*TOLUA_TEMPLATE_BIND%s*%(+%s*\"?([^\",]*)\"?%s*,%s*([^%)]*)%s*%)+")
-	if t then
-
-		-- remove quotes
-		I = string.gsub(I, "\"", "")
-		T = string.gsub(T, "\"", "")
-		-- get type list
-		local types = split_c_tokens(I, ",")
-		-- remove TEMPLATE_BIND line
-		local bs = string.gsub(b, "^{%s*TOLUA_TEMPLATE_BIND[^\n]*\n", "{\n")
-
-		-- replace
-		for i =1 , types.n do
-
-			local Tl = split(T, " ")
-			local Il = split_c_tokens(types[i], " ")
-			local bI = bs
-			local pI = {}
-			for j = 1,Tl.n do
-				Tl[j] = findtype(Tl[j]) or Tl[j]
-				bI = string.gsub(bI, "([^_%w])"..Tl[j].."([^_%w])", "%1"..Il[j].."%2")
-				if p then
-					for i=1,table.getn(p) do
-						pI[i] = string.gsub(p[i], "([^_%w]?)"..Tl[j].."([^_%w]?)", "%1"..Il[j].."%2")
-					end
-				end
-			end
-			--local append = "<"..string.gsub(types[i], "%s+", ",")..">"
-			local append = "<"..concat(Il, 1, table.getn(Il), ",")..">"
-			append = string.gsub(append, "%s*,%s*", ",")
-			append = string.gsub(append, ">>", "> >")
-			for i=1,table.getn(pI) do
-				--pI[i] = string.gsub(pI[i], ">>", "> >")
-				pI[i] = resolve_template_types(pI[i])
-			end
-			bI = string.gsub(bI, ">>", "> >")
-			Class(n..append, pI, bI)
-		end
-		return
-	end
-
-	local mbase
-
-	if p then
-		mbase = table.remove(p, 1)
-		if not p[1] then p = nil end
-	end
-
-	mbase = mbase and resolve_template_types(mbase)
-
-	local c
-	local oname = string.gsub(n, "@.*$", "")
-	oname = getnamespace(classContainer.curr)..oname
-
-	if _global_classes[oname] then
-		c = _global_classes[oname]
-		if mbase and ((not c.base) or c.base == "") then
-			c.base = mbase
-		end
-	else
-		c = _Class(_Container{name=n, base=mbase, extra_bases=p})
-
-		local ft = getnamespace(c.parent)..c.original_name
-		append_global_type(ft, c)
-	end
-
-	push(c)
-	c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
-	pop()
-end
-
+    if table.getn(p) > 1 then
+        b = string.sub(b, 1, -2)
+        for i=2,table.getn(p),1 do
+            b = b.."\n tolua_inherits "..p[i].." __"..p[i].."__;\n"
+        end
+        b = b.."\n}"
+    end
+
+    -- check for template
+    b = string.gsub(b, "^{%s*TEMPLATE_BIND", "{\nTOLUA_TEMPLATE_BIND")
+    local t,_,T,I = string.find(b, "^{%s*TOLUA_TEMPLATE_BIND%s*%(+%s*\"?([^\",]*)\"?%s*,%s*([^%)]*)%s*%)+")
+    if t then
+
+        -- remove quotes
+        I = string.gsub(I, "\"", "")
+        T = string.gsub(T, "\"", "")
+        -- get type list
+        local types = split_c_tokens(I, ",")
+        -- remove TEMPLATE_BIND line
+        local bs = string.gsub(b, "^{%s*TOLUA_TEMPLATE_BIND[^\n]*\n", "{\n")
+
+        -- replace
+        for i =1 , types.n do
+
+            local Tl = split(T, " ")
+            local Il = split_c_tokens(types[i], " ")
+            local bI = bs
+            local pI = {}
+            for j = 1,Tl.n do
+                Tl[j] = findtype(Tl[j]) or Tl[j]
+                bI = string.gsub(bI, "([^_%w])"..Tl[j].."([^_%w])", "%1"..Il[j].."%2")
+                if p then
+                    for i=1,table.getn(p) do
+                        pI[i] = string.gsub(p[i], "([^_%w]?)"..Tl[j].."([^_%w]?)", "%1"..Il[j].."%2")
+                    end
+                end
+            end
+            --local append = "<"..string.gsub(types[i], "%s+", ",")..">"
+            local append = "<"..concat(Il, 1, table.getn(Il), ",")..">"
+            append = string.gsub(append, "%s*,%s*", ",")
+            append = string.gsub(append, ">>", "> >")
+            for i=1,table.getn(pI) do
+                --pI[i] = string.gsub(pI[i], ">>", "> >")
+                pI[i] = resolve_template_types(pI[i])
+            end
+            bI = string.gsub(bI, ">>", "> >")
+            Class(n..append, pI, bI)
+        end
+        return
+    end
+
+    local mbase
+
+    if p then
+        mbase = table.remove(p, 1)
+        if not p[1] then p = nil end
+    end
+
+    mbase = mbase and resolve_template_types(mbase)
+
+    local c
+    local oname = string.gsub(n, "@.*$", "")
+    oname = getnamespace(classContainer.curr)..oname
+
+    if _global_classes[oname] then
+        c = _global_classes[oname]
+        if mbase and ((not c.base) or c.base == "") then
+            c.base = mbase
+        end
+    else
+        c = _Class(_Container{name=n, base=mbase, extra_bases=p})
+
+        local ft = getnamespace(c.parent)..c.original_name
+        append_global_type(ft, c)
+    end
+
+    push(c)
+    c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
+    pop()
+end
+
Index: code/branches/buildsystem3/src/tolua/lua/clean.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/clean.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/clean.lua	(revision 2664)
@@ -10,70 +10,70 @@
 
 MASK = { -- the substitution order is important
- {ESC1, "\\'"},
- {ESC2, '\\"'},
- {STR1, "'"},
- {STR2, '"'},
- {STR3, "%[%["},
- {STR4, "%]%]"},
- {REM , "%-%-"},
+    {ESC1, "\\'"},
+    {ESC2, '\\"'},
+    {STR1, "'"},
+    {STR2, '"'},
+    {STR3, "%[%["},
+    {STR4, "%]%]"},
+    {REM , "%-%-"},
 }
 
 function mask (s)
- for i = 1,getn(MASK)  do
-  s = gsub(s,MASK[i][2],MASK[i][1])
- end
- return s
+    for i = 1,getn(MASK)  do
+        s = gsub(s,MASK[i][2],MASK[i][1])
+    end
+    return s
 end
 
 function unmask (s)
- for i = 1,getn(MASK)  do
-  s = gsub(s,MASK[i][1],MASK[i][2])
- end
- return s
+    for i = 1,getn(MASK)  do
+        s = gsub(s,MASK[i][1],MASK[i][2])
+    end
+    return s
 end
 
 function clean (s)
- -- check for compilation error
- local code = "return function ()\n" .. s .. "\n end"
- if not dostring(code) then
-  return nil
- end
+    -- check for compilation error
+    local code = "return function ()\n" .. s .. "\n end"
+    if not dostring(code) then
+        return nil
+    end
 
- if flags['C'] then
- 	return s
- end
+    if flags['C'] then
+        return s
+    end
 
- local S = "" -- saved string
+    local S = "" -- saved string
 
- s = mask(s)
+    s = mask(s)
 
- -- remove blanks and comments
- while 1 do
-  local b,e,d = strfind(s,ANY)
-  if b then
-   S = S..strsub(s,1,b-1)
-   s = strsub(s,b+1)
-   if d==STR1 or d==STR2 then
-    e = strfind(s,d)
-    S = S ..d..strsub(s,1,e)
-    s = strsub(s,e+1)
-   elseif d==STR3 then
-    e = strfind(s,STR4)
-    S = S..d..strsub(s,1,e)
-    s = strsub(s,e+1)
-   elseif d==REM then
-    s = gsub(s,"[^\n]*(\n?)","%1",1)
-   end
-  else
-   S = S..s
-   break
-  end
- end
- -- eliminate unecessary spaces
- S = gsub(S,"[ \t]+"," ")
- S = gsub(S,"[ \t]*\n[ \t]*","\n")
-	S = gsub(S,"\n+","\n")
- S = unmask(S)
- return S
+    -- remove blanks and comments
+    while 1 do
+        local b,e,d = strfind(s,ANY)
+        if b then
+            S = S..strsub(s,1,b-1)
+            s = strsub(s,b+1)
+            if d==STR1 or d==STR2 then
+                e = strfind(s,d)
+                S = S ..d..strsub(s,1,e)
+                s = strsub(s,e+1)
+            elseif d==STR3 then
+                e = strfind(s,STR4)
+                S = S..d..strsub(s,1,e)
+                s = strsub(s,e+1)
+            elseif d==REM then
+                s = gsub(s,"[^\n]*(\n?)","%1",1)
+            end
+        else
+            S = S..s
+            break
+        end
+    end
+    -- eliminate unecessary spaces
+    S = gsub(S,"[ \t]+"," ")
+    S = gsub(S,"[ \t]*\n[ \t]*","\n")
+    S = gsub(S,"\n+","\n")
+    S = unmask(S)
+    return S
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/code.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/code.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/code.lua	(revision 2664)
@@ -19,5 +19,5 @@
 --   text = text code
 classCode = {
- text = '',
+    text = '',
 }
 classCode.__index = classCode
@@ -26,46 +26,50 @@
 -- register code
 function classCode:register (pre)
- pre = pre or ''
- -- clean Lua code
- local s = clean(self.text)
- if not s then
-  --print(self.text)
-  error("parser error in embedded code")
- end
+    pre = pre or ''
+    -- clean Lua code
+    local s = clean(self.text)
+    if not s then
+        --print(self.text)
+        error("parser error in embedded code")
+    end
 
- -- get first line
- local _, _, first_line=string.find(self.text, "^([^\n\r]*)")
- if string.find(first_line, "^%s*%-%-") then
-	 if string.find(first_line, "^%-%-##") then
-		first_line = string.gsub(first_line, "^%-%-##", "")
-		if flags['C'] then
-			s = string.gsub(s, "^%-%-##[^\n\r]*\n", "")
-		end
-	 end
- else
- 	first_line = ""
- end
+    -- get first line
+    local _, _, first_line=string.find(self.text, "^([^\n\r]*)")
+    if string.find(first_line, "^%s*%-%-") then
+        if string.find(first_line, "^%-%-##") then
+            first_line = string.gsub(first_line, "^%-%-##", "")
+            if flags['C'] then
+                s = string.gsub(s, "^%-%-##[^\n\r]*\n", "")
+            end
+        end
+    else
+        first_line = ""
+    end
 
- -- convert to C
- output('\n'..pre..'{ /* begin embedded lua code */\n')
- output(pre..' int top = lua_gettop(tolua_S);')
- output(pre..' static unsigned char B[] = {\n   ')
- local t={n=0}
- local b = gsub(s,'(.)',function (c)
-                         local e = ''
-                         t.n=t.n+1 if t.n==15 then t.n=0 e='\n'..pre..'  ' end
-                         return format('%3u,%s',strbyte(c),e)
-                        end
-               )
- output(b..strbyte(" "))
- output('\n'..pre..' };\n')
- if first_line and first_line ~= "" then
- 	output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: '..first_line..'");')
- else
- 	output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code '..code_n..'");')
- end
- output(pre..' lua_settop(tolua_S, top);')
- output(pre..'} /* end of embedded lua code */\n\n')
- code_n = code_n +1
+    -- convert to C
+    output('\n'..pre..'{ /* begin embedded lua code */\n')
+    output(pre..' int top = lua_gettop(tolua_S);')
+    output(pre..' static unsigned char B[] = {\n   ')
+    local t={n=0}
+    local b = gsub(s, '(.)',
+        function (c)
+            local e = ''
+            t.n=t.n+1
+            if t.n==15 then
+             t.n=0 e='\n'..pre..'  '
+            end
+            return format('%3u,%s',strbyte(c),e)
+        end
+    )
+    output(b..strbyte(" "))
+    output('\n'..pre..' };\n')
+    if first_line and first_line ~= "" then
+        output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: '..first_line..'");')
+    else
+        output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code '..code_n..'");')
+    end
+    output(pre..' lua_settop(tolua_S, top);')
+    output(pre..'} /* end of embedded lua code */\n\n')
+    code_n = code_n +1
 end
 
@@ -73,7 +77,7 @@
 -- Print method
 function classCode:print (ident,close)
- print(ident.."Code{")
- print(ident.." text = [["..self.text.."]],")
- print(ident.."}"..close)
+    print(ident.."Code{")
+    print(ident.." text = [["..self.text.."]],")
+    print(ident.."}"..close)
 end
 
@@ -81,7 +85,7 @@
 -- Internal constructor
 function _Code (t)
- setmetatable(t,classCode)
- append(t)
- return t
+    setmetatable(t,classCode)
+    append(t)
+    return t
 end
 
@@ -89,7 +93,7 @@
 -- Expects a string representing the code text
 function Code (l)
- return _Code {
-  text = l
- }
+    return _Code {
+        text = l
+    }
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/compat-5.1.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/compat-5.1.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/compat-5.1.lua	(revision 2664)
@@ -1,31 +1,30 @@
 if string.find(_VERSION, "5%.0") then
-	return
+    return
 end
 
 -- "loadfile"
 local function pp_dofile(path)
+    local loaded = false
+    local getfile = function()
 
-	local loaded = false
-	local getfile = function()
+        if loaded then
+            return
+        else
+            local file,err = io.open(path)
+            if not file then
+                error("error loading file "..path..": "..err)
+            end
+            local ret = file:read("*a")
+            file:close()
 
-		if loaded then
-			return
-		else
-			local file,err = io.open(path)
-			if not file then
-				error("error loading file "..path..": "..err)
-			end
-			local ret = file:read("*a")
-			file:close()
+            ret = string.gsub(ret, "%.%.%.%s*%)", "...) local arg = {n=select('#', ...), ...};")
 
-			ret = string.gsub(ret, "%.%.%.%s*%)", "...) local arg = {n=select('#', ...), ...};")
+            loaded = true
+            return ret
+        end
+    end
 
-			loaded = true
-			return ret
-		end
-	end
-
-	local f = load(getfile, path)
-	return f()
+    local f = load(getfile, path)
+    return f()
 end
 
@@ -38,9 +37,9 @@
 local ogsub = string.gsub
 local function compgsub(a,b,c,d)
-  if type(c) == "function" then
-    local oc = c
-    c = function (...) return oc(...) or '' end
-  end
-  return ogsub(a,b,c,d)
+    if type(c) == "function" then
+        local oc = c
+        c = function (...) return oc(...) or '' end
+    end
+    return ogsub(a,b,c,d)
 end
 string.repl = ogsub
Index: code/branches/buildsystem3/src/tolua/lua/compat.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/compat.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/compat.lua	(revision 2664)
@@ -34,9 +34,9 @@
 
 function do_ (f, err)
-  if not f then print(err); return end
-  local a,b = pcall(f)
-  if not a then print(b); return nil
-  else return b or true
-  end
+    if not f then print(err); return end
+    local a,b = pcall(f)
+    if not a then print(b); return nil
+    else return b or true
+    end
 end
 
@@ -141,53 +141,53 @@
 
 function flush (f)
-  if f then f:flush()
-  else _OUTPUT:flush()
-  end
+    if f then f:flush()
+    else _OUTPUT:flush()
+    end
 end
 
 function readfrom (name)
-  if name == nil then
-    local f, err, cod = io.close(_INPUT)
-    _INPUT = io.stdin
-    return f, err, cod
-  else
-    local f, err, cod = io.open(name, "r")
-    _INPUT = f or _INPUT
-    return f, err, cod
-  end
+    if name == nil then
+        local f, err, cod = io.close(_INPUT)
+        _INPUT = io.stdin
+        return f, err, cod
+    else
+        local f, err, cod = io.open(name, "r")
+        _INPUT = f or _INPUT
+        return f, err, cod
+    end
 end
 
 function writeto (name)
-  if name == nil then
-    local f, err, cod = io.close(_OUTPUT)
-    _OUTPUT = io.stdout
-    return f, err, cod
-  else
-    local f, err, cod = io.open(name, "w")
-    _OUTPUT = f or _OUTPUT
-    return f, err, cod
-  end
+    if name == nil then
+        local f, err, cod = io.close(_OUTPUT)
+        _OUTPUT = io.stdout
+        return f, err, cod
+    else
+        local f, err, cod = io.open(name, "w")
+        _OUTPUT = f or _OUTPUT
+        return f, err, cod
+    end
 end
 
 function appendto (name)
-  local f, err, cod = io.open(name, "a")
-  _OUTPUT = f or _OUTPUT
-  return f, err, cod
+    local f, err, cod = io.open(name, "a")
+    _OUTPUT = f or _OUTPUT
+    return f, err, cod
 end
 
 function read (...)
-  local f = _INPUT
-  if rawtype(arg[1]) == 'userdata' then
-    f = tab.remove(arg, 1)
-  end
-  return f:read(unpack(arg))
+    local f = _INPUT
+    if rawtype(arg[1]) == 'userdata' then
+        f = tab.remove(arg, 1)
+    end
+    return f:read(unpack(arg))
 end
 
 function write (...)
-  local f = _OUTPUT
-  if rawtype(arg[1]) == 'userdata' then
-    f = tab.remove(arg, 1)
-  end
-  return f:write(unpack(arg))
+    local f = _OUTPUT
+    if rawtype(arg[1]) == 'userdata' then
+        f = tab.remove(arg, 1)
+    end
+    return f:write(unpack(arg))
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/container.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/container.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/container.lua	(revision 2664)
@@ -19,5 +19,5 @@
 classContainer =
 {
- curr = nil,
+    curr = nil,
 }
 classContainer.__index = classContainer
@@ -26,11 +26,11 @@
 -- output tags
 function classContainer:decltype ()
- push(self)
- local i=1
- while self[i] do
-  self[i]:decltype()
-  i = i+1
- end
- pop()
+    push(self)
+    local i=1
+    while self[i] do
+        self[i]:decltype()
+        i = i+1
+    end
+    pop()
 end
 
@@ -39,123 +39,123 @@
 function classContainer:supcode ()
 
-	if not self:check_public_access() then
-		return
-	end
-
- push(self)
- local i=1
- while self[i] do
-  if self[i]:check_public_access() then
-  	self[i]:supcode()
-  end
-  i = i+1
- end
- pop()
+    if not self:check_public_access() then
+        return
+    end
+
+    push(self)
+    local i=1
+    while self[i] do
+        if self[i]:check_public_access() then
+            self[i]:supcode()
+        end
+        i = i+1
+    end
+    pop()
 end
 
 function classContainer:hasvar ()
- local i=1
- while self[i] do
-  if self[i]:isvariable() then
-		 return 1
-		end
-  i = i+1
- end
-	return 0
+    local i=1
+    while self[i] do
+        if self[i]:isvariable() then
+            return 1
+        end
+        i = i+1
+    end
+    return 0
 end
 
 -- Internal container constructor
 function _Container (self)
- setmetatable(self,classContainer)
- self.n = 0
- self.typedefs = {tolua_n=0}
- self.usertypes = {}
- self.enums = {tolua_n=0}
- self.lnames = {}
- return self
+    setmetatable(self,classContainer)
+    self.n = 0
+    self.typedefs = {tolua_n=0}
+    self.usertypes = {}
+    self.enums = {tolua_n=0}
+    self.lnames = {}
+    return self
 end
 
 -- push container
 function push (t)
-	t.prox = classContainer.curr
- classContainer.curr = t
+    t.prox = classContainer.curr
+    classContainer.curr = t
 end
 
 -- pop container
 function pop ()
---print("name",classContainer.curr.name)
---foreach(classContainer.curr.usertypes,print)
---print("______________")
- classContainer.curr = classContainer.curr.prox
+    --print("name",classContainer.curr.name)
+    --foreach(classContainer.curr.usertypes,print)
+    --print("______________")
+    classContainer.curr = classContainer.curr.prox
 end
 
 -- get current namespace
 function getcurrnamespace ()
-	return getnamespace(classContainer.curr)
+    return getnamespace(classContainer.curr)
 end
 
 -- append to current container
 function append (t)
- return classContainer.curr:append(t)
+    return classContainer.curr:append(t)
 end
 
 -- append typedef to current container
 function appendtypedef (t)
- return classContainer.curr:appendtypedef(t)
+    return classContainer.curr:appendtypedef(t)
 end
 
 -- append usertype to current container
 function appendusertype (t)
- return classContainer.curr:appendusertype(t)
+    return classContainer.curr:appendusertype(t)
 end
 
 -- append enum to current container
 function appendenum (t)
- return classContainer.curr:appendenum(t)
+    return classContainer.curr:appendenum(t)
 end
 
 -- substitute typedef
 function applytypedef (mod,type)
- return classContainer.curr:applytypedef(mod,type)
+    return classContainer.curr:applytypedef(mod,type)
 end
 
 -- check if is type
 function findtype (type)
- local t = classContainer.curr:findtype(type)
-	return t
+    local t = classContainer.curr:findtype(type)
+    return t
 end
 
 -- check if is typedef
 function istypedef (type)
- return classContainer.curr:istypedef(type)
+    return classContainer.curr:istypedef(type)
 end
 
 -- get fulltype (with namespace)
 function fulltype (t)
- local curr =  classContainer.curr
-	while curr do
-	 if curr then
-		 if curr.typedefs and curr.typedefs[t] then
-		  return curr.typedefs[t]
-		 elseif curr.usertypes and curr.usertypes[t] then
-		  return curr.usertypes[t]
-			end
-		end
-	 curr = curr.prox
-	end
-	return t
+    local curr =  classContainer.curr
+    while curr do
+        if curr then
+            if curr.typedefs and curr.typedefs[t] then
+                return curr.typedefs[t]
+            elseif curr.usertypes and curr.usertypes[t] then
+                return curr.usertypes[t]
+            end
+        end
+        curr = curr.prox
+    end
+    return t
 end
 
 -- checks if it requires collection
 function classContainer:requirecollection (t)
- push(self)
- local i=1
-	local r = false
- while self[i] do
-  r = self[i]:requirecollection(t) or r
-  i = i+1
- end
-	pop()
-	return r
+    push(self)
+    local i=1
+    local r = false
+    while self[i] do
+        r = self[i]:requirecollection(t) or r
+        i = i+1
+    end
+    pop()
+    return r
 end
 
@@ -163,142 +163,141 @@
 -- get namesapce
 function getnamespace (curr)
-	local namespace = ''
-	while curr do
-	 if curr and
-		   ( curr.classtype == 'class' or curr.classtype == 'namespace')
-		then
-		 namespace = (curr.original_name or curr.name) .. '::' .. namespace
-		 --namespace = curr.name .. '::' .. namespace
-		end
-	 curr = curr.prox
-	end
-	return namespace
+    local namespace = ''
+    while curr do
+        if curr and
+            ( curr.classtype == 'class' or curr.classtype == 'namespace')
+        then
+            namespace = (curr.original_name or curr.name) .. '::' .. namespace
+            --namespace = curr.name .. '::' .. namespace
+        end
+        curr = curr.prox
+    end
+    return namespace
 end
 
 -- get namespace (only namespace)
 function getonlynamespace ()
- local curr = classContainer.curr
-	local namespace = ''
-	while curr do
-		if curr.classtype == 'class' then
-		 return namespace
-		elseif curr.classtype == 'namespace' then
-		 namespace = curr.name .. '::' .. namespace
-		end
-	 curr = curr.prox
-	end
-	return namespace
+    local curr = classContainer.curr
+    local namespace = ''
+    while curr do
+        if curr.classtype == 'class' then
+            return namespace
+        elseif curr.classtype == 'namespace' then
+            namespace = curr.name .. '::' .. namespace
+        end
+        curr = curr.prox
+    end
+    return namespace
 end
 
 -- check if is enum
 function isenum (type)
- return classContainer.curr:isenum(type)
+    return classContainer.curr:isenum(type)
 end
 
 -- append feature to container
 function classContainer:append (t)
- self.n = self.n + 1
- self[self.n] = t
- t.parent = self
+    self.n = self.n + 1
+    self[self.n] = t
+    t.parent = self
 end
 
 -- append typedef
 function classContainer:appendtypedef (t)
- local namespace = getnamespace(classContainer.curr)
- self.typedefs.tolua_n = self.typedefs.tolua_n + 1
- self.typedefs[self.typedefs.tolua_n] = t
-	self.typedefs[t.utype] = namespace .. t.utype
-	global_typedefs[namespace..t.utype] = t
-	t.ftype = findtype(t.type) or t.type
-	--print("appending typedef "..t.utype.." as "..namespace..t.utype.." with ftype "..t.ftype)
-	append_global_type(namespace..t.utype)
-	if t.ftype and isenum(t.ftype) then
-
-		global_enums[namespace..t.utype] = true
-	end
+    local namespace = getnamespace(classContainer.curr)
+    self.typedefs.tolua_n = self.typedefs.tolua_n + 1
+    self.typedefs[self.typedefs.tolua_n] = t
+    self.typedefs[t.utype] = namespace .. t.utype
+    global_typedefs[namespace..t.utype] = t
+    t.ftype = findtype(t.type) or t.type
+    --print("appending typedef "..t.utype.." as "..namespace..t.utype.." with ftype "..t.ftype)
+    append_global_type(namespace..t.utype)
+    if t.ftype and isenum(t.ftype) then
+        global_enums[namespace..t.utype] = true
+    end
 end
 
 -- append usertype: return full type
 function classContainer:appendusertype (t)
-	local container
-	if t == (self.original_name or self.name) then
-		container = self.prox
-	else
-		container = self
-	end
-	local ft = getnamespace(container) .. t
-	container.usertypes[t] = ft
-	_usertype[ft] = ft
-	return ft
+    local container
+    if t == (self.original_name or self.name) then
+        container = self.prox
+    else
+        container = self
+    end
+    local ft = getnamespace(container) .. t
+    container.usertypes[t] = ft
+    _usertype[ft] = ft
+    return ft
 end
 
 -- append enum
 function classContainer:appendenum (t)
- local namespace = getnamespace(classContainer.curr)
- self.enums.tolua_n = self.enums.tolua_n + 1
- self.enums[self.enums.tolua_n] = t
-	global_enums[namespace..t.name] = t
+    local namespace = getnamespace(classContainer.curr)
+    self.enums.tolua_n = self.enums.tolua_n + 1
+    self.enums[self.enums.tolua_n] = t
+    global_enums[namespace..t.name] = t
 end
 
 -- determine lua function name overload
 function classContainer:overload (lname)
- if not self.lnames[lname] then
-  self.lnames[lname] = 0
- else
-  self.lnames[lname] = self.lnames[lname] + 1
- end
- return format("%02d",self.lnames[lname])
+    if not self.lnames[lname] then
+        self.lnames[lname] = 0
+    else
+        self.lnames[lname] = self.lnames[lname] + 1
+    end
+    return format("%02d",self.lnames[lname])
 end
 
 -- applies typedef: returns the 'the facto' modifier and type
 function classContainer:applytypedef (mod,type)
-	if global_typedefs[type] then
-		--print("found typedef "..global_typedefs[type].type)
-		local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].ftype
-		local mod2, type2 = applytypedef(mod.." "..mod1, type1)
-		--return mod2 .. ' ' .. mod1, type2
-		return mod2, type2
-	end
-	do return mod,type end
+    if global_typedefs[type] then
+        --print("found typedef "..global_typedefs[type].type)
+        local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].ftype
+        local mod2, type2 = applytypedef(mod.." "..mod1, type1)
+        --return mod2 .. ' ' .. mod1, type2
+        return mod2, type2
+    end
+    do return mod,type end
 end
 
 -- check if it is a typedef
 function classContainer:istypedef (type)
- local env = self
- while env do
-  if env.typedefs then
-   local i=1
-   while env.typedefs[i] do
-    if env.typedefs[i].utype == type then
-         return type
-        end
-        i = i+1
-   end
-  end
-  env = env.parent
- end
- return nil
+    local env = self
+    while env do
+        if env.typedefs then
+            local i=1
+            while env.typedefs[i] do
+                if env.typedefs[i].utype == type then
+                    return type
+                end
+                i = i+1
+            end
+        end
+        env = env.parent
+    end
+    return nil
 end
 
 function find_enum_var(var)
 
-	if tonumber(var) then return var end
-
-	local c = classContainer.curr
-	while c do
-		local ns = getnamespace(c)
-		for k,v in pairs(_global_enums) do
-			if match_type(var, v, ns) then
-				return v
-			end
-		end
-		if c.base and c.base ~= '' then
-			c = _global_classes[c:findtype(c.base)]
-		else
-			c = nil
-		end
-	end
-
-	return var
+    if tonumber(var) then return var end
+
+    local c = classContainer.curr
+    while c do
+        local ns = getnamespace(c)
+        for k,v in pairs(_global_enums) do
+            if match_type(var, v, ns) then
+                return v
+            end
+        end
+        if c.base and c.base ~= '' then
+            c = _global_classes[c:findtype(c.base)]
+        else
+            c = nil
+        end
+    end
+
+    return var
 end
 
@@ -306,108 +305,108 @@
 function classContainer:findtype (t)
 
-	t = string.gsub(t, "=.*", "")
-	if _basic[t] then
-	 return t
-	end
-
-	local _,_,em = string.find(t, "([&%*])%s*$")
-	t = string.gsub(t, "%s*([&%*])%s*$", "")
-	p = self
-	while p and type(p)=='table' do
-		local st = getnamespace(p)
-
-		for i=_global_types.n,1,-1 do -- in reverse order
-
-			if match_type(t, _global_types[i], st) then
-				return _global_types[i]..(em or "")
-			end
-		end
-		if p.base and p.base ~= '' and p.base ~= t then
-			--print("type is "..t..", p is "..p.base.." self.type is "..self.type.." self.name is "..self.name)
-			p = _global_classes[p:findtype(p.base)]
-		else
-			p = nil
-		end
-	end
-
-	return nil
+    t = string.gsub(t, "=.*", "")
+    if _basic[t] then
+     return t
+    end
+
+    local _,_,em = string.find(t, "([&%*])%s*$")
+    t = string.gsub(t, "%s*([&%*])%s*$", "")
+    p = self
+    while p and type(p)=='table' do
+        local st = getnamespace(p)
+
+        for i=_global_types.n,1,-1 do -- in reverse order
+
+            if match_type(t, _global_types[i], st) then
+                return _global_types[i]..(em or "")
+            end
+        end
+        if p.base and p.base ~= '' and p.base ~= t then
+            --print("type is "..t..", p is "..p.base.." self.type is "..self.type.." self.name is "..self.name)
+            p = _global_classes[p:findtype(p.base)]
+        else
+            p = nil
+        end
+    end
+
+    return nil
 end
 
 function append_global_type(t, class)
-	_global_types.n = _global_types.n +1
-	_global_types[_global_types.n] = t
-	_global_types_hash[t] = 1
-	if class then append_class_type(t, class) end
+    _global_types.n = _global_types.n +1
+    _global_types[_global_types.n] = t
+    _global_types_hash[t] = 1
+    if class then append_class_type(t, class) end
 end
 
 function append_class_type(t,class)
-	if _global_classes[t] then
-		class.flags = _global_classes[t].flags
-		class.lnames = _global_classes[t].lnames
-		if _global_classes[t].base and (_global_classes[t].base ~= '') then
-			class.base = _global_classes[t].base or class.base
-		end
-	end
-	_global_classes[t] = class
-	class.flags = class.flags or {}
+    if _global_classes[t] then
+        class.flags = _global_classes[t].flags
+        class.lnames = _global_classes[t].lnames
+        if _global_classes[t].base and (_global_classes[t].base ~= '') then
+            class.base = _global_classes[t].base or class.base
+        end
+    end
+    _global_classes[t] = class
+    class.flags = class.flags or {}
 end
 
 function match_type(childtype, regtype, st)
 --print("findtype "..childtype..", "..regtype..", "..st)
-	local b,e = string.find(regtype, childtype, -string.len(childtype), true)
-	if b then
-
-		if e == string.len(regtype) and
-				(b == 1 or (string.sub(regtype, b-1, b-1) == ':' and
-				string.sub(regtype, 1, b-1) == string.sub(st, 1, b-1))) then
-			return true
-		end
-	end
-
-	return false
+    local b,e = string.find(regtype, childtype, -string.len(childtype), true)
+    if b then
+
+        if e == string.len(regtype) and
+                (b == 1 or (string.sub(regtype, b-1, b-1) == ':' and
+                string.sub(regtype, 1, b-1) == string.sub(st, 1, b-1))) then
+            return true
+        end
+    end
+
+    return false
 end
 
 function findtype_on_childs(self, t)
 
-	local tchild
-	if self.classtype == 'class' or self.classtype == 'namespace' then
-		for k,v in ipairs(self) do
-			if v.classtype == 'class' or v.classtype == 'namespace' then
-				if v.typedefs and v.typedefs[t] then
-				 return v.typedefs[t]
-				elseif v.usertypes and v.usertypes[t] then
-				 return v.usertypes[t]
-				end
-				tchild = findtype_on_childs(v, t)
-				if tchild then return tchild end
-			end
-		end
-	end
-	return nil
+    local tchild
+    if self.classtype == 'class' or self.classtype == 'namespace' then
+        for k,v in ipairs(self) do
+            if v.classtype == 'class' or v.classtype == 'namespace' then
+                if v.typedefs and v.typedefs[t] then
+                 return v.typedefs[t]
+                elseif v.usertypes and v.usertypes[t] then
+                 return v.usertypes[t]
+                end
+                tchild = findtype_on_childs(v, t)
+                if tchild then return tchild end
+            end
+        end
+    end
+    return nil
 
 end
 
 function classContainer:isenum (type)
- if global_enums[type] then
-	return type
- else
- 	return false
- end
-
- local basetype = gsub(type,"^.*::","")
- local env = self
- while env do
-  if env.enums then
-   local i=1
-   while env.enums[i] do
-    if env.enums[i].name == basetype then
-         return true
-        end
-        i = i+1
-   end
-  end
-  env = env.parent
- end
- return false
+    if global_enums[type] then
+        return type
+    else
+        return false
+    end
+
+    local basetype = gsub(type,"^.*::","")
+    local env = self
+    while env do
+        if env.enums then
+            local i=1
+            while env.enums[i] do
+                if env.enums[i].name == basetype then
+                    return true
+                end
+                i = i+1
+            end
+        end
+        env = env.parent
+    end
+    return false
 end
 
@@ -416,327 +415,327 @@
 -- parse chunk
 function classContainer:doparse (s)
---print ("parse "..s)
-
- -- try the parser hook
- do
- 	local sub = parser_hook(s)
- 	if sub then
- 		return sub
- 	end
- end
-
- -- try the null statement
- do
- 	local b,e,code = string.find(s, "^%s*;")
- 	if b then
- 		return strsub(s,e+1)
- 	end
- end
-
- -- try empty verbatim line
- do
- 	local b,e,code = string.find(s, "^%s*$\n")
- 	if b then
- 		return strsub(s,e+1)
- 	end
- end
-
- -- try Lua code
- do
-  local b,e,code = strfind(s,"^%s*(%b\1\2)")
-  if b then
-   Code(strsub(code,2,-2))
-   return strsub(s,e+1)
-  end
- end
-
- -- try C code
- do
-  local b,e,code = strfind(s,"^%s*(%b\3\4)")
-  if b then
-	code = '{'..strsub(code,2,-2)..'\n}\n'
-	Verbatim(code,'r')        -- verbatim code for 'r'egister fragment
-	return strsub(s,e+1)
-  end
- end
-
- -- try C code for preamble section
- do
- 	local b,e,code = string.find(s, "^%s*(%b\5\6)")
- 	if b then
- 		code = string.sub(code, 2, -2).."\n"
-		Verbatim(code, '')
-		return string.sub(s, e+1)
- 	end
- end
-
- -- try default_property directive
- do
- 	local b,e,ptype = strfind(s, "^%s*TOLUA_PROPERTY_TYPE%s*%(+%s*([^%)%s]*)%s*%)+%s*;?")
- 	if b then
- 		if not ptype or ptype == "" then
- 			ptype = "default"
- 		end
- 		self:set_property_type(ptype)
-	 	return strsub(s, e+1)
- 	end
- end
-
- -- try protected_destructor directive
- do
- 	local b,e = string.find(s, "^%s*TOLUA_PROTECTED_DESTRUCTOR%s*;?")
-	if b then
-		if self.set_protected_destructor then
-	 		self:set_protected_destructor(true)
-	 	end
- 		return strsub(s, e+1)
- 	end
- end
-
- -- try 'extern' keyword
- do
- 	local b,e = string.find(s, "^%s*extern%s+")
- 	if b then
-		-- do nothing
- 		return strsub(s, e+1)
- 	end
- end
-	
- -- try 'virtual' keyworkd
- do
- 	local b,e = string.find(s, "^%s*virtual%s+")
- 	if b then
- 		methodisvirtual = true
- 		return strsub(s, e+1)
- 	end
- end
-
- -- try labels (public, private, etc)
- do
- 	local b,e = string.find(s, "^%s*%w*%s*:[^:]")
- 	if b then
- 		return strsub(s, e) -- preserve the [^:]
- 	end
- end
-
- -- try module
- do
-  local b,e,name,body = strfind(s,"^%s*module%s%s*([_%w][_%w]*)%s*(%b{})%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Module(name,body)
-   return strsub(s,e+1)
-  end
- end
-
- -- try namesapce
- do
-  local b,e,name,body = strfind(s,"^%s*namespace%s%s*([_%w][_%w]*)%s*(%b{})%s*;?")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Namespace(name,body)
-   return strsub(s,e+1)
-  end
- end
-
- -- try define
- do
-  local b,e,name = strfind(s,"^%s*#define%s%s*([^%s]*)[^\n]*\n%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Define(name)
-   return strsub(s,e+1)
-  end
- end
-
- -- try enumerates
-
- do
-  local b,e,name,body,varname = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*([^%s;]*)%s*;?%s*")
-  if b then
-   --error("#Sorry, declaration of enums and variables on the same statement is not supported.\nDeclare your variable separately (example: '"..name.." "..varname..";')")
-   _curr_code = strsub(s,b,e)
-   Enumerate(name,body,varname)
-   return strsub(s,e+1)
-  end
- end
-
--- do
---  local b,e,name,body = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*;?%s*")
---  if b then
---   _curr_code = strsub(s,b,e)
---   Enumerate(name,body)
---  return strsub(s,e+1)
---  end
--- end
-
- do
-  local b,e,body,name = strfind(s,"^%s*typedef%s+enum[^{]*(%b{})%s*([%w_][^%s]*)%s*;%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Enumerate(name,body)
-   return strsub(s,e+1)
-  end
- end
-
- -- try operator
- do
-  local b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*;%s*")
-  if not b then
-		 -- try inline
-   b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)[%s\n]*%b{}%s*;?%s*")
-  end
-  if not b then
-  	-- try cast operator
-  	b,e,decl,kind,arg,const = strfind(s, "^%s*(operator)%s+([%w_:%d<>%*%&%s]+)%s*(%b())%s*(c?o?n?s?t?)");
-  	if b then
-  		local _,ie = string.find(s, "^%s*%b{}", e+1)
-  		if ie then
-  			e = ie
-  		end
-  	end
-  end
-  if b then
-   _curr_code = strsub(s,b,e)
-   Operator(decl,kind,arg,const)
-   return strsub(s,e+1)
-  end
- end
-
- -- try function
- do
-  --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w])%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*")
-  local b,e,decl,arg,const,virt = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)%s*(=?%s*0?)%s*;%s*")
-  if not b then
-  	-- try function with template
-  	b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w]%b<>)%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*")
-  end
-  if not b then
-   -- try a single letter function name
-   b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?)%s*;%s*")
-  end
-  if b then
-  	if virt and string.find(virt, "[=0]") then
-  		if self.flags then
-  			self.flags.pure_virtual = true
-  		end
-  	end
-   _curr_code = strsub(s,b,e)
-   Function(decl,arg,const)
-   return strsub(s,e+1)
-  end
- end
-
- -- try inline function
- do
-  local b,e,decl,arg,const = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)[^;{]*%b{}%s*;?%s*")
-  --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w>])%s*(%b())%s*(c?o?n?s?t?)[^;]*%b{}%s*;?%s*")
-  if not b then
-   -- try a single letter function name
-   b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*;?%s*")
-  end
-  if b then
-   _curr_code = strsub(s,b,e)
-   Function(decl,arg,const)
-   return strsub(s,e+1)
-  end
- end
-
- -- try class
- do
-	 local b,e,name,base,body
-		base = '' body = ''
-		b,e,name = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*;")  -- dummy class
-		if not b then
-			b,e,name = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*;")    -- dummy struct
-			if not b then
-				b,e,name,base,body = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
-				if not b then
-					b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
-					if not b then
-						b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
-						if not b then
-							base = ''
-							b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*")
-						end
-					end
-				end
-			end
-		end
-		if b then
-			if base ~= '' then
-				base = string.gsub(base, "^%s*:%s*", "")
-				base = string.gsub(base, "%s*public%s*", "")
-				base = split(base, ",")
-				--local b,e
-				--b,e,base = strfind(base,".-([_%w][_%w<>,:]*)$")
-			else
-				base = {}
-			end
-			_curr_code = strsub(s,b,e)
-			Class(name,base,body)
-			return strsub(s,e+1)
-		end
-	end
-
- -- try typedef
- do
-  local b,e,types = strfind(s,"^%s*typedef%s%s*(.-)%s*;%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Typedef(types)
-   return strsub(s,e+1)
-  end
- end
-
- -- try variable
- do
-  local b,e,decl = strfind(s,"^%s*([_%w][_@%s%w%d%*&:<>,]*[_%w%d])%s*;%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-
-	local list = split_c_tokens(decl, ",")
-	Variable(list[1])
-	if list.n > 1 then
-		local _,_,type = strfind(list[1], "(.-)%s+([^%s]*)$");
-
-		local i =2;
-		while list[i] do
-			Variable(type.." "..list[i])
-			i=i+1
-		end
-	end
-   --Variable(decl)
-   return strsub(s,e+1)
-  end
- end
-
-	-- try string
- do
-  local b,e,decl = strfind(s,"^%s*([_%w]?[_%s%w%d]-char%s+[_@%w%d]*%s*%[%s*%S+%s*%])%s*;%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Variable(decl)
-   return strsub(s,e+1)
-  end
- end
-
- -- try array
- do
-  local b,e,decl = strfind(s,"^%s*([_%w][][_@%s%w%d%*&:]*[]_%w%d])%s*;%s*")
-  if b then
-   _curr_code = strsub(s,b,e)
-   Array(decl)
-   return strsub(s,e+1)
-  end
- end
-
- -- no matching
- if gsub(s,"%s%s*","") ~= "" then
-  _curr_code = s
-  error("#parse error")
- else
-  return ""
- end
+    --print ("parse "..s)
+
+    -- try the parser hook
+    do
+        local sub = parser_hook(s)
+        if sub then
+            return sub
+        end
+    end
+
+    -- try the null statement
+    do
+        local b,e,code = string.find(s, "^%s*;")
+        if b then
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try empty verbatim line
+    do
+        local b,e,code = string.find(s, "^%s*$\n")
+        if b then
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try Lua code
+    do
+        local b,e,code = strfind(s,"^%s*(%b\1\2)")
+        if b then
+            Code(strsub(code,2,-2))
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try C code
+    do
+        local b,e,code = strfind(s,"^%s*(%b\3\4)")
+        if b then
+            code = '{'..strsub(code,2,-2)..'\n}\n'
+            Verbatim(code,'r')        -- verbatim code for 'r'egister fragment
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try C code for preamble section
+    do
+        local b,e,code = string.find(s, "^%s*(%b\5\6)")
+        if b then
+            code = string.sub(code, 2, -2).."\n"
+            Verbatim(code, '')
+            return string.sub(s, e+1)
+        end
+    end
+
+    -- try default_property directive
+    do
+        local b,e,ptype = strfind(s, "^%s*TOLUA_PROPERTY_TYPE%s*%(+%s*([^%)%s]*)%s*%)+%s*;?")
+        if b then
+            if not ptype or ptype == "" then
+                ptype = "default"
+            end
+            self:set_property_type(ptype)
+            return strsub(s, e+1)
+        end
+    end
+
+    -- try protected_destructor directive
+    do
+        local b,e = string.find(s, "^%s*TOLUA_PROTECTED_DESTRUCTOR%s*;?")
+        if b then
+            if self.set_protected_destructor then
+                self:set_protected_destructor(true)
+            end
+            return strsub(s, e+1)
+        end
+    end
+
+    -- try 'extern' keyword
+    do
+        local b,e = string.find(s, "^%s*extern%s+")
+        if b then
+            -- do nothing
+            return strsub(s, e+1)
+        end
+    end
+
+    -- try 'virtual' keyworkd
+    do
+        local b,e = string.find(s, "^%s*virtual%s+")
+        if b then
+            methodisvirtual = true
+            return strsub(s, e+1)
+        end
+    end
+
+    -- try labels (public, private, etc)
+    do
+        local b,e = string.find(s, "^%s*%w*%s*:[^:]")
+        if b then
+            return strsub(s, e) -- preserve the [^:]
+        end
+    end
+
+    -- try module
+    do
+        local b,e,name,body = strfind(s,"^%s*module%s%s*([_%w][_%w]*)%s*(%b{})%s*")
+        if b then
+            _curr_code = strsub(s,b,e)
+            Module(name,body)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try namesapce
+    do
+        local b,e,name,body = strfind(s,"^%s*namespace%s%s*([_%w][_%w]*)%s*(%b{})%s*;?")
+        if b then
+            _curr_code = strsub(s,b,e)
+            Namespace(name,body)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try define
+    do
+        local b,e,name = strfind(s,"^%s*#define%s%s*([^%s]*)[^\n]*\n%s*")
+        if b then
+            _curr_code = strsub(s,b,e)
+            Define(name)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try enumerates
+
+    do
+        local b,e,name,body,varname = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*([^%s;]*)%s*;?%s*")
+        if b then
+            --error("#Sorry, declaration of enums and variables on the same statement is not supported.\nDeclare your variable separately (example: '"..name.." "..varname..";')")
+            _curr_code = strsub(s,b,e)
+            Enumerate(name,body,varname)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- do
+    --    local b,e,name,body = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*;?%s*")
+    --    if b then
+    --        _curr_code = strsub(s,b,e)
+    --        Enumerate(name,body)
+    --        return strsub(s,e+1)
+    --    end
+    -- end
+
+    do
+        local b,e,body,name = strfind(s,"^%s*typedef%s+enum[^{]*(%b{})%s*([%w_][^%s]*)%s*;%s*")
+        if b then
+        _curr_code = strsub(s,b,e)
+        Enumerate(name,body)
+        return strsub(s,e+1)
+        end
+    end
+
+    -- try operator
+    do
+        local b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*;%s*")
+        if not b then
+            -- try inline
+            b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)[%s\n]*%b{}%s*;?%s*")
+        end
+        if not b then
+            -- try cast operator
+            b,e,decl,kind,arg,const = strfind(s, "^%s*(operator)%s+([%w_:%d<>%*%&%s]+)%s*(%b())%s*(c?o?n?s?t?)");
+            if b then
+                local _,ie = string.find(s, "^%s*%b{}", e+1)
+                if ie then
+                    e = ie
+                end
+            end
+        end
+        if b then
+            _curr_code = strsub(s,b,e)
+            Operator(decl,kind,arg,const)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try function
+    do
+        --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w])%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*")
+        local b,e,decl,arg,const,virt = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)%s*(=?%s*0?)%s*;%s*")
+        if not b then
+            -- try function with template
+            b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w]%b<>)%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*")
+        end
+        if not b then
+            -- try a single letter function name
+            b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?)%s*;%s*")
+        end
+        if b then
+            if virt and string.find(virt, "[=0]") then
+                if self.flags then
+                    self.flags.pure_virtual = true
+                end
+            end
+            _curr_code = strsub(s,b,e)
+            Function(decl,arg,const)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try inline function
+    do
+        local b,e,decl,arg,const = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)[^;{]*%b{}%s*;?%s*")
+        --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w>])%s*(%b())%s*(c?o?n?s?t?)[^;]*%b{}%s*;?%s*")
+        if not b then
+            -- try a single letter function name
+            b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*;?%s*")
+        end
+        if b then
+            _curr_code = strsub(s,b,e)
+            Function(decl,arg,const)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try class
+    do
+        local b,e,name,base,body
+        base = '' body = ''
+        b,e,name = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*;")  -- dummy class
+        if not b then
+            b,e,name = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*;")    -- dummy struct
+            if not b then
+                b,e,name,base,body = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
+                if not b then
+                    b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
+                    if not b then
+                        b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
+                        if not b then
+                            base = ''
+                            b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*")
+                        end
+                    end
+                end
+            end
+        end
+        if b then
+            if base ~= '' then
+                base = string.gsub(base, "^%s*:%s*", "")
+                base = string.gsub(base, "%s*public%s*", "")
+                base = split(base, ",")
+                --local b,e
+                --b,e,base = strfind(base,".-([_%w][_%w<>,:]*)$")
+            else
+                base = {}
+            end
+            _curr_code = strsub(s,b,e)
+            Class(name,base,body)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try typedef
+    do
+        local b,e,types = strfind(s,"^%s*typedef%s%s*(.-)%s*;%s*")
+        if b then
+            _curr_code = strsub(s,b,e)
+            Typedef(types)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try variable
+    do
+        local b,e,decl = strfind(s,"^%s*([_%w][_@%s%w%d%*&:<>,]*[_%w%d])%s*;%s*")
+        if b then
+            _curr_code = strsub(s,b,e)
+
+            local list = split_c_tokens(decl, ",")
+            Variable(list[1])
+            if list.n > 1 then
+                local _,_,type = strfind(list[1], "(.-)%s+([^%s]*)$");
+
+                local i =2;
+                while list[i] do
+                    Variable(type.." "..list[i])
+                    i=i+1
+                end
+            end
+            --Variable(decl)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try string
+    do
+        local b,e,decl = strfind(s,"^%s*([_%w]?[_%s%w%d]-char%s+[_@%w%d]*%s*%[%s*%S+%s*%])%s*;%s*")
+        if b then
+            _curr_code = strsub(s,b,e)
+            Variable(decl)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- try array
+    do
+        local b,e,decl = strfind(s,"^%s*([_%w][][_@%s%w%d%*&:]*[]_%w%d])%s*;%s*")
+        if b then
+            _curr_code = strsub(s,b,e)
+            Array(decl)
+            return strsub(s,e+1)
+        end
+    end
+
+    -- no matching
+    if gsub(s,"%s%s*","") ~= "" then
+        _curr_code = s
+        error("#parse error")
+    else
+        return ""
+    end
 
 end
@@ -744,10 +743,10 @@
 function classContainer:parse (s)
 
-	self.curr_member_access = nil
-
- while s ~= '' do
-  s = self:doparse(s)
-  methodisvirtual = false
- end
+    self.curr_member_access = nil
+
+    while s ~= '' do
+        s = self:doparse(s)
+        methodisvirtual = false
+    end
 end
 
@@ -757,15 +756,15 @@
 function get_property_type()
 
-	return classContainer.curr:get_property_type()
+    return classContainer.curr:get_property_type()
 end
 
 function classContainer:set_property_type(ptype)
-	ptype = string.gsub(ptype, "^%s*", "")
-	ptype = string.gsub(ptype, "%s*$", "")
-
-	self.property_type = ptype
+    ptype = string.gsub(ptype, "^%s*", "")
+    ptype = string.gsub(ptype, "%s*$", "")
+
+    self.property_type = ptype
 end
 
 function classContainer:get_property_type()
-	return self.property_type or (self.parent and self.parent:get_property_type()) or "default"
-end
+    return self.property_type or (self.parent and self.parent:get_property_type()) or "default"
+end
Index: code/branches/buildsystem3/src/tolua/lua/custom.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/custom.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/custom.lua	(revision 2664)
@@ -1,27 +1,27 @@
 
 function extract_code(fn,s)
-	local code = ""
-	if fn then
-		code = '\n$#include "'..fn..'"\n'
-	end
-	s= "\n" .. s .. "\n" -- add blank lines as sentinels
-	local _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n")
-	while e do
-		t = strlower(t)
-		if t == "bind_begin" then
-			_,e,c = strfind(s,"(.-)\n[^\n]*SCRIPT_BIND_END[^\n]*\n",e)
-			if not e then
-			 tolua_error("Unbalanced 'SCRIPT_BIND_BEGIN' directive in header file")
-			end
-		end
-		if t == "bind_class" or t == "bind_block" then
-			local b
-			_,e,c,b = string.find(s, "([^{]-)(%b{})", e)
-			c = c..'{\n'..extract_code(nil, b)..'\n};\n'
-		end
-		code = code .. c .. "\n"
-	 _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n",e)
-	end
-	return code
+    local code = ""
+    if fn then
+        code = '\n$#include "'..fn..'"\n'
+    end
+    s= "\n" .. s .. "\n" -- add blank lines as sentinels
+    local _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n")
+    while e do
+        t = strlower(t)
+        if t == "bind_begin" then
+            _,e,c = strfind(s,"(.-)\n[^\n]*SCRIPT_BIND_END[^\n]*\n",e)
+            if not e then
+             tolua_error("Unbalanced 'SCRIPT_BIND_BEGIN' directive in header file")
+            end
+        end
+        if t == "bind_class" or t == "bind_block" then
+            local b
+            _,e,c,b = string.find(s, "([^{]-)(%b{})", e)
+            c = c..'{\n'..extract_code(nil, b)..'\n};\n'
+        end
+        code = code .. c .. "\n"
+     _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n",e)
+    end
+    return code
 end
 
@@ -33,13 +33,13 @@
 
 function include_file_hook(p, filename)
-	do return end
+    do return end
 --print("FILENAME is "..filename)
-	p.code = string.gsub(p.code, "\n%s*SigC::Signal", "\n\ttolua_readonly SigC::Signal")
-	p.code = string.gsub(p.code, "#ifdef __cplusplus\nextern \"C\" {\n#endif", "")
-	p.code = string.gsub(p.code, "#ifdef __cplusplus\n};?\n#endif", "")
-	p.code = string.gsub(p.code, "DECLSPEC", "")
-	p.code = string.gsub(p.code, "SDLCALL", "")
-	p.code = string.gsub(p.code, "DLLINTERFACE", "")
-	p.code = string.gsub(p.code, "#define[^\n]*_[hH]_?%s*\n", "\n")
+    p.code = string.gsub(p.code, "\n%s*SigC::Signal", "\n\ttolua_readonly SigC::Signal")
+    p.code = string.gsub(p.code, "#ifdef __cplusplus\nextern \"C\" {\n#endif", "")
+    p.code = string.gsub(p.code, "#ifdef __cplusplus\n};?\n#endif", "")
+    p.code = string.gsub(p.code, "DECLSPEC", "")
+    p.code = string.gsub(p.code, "SDLCALL", "")
+    p.code = string.gsub(p.code, "DLLINTERFACE", "")
+    p.code = string.gsub(p.code, "#define[^\n]*_[hH]_?%s*\n", "\n")
 --print("code is "..p.code)
 end
Index: code/branches/buildsystem3/src/tolua/lua/custom_hide.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/custom_hide.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/custom_hide.lua	(revision 2664)
@@ -1,21 +1,21 @@
 -- extract code with tolua_hide, and also
 function extract_code(fn,s)
-	local code = '\n$#include "'..fn..'"\n'
-	s= "\n" .. s .. "\n" -- add blank lines as sentinels
-	local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n")
-	while e do
-		t = strlower(t)
-		if t == "begin" then
-			_,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e)
-			if not e then
-			 tolua_error("Unbalanced 'tolua_begin' directive in header file")
-			end
-		end
-		c = c.."\n"
-		c = string.gsub(c, "\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[hH][iI][Dd][eE][^\n]*\n", "\n");
-		c = string.gsub(c, "#define[^%(\n]*%(.-\n", "\n")
-		code = code .. c
-	 _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e)
-	end
-	return code
+    local code = '\n$#include "'..fn..'"\n'
+    s= "\n" .. s .. "\n" -- add blank lines as sentinels
+    local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n")
+    while e do
+        t = strlower(t)
+        if t == "begin" then
+            _,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e)
+            if not e then
+             tolua_error("Unbalanced 'tolua_begin' directive in header file")
+            end
+        end
+        c = c.."\n"
+        c = string.gsub(c, "\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[hH][iI][Dd][eE][^\n]*\n", "\n");
+        c = string.gsub(c, "#define[^%(\n]*%(.-\n", "\n")
+        code = code .. c
+     _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e)
+    end
+    return code
 end
Index: code/branches/buildsystem3/src/tolua/lua/declaration.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/declaration.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/declaration.lua	(revision 2664)
@@ -22,11 +22,11 @@
 --  ret  = "*" or "&", if value is to be returned (only for arguments)
 classDeclaration = {
- mod = '',
- type = '',
- ptr = '',
- name = '',
- dim = '',
- ret = '',
- def = ''
+    mod = '',
+    type = '',
+    ptr = '',
+    name = '',
+    dim = '',
+    ret = '',
+    def = ''
 }
 classDeclaration.__index = classDeclaration
@@ -35,7 +35,7 @@
 -- Create an unique variable name
 function create_varname ()
- if not _varnumber then _varnumber = 0 end
- _varnumber = _varnumber + 1
- return "tolua_var_".._varnumber
+    if not _varnumber then _varnumber = 0 end
+    _varnumber = _varnumber + 1
+    return "tolua_var_".._varnumber
 end
 
@@ -44,45 +44,45 @@
 function classDeclaration:checkname ()
 
- if strsub(self.name,1,1) == '[' and not findtype(self.type) then
-  self.name = self.type..self.name
-  local m = split(self.mod,'%s%s*')
-  self.type = m[m.n]
-  self.mod = concat(m,1,m.n-1)
- end
-
- local t = split(self.name,'=')
- if t.n==2 then
-  self.name = t[1]
-  self.def = find_enum_var(t[t.n])
- end
-
- local b,e,d = strfind(self.name,"%[(.-)%]")
- if b then
-  self.name = strsub(self.name,1,b-1)
-  self.dim = find_enum_var(d)
- end
-
-
- if self.type ~= '' and self.type ~= 'void' and self.name == '' then
-  self.name = create_varname()
- elseif self.kind=='var' then
-  if self.type=='' and self.name~='' then
-   self.type = self.type..self.name
-   self.name = create_varname()
-  elseif findtype(self.name) then
-   if self.type=='' then self.type = self.name
-   else self.type = self.type..' '..self.name end
-   self.name = create_varname()
-  end
- end
-
- -- adjust type of string
- if self.type == 'char' and self.dim ~= '' then
-	 self.type = 'char*'
- end
-
-	if self.kind and self.kind == 'var' then
-		self.name = string.gsub(self.name, ":.*$", "") -- ???
-	end
+    if strsub(self.name,1,1) == '[' and not findtype(self.type) then
+        self.name = self.type..self.name
+        local m = split(self.mod,'%s%s*')
+        self.type = m[m.n]
+        self.mod = concat(m,1,m.n-1)
+    end
+
+    local t = split(self.name,'=')
+    if t.n==2 then
+        self.name = t[1]
+        self.def = find_enum_var(t[t.n])
+    end
+
+    local b,e,d = strfind(self.name,"%[(.-)%]")
+    if b then
+        self.name = strsub(self.name,1,b-1)
+        self.dim = find_enum_var(d)
+    end
+
+
+    if self.type ~= '' and self.type ~= 'void' and self.name == '' then
+        self.name = create_varname()
+    elseif self.kind=='var' then
+        if self.type=='' and self.name~='' then
+            self.type = self.type..self.name
+            self.name = create_varname()
+        elseif findtype(self.name) then
+            if self.type=='' then self.type = self.name
+            else self.type = self.type..' '..self.name end
+            self.name = create_varname()
+        end
+    end
+
+    -- adjust type of string
+    if self.type == 'char' and self.dim ~= '' then
+        self.type = 'char*'
+    end
+
+    if self.kind and self.kind == 'var' then
+        self.name = string.gsub(self.name, ":.*$", "") -- ???
+    end
 end
 
@@ -91,39 +91,39 @@
 function classDeclaration:checktype ()
 
- -- check if there is a pointer to basic type
- local basic = isbasic(self.type)
- if self.kind == 'func' and basic=='number' and string.find(self.ptr, "%*") then
- 	self.type = '_userdata'
- 	self.ptr = ""
- end
- if basic and self.ptr~='' then
-  self.ret = self.ptr
-  self.ptr = nil
-  if isbasic(self.type) == 'number' then
-  	self.return_userdata = true
-  end
- end
-
- -- check if there is array to be returned
- if self.dim~='' and self.ret~='' then
-   error('#invalid parameter: cannot return an array of values')
- end
- -- restore 'void*' and 'string*'
- if self.type == '_userdata' then self.type = 'void*'
- elseif self.type == '_cstring' then self.type = 'char*'
- elseif self.type == '_lstate' then self.type = 'lua_State*'
- end
-
- -- resolve types inside the templates
- if self.type then
-	 self.type = resolve_template_types(self.type)
- end
-
---
--- -- if returning value, automatically set default value
--- if self.ret ~= '' and self.def == '' then
---  self.def = '0'
--- end
---
+    -- check if there is a pointer to basic type
+    local basic = isbasic(self.type)
+    if self.kind == 'func' and basic=='number' and string.find(self.ptr, "%*") then
+        self.type = '_userdata'
+        self.ptr = ""
+    end
+    if basic and self.ptr~='' then
+        self.ret = self.ptr
+        self.ptr = nil
+        if isbasic(self.type) == 'number' then
+            self.return_userdata = true
+        end
+    end
+
+    -- check if there is array to be returned
+    if self.dim~='' and self.ret~='' then
+        error('#invalid parameter: cannot return an array of values')
+    end
+    -- restore 'void*' and 'string*'
+    if self.type == '_userdata' then self.type = 'void*'
+    elseif self.type == '_cstring' then self.type = 'char*'
+    elseif self.type == '_lstate' then self.type = 'lua_State*'
+    end
+
+    -- resolve types inside the templates
+    if self.type then
+        self.type = resolve_template_types(self.type)
+    end
+
+    --
+    -- -- if returning value, automatically set default value
+    -- if self.ret ~= '' and self.def == '' then
+    --  self.def = '0'
+    -- end
+    --
 
 end
@@ -131,56 +131,56 @@
 function resolve_template_types(type)
 
-	if isbasic(type) then
-		return type
-	end
-	local b,_,m = string.find(type, "(%b<>)")
-	if b then
-
-		m = split_c_tokens(string.sub(m, 2, -2), ",")
-		for i=1, table.getn(m) do
-			m[i] = string.gsub(m[i],"%s*([%*&])", "%1")
-			m[i] = findtype(m[i]) or m[i]
-			m[i] = resolve_template_types(m[i])
-		end
-
-		local b,i
-		type,b,i = break_template(type)
-		local template_part = "<"..string.gsub(concat(m, 1, m.n), " ", ",")..">"
-		type = rebuild_template(type, b, template_part)
-		type = string.gsub(type, ">>", "> >")
-	end
-	return type
+    if isbasic(type) then
+        return type
+    end
+    local b,_,m = string.find(type, "(%b<>)")
+    if b then
+
+        m = split_c_tokens(string.sub(m, 2, -2), ",")
+        for i=1, table.getn(m) do
+            m[i] = string.gsub(m[i],"%s*([%*&])", "%1")
+            m[i] = findtype(m[i]) or m[i]
+            m[i] = resolve_template_types(m[i])
+        end
+
+        local b,i
+        type,b,i = break_template(type)
+        local template_part = "<"..string.gsub(concat(m, 1, m.n), " ", ",")..">"
+        type = rebuild_template(type, b, template_part)
+        type = string.gsub(type, ">>", "> >")
+    end
+    return type
 end
 
 function break_template(s)
-	local b,e,timpl = string.find(s, "(%b<>)")
-	if timpl then
-		s = string.gsub(s, "%b<>", "")
-		return s, b, timpl
-	else
-		return s, 0, nil
-	end
+    local b,e,timpl = string.find(s, "(%b<>)")
+    if timpl then
+        s = string.gsub(s, "%b<>", "")
+        return s, b, timpl
+    else
+        return s, 0, nil
+    end
 end
 
 function rebuild_template(s, b, timpl)
 
-	if b == 0 then
-		return s
-	end
-
-	return string.sub(s, 1, b-1)..timpl..string.sub(s, b, -1)
+    if b == 0 then
+        return s
+    end
+
+    return string.sub(s, 1, b-1)..timpl..string.sub(s, b, -1)
 end
 
 -- Print method
 function classDeclaration:print (ident,close)
- print(ident.."Declaration{")
- print(ident.." mod  = '"..self.mod.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.." ptr  = '"..self.ptr.."',")
- print(ident.." name = '"..self.name.."',")
- print(ident.." dim  = '"..self.dim.."',")
- print(ident.." def  = '"..self.def.."',")
- print(ident.." ret  = '"..self.ret.."',")
- print(ident.."}"..close)
+    print(ident.."Declaration{")
+    print(ident.." mod  = '"..self.mod.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.." ptr  = '"..self.ptr.."',")
+    print(ident.." name = '"..self.name.."',")
+    print(ident.." dim  = '"..self.dim.."',")
+    print(ident.." def  = '"..self.def.."',")
+    print(ident.." ret  = '"..self.ret.."',")
+    print(ident.."}"..close)
 end
 
@@ -188,12 +188,12 @@
 function classDeclaration:requirecollection (t)
  if self.mod ~= 'const' and
-	    self.dim and self.dim ~= '' and
-				 not isbasic(self.type) and
-				 self.ptr == '' then
-		local type = gsub(self.type,"%s*const%s+","")
-		t[type] = "tolua_collect_" .. clean_template(type)
-		return true
-	end
-	return false
+        self.dim and self.dim ~= '' and
+                 not isbasic(self.type) and
+                 self.ptr == '' then
+        local type = gsub(self.type,"%s*const%s+","")
+        t[type] = "tolua_collect_" .. clean_template(type)
+        return true
+    end
+    return false
 end
 
@@ -201,9 +201,9 @@
 function classDeclaration:decltype ()
 
-	self.type = typevar(self.type)
-	if strfind(self.mod,'const') then
-		self.type = 'const '..self.type
-		self.mod = gsub(self.mod,'const%s*','')
-	end
+    self.type = typevar(self.type)
+    if strfind(self.mod,'const') then
+        self.type = 'const '..self.type
+        self.mod = gsub(self.mod,'const%s*','')
+    end
 end
 
@@ -211,203 +211,203 @@
 -- output type checking
 function classDeclaration:outchecktype (narg)
- local def
- local t = isbasic(self.type)
- if self.def~='' then
-  def = 1
- else
-  def = 0
- end
- if self.dim ~= '' then
-	--if t=='string' then
-	--	return 'tolua_isstringarray(tolua_S,'..narg..','..def..',&tolua_err)'
-	--else
-	return 'tolua_istable(tolua_S,'..narg..',0,&tolua_err)'
- 	--end
- elseif t then
-	return 'tolua_is'..t..'(tolua_S,'..narg..','..def..',&tolua_err)'
- else
-  return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)'
- end
+    local def
+    local t = isbasic(self.type)
+    if self.def~='' then
+        def = 1
+    else
+        def = 0
+    end
+    if self.dim ~= '' then
+        --if t=='string' then
+        --    return 'tolua_isstringarray(tolua_S,'..narg..','..def..',&tolua_err)'
+        --else
+        return 'tolua_istable(tolua_S,'..narg..',0,&tolua_err)'
+        --end
+    elseif t then
+        return 'tolua_is'..t..'(tolua_S,'..narg..','..def..',&tolua_err)'
+    else
+        return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)'
+    end
 end
 
 function classDeclaration:builddeclaration (narg, cplusplus)
- local array = self.dim ~= '' and tonumber(self.dim)==nil
-	local line = ""
- local ptr = ''
-	local mod
-	local type = self.type
- if self.dim ~= '' then
-	 type = gsub(self.type,'const%s+','')  -- eliminates const modifier for arrays
- end
- if self.ptr~='' and not isbasic(type) then ptr = '*' end
- line = concatparam(line," ",self.mod,type,ptr)
- if array then
-  line = concatparam(line,'*')
- end
- line = concatparam(line,self.name)
- if self.dim ~= '' then
-  if tonumber(self.dim)~=nil then
-   line = concatparam(line,'[',self.dim,'];')
-  else
-	if cplusplus then
-		line = concatparam(line,' = new',type,ptr,'['..self.dim..'];')
-	else
-		line = concatparam(line,' = (',type,ptr,'*)',
-		'malloc((',self.dim,')*sizeof(',type,ptr,'));')
-	end
-  end
- else
-  local t = isbasic(type)
-  line = concatparam(line,' = ')
-  if t == 'state' then
-  	line = concatparam(line, 'tolua_S;')
-  else
-  	--print("t is "..tostring(t)..", ptr is "..tostring(self.ptr))
-  	if t == 'number' and string.find(self.ptr, "%*") then
-  		t = 'userdata'
-  	end
-	if not t and ptr=='' then line = concatparam(line,'*') end
-	line = concatparam(line,'((',self.mod,type)
-	if not t then
-		line = concatparam(line,'*')
-	end
-	line = concatparam(line,') ')
-			if isenum(type) then
-			line = concatparam(line,'(int) ')
-			end
-	local def = 0
-	if self.def ~= '' then
-		def = self.def
-		if (ptr == '' or self.ptr == '&') and not t then
-			def = "(void*)&(const "..type..")"..def
-		end
-	end
-	if t then
-	line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));')
-	else
-	line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));')
-	end
-  end
- end
-	return line
+    local array = self.dim ~= '' and tonumber(self.dim)==nil
+    local line = ""
+    local ptr = ''
+    local mod
+    local type = self.type
+    if self.dim ~= '' then
+        type = gsub(self.type,'const%s+','')  -- eliminates const modifier for arrays
+    end
+    if self.ptr~='' and not isbasic(type) then ptr = '*' end
+    line = concatparam(line," ",self.mod,type,ptr)
+    if array then
+        line = concatparam(line,'*')
+    end
+    line = concatparam(line,self.name)
+    if self.dim ~= '' then
+        if tonumber(self.dim)~=nil then
+            line = concatparam(line,'[',self.dim,'];')
+        else
+            if cplusplus then
+                line = concatparam(line,' = new',type,ptr,'['..self.dim..'];')
+            else
+                line = concatparam(line,' = (',type,ptr,'*)',
+                'malloc((',self.dim,')*sizeof(',type,ptr,'));')
+            end
+        end
+    else
+    local t = isbasic(type)
+    line = concatparam(line,' = ')
+    if t == 'state' then
+        line = concatparam(line, 'tolua_S;')
+    else
+        --print("t is "..tostring(t)..", ptr is "..tostring(self.ptr))
+        if t == 'number' and string.find(self.ptr, "%*") then
+            t = 'userdata'
+        end
+        if not t and ptr=='' then line = concatparam(line,'*') end
+            line = concatparam(line,'((',self.mod,type)
+            if not t then
+                line = concatparam(line,'*')
+            end
+            line = concatparam(line,') ')
+            if isenum(type) then
+                line = concatparam(line,'(int) ')
+            end
+            local def = 0
+            if self.def ~= '' then
+                def = self.def
+                if (ptr == '' or self.ptr == '&') and not t then
+                    def = "(void*)&(const "..type..")"..def
+                end
+            end
+            if t then
+                line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));')
+            else
+                line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));')
+            end
+        end
+    end
+    return line
 end
 
 -- Declare variable
 function classDeclaration:declare (narg)
- if self.dim ~= '' and tonumber(self.dim)==nil then
-	 output('#ifdef __cplusplus\n')
-		output(self:builddeclaration(narg,true))
-		output('#else\n')
-		output(self:builddeclaration(narg,false))
-	 output('#endif\n')
-	else
-		output(self:builddeclaration(narg,false))
-	end
+    if self.dim ~= '' and tonumber(self.dim)==nil then
+        output('#ifdef __cplusplus\n')
+        output(self:builddeclaration(narg,true))
+        output('#else\n')
+        output(self:builddeclaration(narg,false))
+        output('#endif\n')
+    else
+        output(self:builddeclaration(narg,false))
+    end
 end
 
 -- Get parameter value
 function classDeclaration:getarray (narg)
- if self.dim ~= '' then
-	 local type = gsub(self.type,'const ','')
-  output('  {')
-	 output('#ifndef TOLUA_RELEASE\n')
-  local def; if self.def~='' then def=1 else def=0 end
-		local t = isbasic(type)
-		if (t) then
-   output('   if (!tolua_is'..t..'array(tolua_S,',narg,',',self.dim,',',def,',&tolua_err))')
-		else
-   output('   if (!tolua_isusertypearray(tolua_S,',narg,',"',type,'",',self.dim,',',def,',&tolua_err))')
-		end
-  output('    goto tolua_lerror;')
-  output('   else\n')
-	 output('#endif\n')
-  output('   {')
-  output('    int i;')
-  output('    for(i=0; i<'..self.dim..';i++)')
-  local t = isbasic(type)
-  local ptr = ''
-  if self.ptr~='' then ptr = '*' end
-  output('   ',self.name..'[i] = ')
-  if not t and ptr=='' then output('*') end
-  output('((',type)
-  if not t then
-   output('*')
-  end
-  output(') ')
-  local def = 0
-  if self.def ~= '' then def = self.def end
-  if t then
-   output('tolua_tofield'..t..'(tolua_S,',narg,',i+1,',def,'));')
-  else
-   output('tolua_tofieldusertype(tolua_S,',narg,',i+1,',def,'));')
-  end
-  output('   }')
-  output('  }')
- end
+    if self.dim ~= '' then
+        local type = gsub(self.type,'const ','')
+        output('  {')
+        output('#ifndef TOLUA_RELEASE\n')
+        local def; if self.def~='' then def=1 else def=0 end
+        local t = isbasic(type)
+        if (t) then
+            output('   if (!tolua_is'..t..'array(tolua_S,',narg,',',self.dim,',',def,',&tolua_err))')
+        else
+            output('   if (!tolua_isusertypearray(tolua_S,',narg,',"',type,'",',self.dim,',',def,',&tolua_err))')
+        end
+        output('    goto tolua_lerror;')
+        output('   else\n')
+        output('#endif\n')
+        output('   {')
+        output('    int i;')
+        output('    for(i=0; i<'..self.dim..';i++)')
+        local t = isbasic(type)
+        local ptr = ''
+        if self.ptr~='' then ptr = '*' end
+        output('   ',self.name..'[i] = ')
+        if not t and ptr=='' then output('*') end
+        output('((',type)
+        if not t then
+            output('*')
+        end
+        output(') ')
+        local def = 0
+        if self.def ~= '' then def = self.def end
+        if t then
+            output('tolua_tofield'..t..'(tolua_S,',narg,',i+1,',def,'));')
+        else
+            output('tolua_tofieldusertype(tolua_S,',narg,',i+1,',def,'));')
+        end
+        output('   }')
+        output('  }')
+    end
 end
 
 -- Get parameter value
 function classDeclaration:setarray (narg)
- if not strfind(self.type,'const%s+') and self.dim ~= '' then
-	 local type = gsub(self.type,'const ','')
-  output('  {')
-  output('   int i;')
-  output('   for(i=0; i<'..self.dim..';i++)')
-  local t,ct = isbasic(type)
-  if t then
-   output('    tolua_pushfield'..t..'(tolua_S,',narg,',i+1,(',ct,')',self.name,'[i]);')
-  else
-   if self.ptr == '' then
-     output('   {')
-     output('#ifdef __cplusplus\n')
-     output('    void* tolua_obj = new',type,'(',self.name,'[i]);')
-     output('    tolua_pushfieldusertype_and_takeownership(tolua_S,',narg,',i+1,tolua_obj,"',type,'");')
-     output('#else\n')
-     output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&',self.name,'[i],sizeof(',type,'));')
-     output('    tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_obj,"',type,'");')
-     output('#endif\n')
-     output('   }')
-   else
-    output('   tolua_pushfieldusertype(tolua_S,',narg,',i+1,(void*)',self.name,'[i],"',type,'");')
-   end
-  end
-  output('  }')
- end
+    if not strfind(self.type,'const%s+') and self.dim ~= '' then
+        local type = gsub(self.type,'const ','')
+        output('  {')
+        output('   int i;')
+        output('   for(i=0; i<'..self.dim..';i++)')
+        local t,ct = isbasic(type)
+        if t then
+            output('    tolua_pushfield'..t..'(tolua_S,',narg,',i+1,(',ct,')',self.name,'[i]);')
+        else
+            if self.ptr == '' then
+                output('   {')
+                output('#ifdef __cplusplus\n')
+                output('    void* tolua_obj = new',type,'(',self.name,'[i]);')
+                output('    tolua_pushfieldusertype_and_takeownership(tolua_S,',narg,',i+1,tolua_obj,"',type,'");')
+                output('#else\n')
+                output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&',self.name,'[i],sizeof(',type,'));')
+                output('    tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_obj,"',type,'");')
+                output('#endif\n')
+                output('   }')
+            else
+                output('   tolua_pushfieldusertype(tolua_S,',narg,',i+1,(void*)',self.name,'[i],"',type,'");')
+            end
+        end
+        output('  }')
+    end
 end
 
 -- Free dynamically allocated array
 function classDeclaration:freearray ()
- if self.dim ~= '' and tonumber(self.dim)==nil then
-	 output('#ifdef __cplusplus\n')
-		output('  delete []',self.name,';')
-	 output('#else\n')
-  output('  free(',self.name,');')
-	 output('#endif\n')
- end
+    if self.dim ~= '' and tonumber(self.dim)==nil then
+        output('#ifdef __cplusplus\n')
+        output('  delete []',self.name,';')
+        output('#else\n')
+        output('  free(',self.name,');')
+        output('#endif\n')
+    end
 end
 
 -- Pass parameter
 function classDeclaration:passpar ()
- if self.ptr=='&' and not isbasic(self.type) then
-  output('*'..self.name)
- elseif self.ret=='*' then
-  output('&'..self.name)
- else
-  output(self.name)
- end
+    if self.ptr=='&' and not isbasic(self.type) then
+        output('*'..self.name)
+    elseif self.ret=='*' then
+        output('&'..self.name)
+    else
+        output(self.name)
+    end
 end
 
 -- Return parameter value
 function classDeclaration:retvalue ()
- if self.ret ~= '' then
-  local t,ct = isbasic(self.type)
-  if t and t~='' then
-   output('   tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');')
-  else
-   output('   tolua_pushusertype(tolua_S,(void*)'..self.name..',"',self.type,'");')
-  end
-  return 1
- end
- return 0
+    if self.ret ~= '' then
+        local t,ct = isbasic(self.type)
+        if t and t~='' then
+            output('   tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');')
+        else
+            output('   tolua_pushusertype(tolua_S,(void*)'..self.name..',"',self.type,'");')
+        end
+        return 1
+    end
+    return 0
 end
 
@@ -415,18 +415,18 @@
 function _Declaration (t)
 
- setmetatable(t,classDeclaration)
- t:buildnames()
- t:checkname()
- t:checktype()
- local ft = findtype(t.type) or t.type
- if not isenum(ft) then
-	t.mod, t.type = applytypedef(t.mod, ft)
- end
-
- if t.kind=="var" and (string.find(t.mod, "tolua_property%s") or string.find(t.mod, "tolua_property$")) then
- 	t.mod = string.gsub(t.mod, "tolua_property", "tolua_property__"..get_property_type())
- end
-
- return t
+    setmetatable(t,classDeclaration)
+    t:buildnames()
+    t:checkname()
+    t:checktype()
+    local ft = findtype(t.type) or t.type
+    if not isenum(ft) then
+        t.mod, t.type = applytypedef(t.mod, ft)
+    end
+
+    if t.kind=="var" and (string.find(t.mod, "tolua_property%s") or string.find(t.mod, "tolua_property$")) then
+        t.mod = string.gsub(t.mod, "tolua_property", "tolua_property__"..get_property_type())
+    end
+
+    return t
 end
 
@@ -436,132 +436,132 @@
 function Declaration (s,kind,is_parameter)
 
- -- eliminate spaces if default value is provided
- s = gsub(s,"%s*=%s*","=")
- s = gsub(s, "%s*<", "<")
-
- local defb,tmpdef
- defb,_,tmpdef = string.find(s, "(=.*)$")
- if defb then
- 	s = string.gsub(s, "=.*$", "")
- else
- 	tmpdef = ''
- end
- if kind == "var" then
-  -- check the form: void
-  if s == '' or s == 'void' then
-   return _Declaration{type = 'void', kind = kind, is_parameter = is_parameter}
-  end
- end
-
- -- check the form: mod type*& name
- local t = split_c_tokens(s,'%*%s*&')
- if t.n == 2 then
-  if kind == 'func' then
-   error("#invalid function return type: "..s)
-  end
-  --local m = split(t[1],'%s%s*')
-  local m = split_c_tokens(t[1],'%s+')
-  return _Declaration{
-   name = t[2]..tmpdef,
-   ptr = '*',
-   ret = '&',
-   --type = rebuild_template(m[m.n], tb, timpl),
-   type = m[m.n],
-   mod = concat(m,1,m.n-1),
-   is_parameter = is_parameter,
-   kind = kind
-  }
- end
-
- -- check the form: mod type** name
- t = split_c_tokens(s,'%*%s*%*')
- if t.n == 2 then
-  if kind == 'func' then
-   error("#invalid function return type: "..s)
-  end
-  --local m = split(t[1],'%s%s*')
-  local m = split_c_tokens(t[1],'%s+')
-  return _Declaration{
-   name = t[2]..tmpdef,
-   ptr = '*',
-   ret = '*',
-   --type = rebuild_template(m[m.n], tb, timpl),
-   type = m[m.n],
-   mod = concat(m,1,m.n-1),
-   is_parameter = is_parameter,
-   kind = kind
-  }
- end
-
- -- check the form: mod type& name
- t = split_c_tokens(s,'&')
- if t.n == 2 then
-  --local m = split(t[1],'%s%s*')
-  local m = split_c_tokens(t[1],'%s+')
-  return _Declaration{
-   name = t[2]..tmpdef,
-   ptr = '&',
-   --type = rebuild_template(m[m.n], tb, timpl),
-   type = m[m.n],
-   mod = concat(m,1,m.n-1),
-   is_parameter = is_parameter,
-   kind = kind
-  }
- end
-
- -- check the form: mod type* name
- local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end)
- t = split_c_tokens(s1,'%*')
- if t.n == 2 then
-  t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression
-  --local m = split(t[1],'%s%s*')
-  local m = split_c_tokens(t[1],'%s+')
-  return _Declaration{
-   name = t[2]..tmpdef,
-   ptr = '*',
-   type = m[m.n],
-   --type = rebuild_template(m[m.n], tb, timpl),
-   mod = concat(m,1,m.n-1)   ,
-   is_parameter = is_parameter,
-   kind = kind
-  }
- end
-
- if kind == 'var' then
-  -- check the form: mod type name
-  --t = split(s,'%s%s*')
-  t = split_c_tokens(s,'%s+')
-  local v
-  if findtype(t[t.n]) then v = create_varname() else v = t[t.n]; t.n = t.n-1 end
-  return _Declaration{
-   name = v..tmpdef,
-   --type = rebuild_template(t[t.n], tb, timpl),
-   type = t[t.n],
-   mod = concat(t,1,t.n-1),
-   is_parameter = is_parameter,
-   kind = kind
-  }
-
- else -- kind == "func"
-
-  -- check the form: mod type name
-  --t = split(s,'%s%s*')
-  t = split_c_tokens(s,'%s+')
-  local v = t[t.n]  -- last word is the function name
-  local tp,md
-  if t.n>1 then
-   tp = t[t.n-1]
-   md = concat(t,1,t.n-2)
-  end
-  --if tp then tp = rebuild_template(tp, tb, timpl) end
-  return _Declaration{
-   name = v,
-   type = tp,
-   mod = md,
-   is_parameter = is_parameter,
-   kind = kind
-  }
- end
-
-end
-
+    -- eliminate spaces if default value is provided
+    s = gsub(s,"%s*=%s*","=")
+    s = gsub(s, "%s*<", "<")
+
+    local defb,tmpdef
+    defb,_,tmpdef = string.find(s, "(=.*)$")
+    if defb then
+        s = string.gsub(s, "=.*$", "")
+    else
+        tmpdef = ''
+    end
+    if kind == "var" then
+        -- check the form: void
+        if s == '' or s == 'void' then
+            return _Declaration{type = 'void', kind = kind, is_parameter = is_parameter}
+        end
+    end
+
+    -- check the form: mod type*& name
+    local t = split_c_tokens(s,'%*%s*&')
+    if t.n == 2 then
+        if kind == 'func' then
+            error("#invalid function return type: "..s)
+        end
+        --local m = split(t[1],'%s%s*')
+        local m = split_c_tokens(t[1],'%s+')
+        return _Declaration {
+            name = t[2]..tmpdef,
+            ptr = '*',
+            ret = '&',
+            --type = rebuild_template(m[m.n], tb, timpl),
+            type = m[m.n],
+            mod = concat(m,1,m.n-1),
+            is_parameter = is_parameter,
+            kind = kind
+        }
+    end
+
+    -- check the form: mod type** name
+    t = split_c_tokens(s,'%*%s*%*')
+    if t.n == 2 then
+        if kind == 'func' then
+            error("#invalid function return type: "..s)
+        end
+        --local m = split(t[1],'%s%s*')
+        local m = split_c_tokens(t[1],'%s+')
+        return _Declaration {
+            name = t[2]..tmpdef,
+            ptr = '*',
+            ret = '*',
+            --type = rebuild_template(m[m.n], tb, timpl),
+            type = m[m.n],
+            mod = concat(m,1,m.n-1),
+            is_parameter = is_parameter,
+            kind = kind
+        }
+    end
+
+    -- check the form: mod type& name
+    t = split_c_tokens(s,'&')
+    if t.n == 2 then
+        --local m = split(t[1],'%s%s*')
+        local m = split_c_tokens(t[1],'%s+')
+        return _Declaration {
+            name = t[2]..tmpdef,
+            ptr = '&',
+            --type = rebuild_template(m[m.n], tb, timpl),
+            type = m[m.n],
+            mod = concat(m,1,m.n-1),
+            is_parameter = is_parameter,
+            kind = kind
+        }
+    end
+
+    -- check the form: mod type* name
+    local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end)
+    t = split_c_tokens(s1,'%*')
+    if t.n == 2 then
+        t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression
+        --local m = split(t[1],'%s%s*')
+        local m = split_c_tokens(t[1],'%s+')
+        return _Declaration {
+            name = t[2]..tmpdef,
+            ptr = '*',
+            type = m[m.n],
+            --type = rebuild_template(m[m.n], tb, timpl),
+            mod = concat(m,1,m.n-1)   ,
+            is_parameter = is_parameter,
+            kind = kind
+        }
+    end
+
+    if kind == 'var' then
+        -- check the form: mod type name
+        --t = split(s,'%s%s*')
+        t = split_c_tokens(s,'%s+')
+        local v
+        if findtype(t[t.n]) then v = create_varname() else v = t[t.n]; t.n = t.n-1 end
+        return _Declaration {
+            name = v..tmpdef,
+            --type = rebuild_template(t[t.n], tb, timpl),
+            type = t[t.n],
+            mod = concat(t,1,t.n-1),
+            is_parameter = is_parameter,
+            kind = kind
+        }
+
+    else -- kind == "func"
+
+        -- check the form: mod type name
+        --t = split(s,'%s%s*')
+        t = split_c_tokens(s,'%s+')
+        local v = t[t.n]  -- last word is the function name
+        local tp,md
+        if t.n>1 then
+            tp = t[t.n-1]
+            md = concat(t,1,t.n-2)
+        end
+        --if tp then tp = rebuild_template(tp, tb, timpl) end
+        return _Declaration {
+            name = v,
+            type = tp,
+            mod = md,
+            is_parameter = is_parameter,
+            kind = kind
+        }
+    end
+
+end
+
Index: code/branches/buildsystem3/src/tolua/lua/define.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/define.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/define.lua	(revision 2664)
@@ -16,5 +16,5 @@
 --   name = constant name
 classDefine = {
- name = '',
+    name = '',
 }
 classDefine.__index = classDefine
@@ -23,18 +23,18 @@
 -- register define
 function classDefine:register (pre)
-	if not self:check_public_access() then
-		return
-	end
+    if not self:check_public_access() then
+        return
+    end
 
- pre = pre or ''
- output(pre..'tolua_constant(tolua_S,"'..self.lname..'",'..self.name..');')
+    pre = pre or ''
+    output(pre..'tolua_constant(tolua_S,"'..self.lname..'",'..self.name..');')
 end
 
 -- Print method
 function classDefine:print (ident,close)
- print(ident.."Define{")
- print(ident.." name = '"..self.name.."',")
- print(ident.." lname = '"..self.lname.."',")
- print(ident.."}"..close)
+    print(ident.."Define{")
+    print(ident.." name = '"..self.name.."',")
+    print(ident.." lname = '"..self.lname.."',")
+    print(ident.."}"..close)
 end
 
@@ -42,13 +42,13 @@
 -- Internal constructor
 function _Define (t)
- setmetatable(t,classDefine)
- t:buildnames()
+    setmetatable(t,classDefine)
+    t:buildnames()
 
- if t.name == '' then
-  error("#invalid define")
- end
+    if t.name == '' then
+        error("#invalid define")
+    end
 
- append(t)
- return t
+    append(t)
+    return t
 end
 
@@ -56,7 +56,7 @@
 -- Expects a string representing the constant name
 function Define (n)
- return _Define{
-  name = n
- }
+    return _Define {
+        name = n
+    }
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/doit.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/doit.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/doit.lua	(revision 2664)
@@ -14,82 +14,113 @@
 function parse_extra()
 
-	for k,v in ipairs(_extra_parameters or {}) do
-		
-		local b,e,name,value = string.find(v, "^([^=])=(.*)$")
-		if b then
-			_extra_parameters[name] = value
-		else
-			_extra_parameters[v] = true
-		end
-	end
+    for k,v in ipairs(_extra_parameters or {}) do
+        
+        local b,e,name,value = string.find(v, "^([^=])=(.*)$")
+        if b then
+            _extra_parameters[name] = value
+        else
+            _extra_parameters[v] = true
+        end
+    end
 end
 
 function doit ()
-	-- define package name, if not provided
-	if not flags.n then
-		if flags.f then
-			flags.n = gsub(flags.f,"%..*$","")
-			_,_,flags.n = string.find(flags.n, "([^/\\]*)$")
-		else
-			error("#no package name nor input file provided")
-		end
-	end
+    -- define package name, if not provided
+    if not flags.n then
+        if flags.f then
+            flags.n = gsub(flags.f,"%..*$","")
+            _,_,flags.n = string.find(flags.n, "([^/\\]*)$")
+        else
+            error("#no package name nor input file provided")
+        end
+    end
 
-	-- parse table with extra paramters
-	parse_extra()
+    -- parse table with extra paramters
+    parse_extra()
 
-	-- do this after setting the package name
-	if flags['L'] then
-		dofile(flags['L'])
-	end
+    -- get potential working directory
+    if not flags.w then
+        flags.w = ''
+    end
 
-	-- add cppstring
-	if not flags['S'] then
-		_basic['string'] = 'cppstring'
-		_basic['std::string'] = 'cppstring'
-		_basic_ctype.cppstring = 'const char*'
-	end
+    -- do this after setting the package name
+    if flags.L then
+        if string.sub(flags.L, 1, 1) == '/' or string.sub(flags.L, 1, 1) == '\\' or (string.len(flags.L) > 1 and string.sub(flags.L, 2, 2) == ':') then
+            dofile(flags.L)
+        else
+            dofile(flags.w..'/'..flags.L)
+        end
+    end
 
-	-- proccess package
-	local p  = Package(flags.n,flags.f)
+    -- add cppstring
+    if not flags.S then
+        _basic['string'] = 'cppstring'
+        _basic['std::string'] = 'cppstring'
+        _basic_ctype.cppstring = 'const char*'
+    end
 
-	if flags.p then
-		return        -- only parse
-	end
+    -- proccess package
+    local file
+    if flags.f then
+        if string.sub(flags.f, 1, 1) == '/' or string.sub(flags.f, 1, 1) == '\\' or (string.len(flags.f) > 1 and string.sub(flags.f, 2, 2) == ':') then
+            file = flags.f
+        else
+            file = flags.w..'/'..flags.f
+        end
+    else
+        file = flags.f
+    end
+    local p  = Package(flags.n, file)
 
-	if flags.o then
-		local st,msg = writeto(flags.o)
-		if not st then
-			error('#'..msg)
-		end
-	end
+    if flags.p then
+        return        -- only parse
+    end
 
-	p:decltype()
-	if flags.P then
-		p:print()
-	else
-		p:preamble()
-		p:supcode()
-		p:register()
-		push(p)
-		post_output_hook(p)
-		pop()
-	end
+    if flags.o then
+        local file
+        if string.sub(flags.o, 1, 1) == '/' or string.sub(flags.o, 1, 1) == '\\' or (string.len(flags.o) > 1 and string.sub(flags.o, 2, 2) == ':') then
+            file = flags.o
+        else
+            file = flags.w..'/'..flags.o
+        end
+        local st,msg = writeto(file)
+        if not st then
+            error('#'..msg)
+        end
+    end
 
-	if flags.o then
-		writeto()
-	end
+    p:decltype()
+    if flags.P then
+        p:print()
+    else
+        p:preamble()
+        p:supcode()
+        p:register()
+        push(p)
+        post_output_hook(p)
+        pop()
+    end
 
-	-- write header file
-	if not flags.P then
-		if flags.H then
-			local st,msg = writeto(flags.H)
-			if not st then
-				error('#'..msg)
-			end
-			p:header()
-			writeto()
-		end
-	end
+    if flags.o then
+        writeto()
+    end
+
+    -- write header file
+    if not flags.P then
+        if flags.H then
+            local file
+            if string.sub(flags.H, 1, 1) == '/' or string.sub(flags.H, 1, 1) == '\\' or (string.len(flags.H) > 1 and string.sub(flags.H, 2, 2) == ':') then
+                file = flags.H
+            else
+                file = flags.w..'/'..flags.H
+            end
+            local st,msg = writeto(file)
+            if not st then
+                error('#'..msg)
+            end
+            p:header()
+            writeto()
+        end
+    end
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/enumerate.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/enumerate.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/enumerate.lua	(revision 2664)
@@ -22,40 +22,40 @@
 -- register enumeration
 function classEnumerate:register (pre)
- pre = pre or ''
- local nspace = getnamespace(classContainer.curr)
- local i=1
- while self[i] do
-  output(pre..'tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');')
-  i = i+1
- end
+    pre = pre or ''
+    local nspace = getnamespace(classContainer.curr)
+    local i=1
+    while self[i] do
+        output(pre..'tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');')
+        i = i+1
+    end
 end
 
 -- Print method
 function classEnumerate:print (ident,close)
- print(ident.."Enumerate{")
- print(ident.." name = "..self.name)
- local i=1
- while self[i] do
-  print(ident.." '"..self[i].."'("..self.lnames[i].."),")
-  i = i+1
- end
- print(ident.."}"..close)
+    print(ident.."Enumerate{")
+    print(ident.." name = "..self.name)
+    local i=1
+    while self[i] do
+        print(ident.." '"..self[i].."'("..self.lnames[i].."),")
+        i = i+1
+    end
+    print(ident.."}"..close)
 end
 
 -- Internal constructor
 function _Enumerate (t,varname)
- setmetatable(t,classEnumerate)
- append(t)
- appendenum(t)
-	 if varname and varname ~= "" then
-		if t.name ~= "" then
-			Variable(t.name.." "..varname)
-		else
-			local ns = getcurrnamespace()
-			warning("Variable "..ns..varname.." of type <anonymous enum> is declared as read-only")
-			Variable("tolua_readonly int "..varname)
-		end
-	end
-return t
+    setmetatable(t,classEnumerate)
+    append(t)
+    appendenum(t)
+    if varname and varname ~= "" then
+        if t.name ~= "" then
+            Variable(t.name.." "..varname)
+        else
+            local ns = getcurrnamespace()
+            warning("Variable "..ns..varname.." of type <anonymous enum> is declared as read-only")
+            Variable("tolua_readonly int "..varname)
+        end
+    end
+    return t
 end
 
@@ -63,33 +63,33 @@
 -- Expects a string representing the enumerate body
 function Enumerate (n,b,varname)
-	b = string.gsub(b, ",[%s\n]*}", "\n}") -- eliminate last ','
- local t = split(strsub(b,2,-2),',') -- eliminate braces
- local i = 1
- local e = {n=0}
- while t[i] do
-  local tt = split(t[i],'=')  -- discard initial value
-  e.n = e.n + 1
-  e[e.n] = tt[1]
-  i = i+1
- end
- -- set lua names
- i  = 1
- e.lnames = {}
- local ns = getcurrnamespace()
- while e[i] do
-  local t = split(e[i],'@')
-  e[i] = t[1]
-		if not t[2] then
-		 t[2] = applyrenaming(t[1])
-		end
-  e.lnames[i] = t[2] or t[1]
-  _global_enums[ ns..e[i] ] = (ns..e[i])
-  i = i+1
- end
-	e.name = n
-	if n ~= "" then
-		Typedef("int "..n)
-	end
- return _Enumerate(e, varname)
+    b = string.gsub(b, ",[%s\n]*}", "\n}") -- eliminate last ','
+    local t = split(strsub(b,2,-2),',') -- eliminate braces
+    local i = 1
+    local e = {n=0}
+    while t[i] do
+        local tt = split(t[i],'=')  -- discard initial value
+        e.n = e.n + 1
+        e[e.n] = tt[1]
+        i = i+1
+    end
+    -- set lua names
+    i  = 1
+    e.lnames = {}
+    local ns = getcurrnamespace()
+    while e[i] do
+        local t = split(e[i],'@')
+        e[i] = t[1]
+        if not t[2] then
+            t[2] = applyrenaming(t[1])
+        end
+        e.lnames[i] = t[2] or t[1]
+        _global_enums[ ns..e[i] ] = (ns..e[i])
+        i = i+1
+    end
+    e.name = n
+    if n ~= "" then
+        Typedef("int "..n)
+    end
+    return _Enumerate(e, varname)
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/feature.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/feature.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/feature.lua	(revision 2664)
@@ -40,49 +40,49 @@
 -- check if it requires collection
 function classFeature:requirecollection (t)
- return false
+    return false
 end
 
 -- build names
 function classFeature:buildnames ()
- if self.name and self.name~='' then
-  local n = split(self.name,'@')
-  self.name = n[1]
-  if not n[2] then
-   n[2] = applyrenaming(n[1])
-  end
-  self.lname = n[2] or gsub(n[1],"%[.-%]","")
-  self.original_name = self.name
-  self.lname = clean_template(self.lname)
- end
- if not self.is_parameter then
-	 self.name = getonlynamespace() .. self.name
- end
+    if self.name and self.name~='' then
+        local n = split(self.name,'@')
+        self.name = n[1]
+        if not n[2] then
+            n[2] = applyrenaming(n[1])
+        end
+        self.lname = n[2] or gsub(n[1],"%[.-%]","")
+        self.original_name = self.name
+        self.lname = clean_template(self.lname)
+    end
+    if not self.is_parameter then
+        self.name = getonlynamespace() .. self.name
+    end
 
- local parent = classContainer.curr
- if parent then
- 	self.access = parent.curr_member_access
- else
- end
+    local parent = classContainer.curr
+    if parent then
+        self.access = parent.curr_member_access
+    else
+    end
 end
 
 function classFeature:check_public_access()
 
-	if self.access and self.access ~= 0 then
-		return false
-	end
+    if self.access and self.access ~= 0 then
+        return false
+    end
 
-	local parent = classContainer.curr
-	while parent do
-		if parent.access and parent.access ~= 0 then
-			return false
-		end
-		parent = parent.prox
-	end
-	return true
+    local parent = classContainer.curr
+    while parent do
+        if parent.access and parent.access ~= 0 then
+            return false
+        end
+        parent = parent.prox
+    end
+    return true
 end
 
 function clean_template(t)
 
-	return string.gsub(t, "[<>:, %*]", "_")
+    return string.gsub(t, "[<>:, %*]", "_")
 end
 
@@ -90,26 +90,26 @@
 -- it returns the container class name or nil.
 function classFeature:incontainer (which)
- if self.parent then
-  local parent = self.parent
-  while parent do
-   if parent.classtype == which then
-    return parent.name
-   end
-   parent = parent.parent
-  end
- end
- return nil
+    if self.parent then
+        local parent = self.parent
+        while parent do
+            if parent.classtype == which then
+                return parent.name
+            end
+            parent = parent.parent
+        end
+    end
+    return nil
 end
 
 function classFeature:inclass ()
- return self:incontainer('class')
+    return self:incontainer('class')
 end
 
 function classFeature:inmodule ()
- return self:incontainer('module')
+    return self:incontainer('module')
 end
 
 function classFeature:innamespace ()
- return self:incontainer('namespace')
+    return self:incontainer('namespace')
 end
 
@@ -118,11 +118,11 @@
 function classFeature:cfuncname (n)
 
- if self.parent then
-  n = self.parent:cfuncname(n)
- end
+    if self.parent then
+        n = self.parent:cfuncname(n)
+    end
 
-  n = string.gsub(n..'_'.. (self.lname or self.name), "[<>:, \.%*&]", "_")
+    n = string.gsub(n..'_'.. (self.lname or self.name), "[<>:, \.%*&]", "_")
 
-  return n
+    return n
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/function.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/function.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/function.lua	(revision 2664)
@@ -52,7 +52,7 @@
     if e.ret == "nil" then
         output("catch(",nameToEcho," CEGUIDeadException(",exceptionDefs[e.name].var,"))\n{\n")
-	else
-    	output("catch(",nameToEcho,exceptionDefs[e.name].var,")\n{\n")
-	end
+    else
+        output("catch(",nameToEcho,exceptionDefs[e.name].var,")\n{\n")
+    end
 
     -- if just a nil
@@ -141,10 +141,10 @@
 --  const = if it is a method receiving a const "this".
 classFunction = {
- mod = '',
- type = '',
- ptr = '',
- name = '',
- args = {n=0},
- const = '',
+    mod = '',
+    type = '',
+    ptr = '',
+    name = '',
+    args = {n=0},
+    const = '',
 }
 classFunction.__index = classFunction
@@ -153,14 +153,14 @@
 -- declare tags
 function classFunction:decltype ()
- self.type = typevar(self.type)
- if strfind(self.mod,'const') then
-	 self.type = 'const '..self.type
-		self.mod = gsub(self.mod,'const','')
-	end
- local i=1
- while self.args[i] do
-  self.args[i]:decltype()
-  i = i+1
- end
+    self.type = typevar(self.type)
+    if strfind(self.mod,'const') then
+        self.type = 'const '..self.type
+        self.mod = gsub(self.mod,'const','')
+    end
+    local i=1
+    while self.args[i] do
+        self.args[i]:decltype()
+        i = i+1
+    end
 end
 
@@ -170,328 +170,328 @@
 function classFunction:supcode (local_constructor)
 
- local overload = strsub(self.cname,-2,-1) - 1  -- indicate overloaded func
- local nret = 0      -- number of returned values
- local class = self:inclass()
- local _,_,static = strfind(self.mod,'^%s*(static)')
- if class then
-
- 	if self.name == 'new' and self.parent.flags.pure_virtual then
- 		-- no constructor for classes with pure virtual methods
- 		return
- 	end
-
- 	if local_constructor then
-		output("/* method: new_local of class ",class," */")
-	else
-		output("/* method:",self.name," of class ",class," */")
-	end
- else
-  output("/* function:",self.name," */")
- end
-
- if local_constructor then
-  output("#ifndef TOLUA_DISABLE_"..self.cname.."_local")
-  output("\nstatic int",self.cname.."_local","(lua_State* tolua_S)")
- else
-  output("#ifndef TOLUA_DISABLE_"..self.cname)
-  output("\nstatic int",self.cname,"(lua_State* tolua_S)")
- end
- output("{")
-
- -- check types
-	if overload < 0 then
-	 output('#ifndef TOLUA_RELEASE\n')
-	end
-	output(' tolua_Error tolua_err;')
- output(' if (\n')
- -- check self
- local narg
- if class then narg=2 else narg=1 end
- if class then
-		local func = 'tolua_isusertype'
-		local type = self.parent.type
-		if self.name=='new' or static~=nil then
-			func = 'tolua_isusertable'
-			type = self.parent.type
-		end
-		if self.const ~= '' then
-			type = "const "..type
-		end
-		output('     !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) ||\n')
- end
- -- check args
- if self.args[1].type ~= 'void' then
-  local i=1
-  while self.args[i] do
-   local btype = isbasic(self.args[i].type)
-   if btype ~= 'value' and btype ~= 'state' then
-    output('     !'..self.args[i]:outchecktype(narg)..' ||\n')
-   end
-   if btype ~= 'state' then
-	   narg = narg+1
-   end
-   i = i+1
-  end
- end
- -- check end of list
- output('     !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n )')
-	output('  goto tolua_lerror;')
-
- output(' else\n')
-	if overload < 0 then
-	 output('#endif\n')
-	end
-	output(' {')
-
- -- declare self, if the case
- local narg
- if class then narg=2 else narg=1 end
- if class and self.name~='new' and static==nil then
-  output(' ',self.const,self.parent.type,'*','self = ')
-  output('(',self.const,self.parent.type,'*) ')
-  output('tolua_tousertype(tolua_S,1,0);')
- elseif static then
-  _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
- end
- -- declare parameters
- if self.args[1].type ~= 'void' then
-  local i=1
-  while self.args[i] do
-   self.args[i]:declare(narg)
-   if isbasic(self.args[i].type) ~= "state" then
-	   narg = narg+1
-   end
-   i = i+1
-  end
- end
-
- -- check self
- if class and self.name~='new' and static==nil then
-	 output('#ifndef TOLUA_RELEASE\n')
-  output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in function \''..self.name..'\'",NULL);');
-	 output('#endif\n')
- end
-
- -- get array element values
- if class then narg=2 else narg=1 end
- if self.args[1].type ~= 'void' then
-  local i=1
-  while self.args[i] do
-   self.args[i]:getarray(narg)
-   narg = narg+1
-   i = i+1
-  end
- end
-
- --------------------------------------------------
- -- CEGUILua mod
- -- init exception handling
- local throws = false
- do
-  local pattern = "tolua_throws|.*|"
-  local i,j = string.find(self.mod, pattern)
-  if i then
-   throws = {}
-   -- ensure table is empty.  Used to be: table.setn(throws,0)
-   for x in pairs(throws) do
-     throws[x] = nil
-   end
-   local excepts = string.sub(self.mod, i+12,j)
-   local epattern = "|.-|"
-   local i,j = string.find(excepts, epattern)
-   while i do
-    local e = string.sub(excepts,i+1,j-1)
-    local _,_,name,rest = string.find(e, "([%w:_]+),?(.*)")
-    table.insert(throws,{name=name, ret=rest})
-    i,j = string.find(excepts, epattern, j)
-   end
-   self.mod = string.gsub(self.mod, pattern, "")
-  end
- end
- local exRaiseError = false
- --------------------------------------------------
-
- local out = string.find(self.mod, "tolua_outside")
-
- ---------------
- -- CEGUILua mod
- -- remove "tolua_outside" from self.mod
- if out then
-    self.mod = string.gsub(self.mod, "tolua_outside", "")
- end
-
- -- call function
- if class and self.name=='delete' then
-  output('  delete self;')
- elseif class and self.name == 'operator&[]' then
-  if flags['1'] then -- for compatibility with tolua5 ?
-	output('  self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';')
-  else
-    output('  self->operator[](',self.args[1].name,') = ',self.args[2].name,';')
-  end
- else
-  -- CEGUILua mod begin- throws
-  if throws then
-    for i=1,table.getn(throws) do
-        if string.find(throws[i].ret, "error") then
-            output("char errorBuffer["..exceptionMessageBufferSize.."];\n")
-            output("bool errorDoIt = false;\n")
-            exRaiseError = true
-            break
-        end
-    end
-    output("try\n")
-  end
-  -- CEGUILua mod end - throws
-  output('  {')
-  if self.type ~= '' and self.type ~= 'void' then
-   output('  ',self.mod,self.type,self.ptr,'tolua_ret = ')
-   output('(',self.mod,self.type,self.ptr,') ')
-  else
-   output('  ')
-  end
-  if class and self.name=='new' then
-   output('new',self.type,'(')
-  elseif class and static then
-	if out then
-		output(self.name,'(')
-	else
-		output(class..'::'..self.name,'(')
-	end
-  elseif class then
-	if out then
-		output(self.name,'(')
-	else
-	  if self.cast_operator then
-	  	output('static_cast<',self.mod,self.type,self.ptr,'>(*self')
-	  else
-		output('self->'..self.name,'(')
-	  end
-	end
-  else
-   output(self.name,'(')
-  end
-
-  if out and not static then
-  	output('self')
-	if self.args[1] and self.args[1].name ~= '' then
-		output(',')
-	end
-  end
-  -- write parameters
-  local i=1
-  while self.args[i] do
-   self.args[i]:passpar()
-   i = i+1
-   if self.args[i] then
-    output(',')
-   end
-  end
-
-  if class and self.name == 'operator[]' and flags['1'] then
-	output('-1);')
-  else
-	output(');')
-  end
-
-  -- return values
-  if self.type ~= '' and self.type ~= 'void' then
-   nret = nret + 1
-   local t,ct = isbasic(self.type)
-   if t then
-   	if self.cast_operator and _basic_raw_push[t] then
-		output('   ',_basic_raw_push[t],'(tolua_S,(',ct,')tolua_ret);')
-   	else
-	    output('   tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);')
-	end
-   else
-			 t = self.type
-			 new_t = string.gsub(t, "const%s+", "")
-    if self.ptr == '' then
-     output('   {')
-     output('#ifdef __cplusplus\n')
-     output('    void* tolua_obj = new',new_t,'(tolua_ret);')
-     output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
-     output('#else\n')
-     output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));')
-     output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
-     output('#endif\n')
-     output('   }')
-    elseif self.ptr == '&' then
-     output('   tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");')
-    else
-    	if local_constructor then
-	  output('   tolua_pushusertype_and_takeownership(tolua_S,(void *)tolua_ret,"',t,'");')
-    	else
-		     output('   tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");')
-	    end
-    end
-   end
-  end
-  local i=1
-  while self.args[i] do
-   nret = nret + self.args[i]:retvalue()
-   i = i+1
-  end
-  output('  }')
-
-  ------------------------------------------
-  -- CEGUILua mod
-  -- finish exception handling
-  -- catch
-  if throws then
-   outputExceptionCatchBlocks(self.name, throws, exRaiseError)
-  end
-  ------------------------------------------
-
-  -- set array element values
-  if class then narg=2 else narg=1 end
-  if self.args[1].type ~= 'void' then
-   local i=1
-   while self.args[i] do
-    self.args[i]:setarray(narg)
-    narg = narg+1
-    i = i+1
-   end
-  end
-
-  -- free dynamically allocated array
-  if self.args[1].type ~= 'void' then
-   local i=1
-   while self.args[i] do
-    self.args[i]:freearray()
-    i = i+1
-   end
-  end
- end
-
- output(' }')
- output(' return '..nret..';')
-
- -- call overloaded function or generate error
-	if overload < 0 then
-
-		output('#ifndef TOLUA_RELEASE\n')
-		output('tolua_lerror:\n')
-		output(' tolua_error(tolua_S,"#ferror in function \''..self.lname..'\'.",&tolua_err);')
-		output(' return 0;')
-		output('#endif\n')
-	else
-		local _local = ""
-		if local_constructor then
-			_local = "_local"
-		end
-		output('tolua_lerror:\n')
-		output(' return '..strsub(self.cname,1,-3)..format("%02d",overload).._local..'(tolua_S);')
-	end
- output('}')
- output('#endif //#ifndef TOLUA_DISABLE\n')
- output('\n')
-
-	-- recursive call to write local constructor
-	if class and self.name=='new' and not local_constructor then
-
-		self:supcode(1)
-	end
+    local overload = strsub(self.cname,-2,-1) - 1  -- indicate overloaded func
+    local nret = 0      -- number of returned values
+    local class = self:inclass()
+    local _,_,static = strfind(self.mod,'^%s*(static)')
+    if class then
+
+        if self.name == 'new' and self.parent.flags.pure_virtual then
+            -- no constructor for classes with pure virtual methods
+            return
+        end
+
+        if local_constructor then
+           output("/* method: new_local of class ",class," */")
+       else
+           output("/* method:",self.name," of class ",class," */")
+       end
+    else
+        output("/* function:",self.name," */")
+    end
+
+    if local_constructor then
+        output("#ifndef TOLUA_DISABLE_"..self.cname.."_local")
+        output("\nstatic int",self.cname.."_local","(lua_State* tolua_S)")
+    else
+        output("#ifndef TOLUA_DISABLE_"..self.cname)
+        output("\nstatic int",self.cname,"(lua_State* tolua_S)")
+    end
+    output("{")
+
+    -- check types
+    if overload < 0 then
+        output('#ifndef TOLUA_RELEASE\n')
+    end
+    output(' tolua_Error tolua_err;')
+    output(' if (\n')
+    -- check self
+    local narg
+    if class then narg=2 else narg=1 end
+    if class then
+        local func = 'tolua_isusertype'
+        local type = self.parent.type
+        if self.name=='new' or static~=nil then
+            func = 'tolua_isusertable'
+            type = self.parent.type
+        end
+        if self.const ~= '' then
+            type = "const "..type
+        end
+        output('     !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) ||\n')
+    end
+    -- check args
+    if self.args[1].type ~= 'void' then
+        local i=1
+        while self.args[i] do
+            local btype = isbasic(self.args[i].type)
+            if btype ~= 'value' and btype ~= 'state' then
+                output('     !'..self.args[i]:outchecktype(narg)..' ||\n')
+            end
+            if btype ~= 'state' then
+                narg = narg+1
+            end
+            i = i+1
+        end
+    end
+    -- check end of list
+    output('     !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n )')
+    output('  goto tolua_lerror;')
+
+    output(' else\n')
+    if overload < 0 then
+        output('#endif\n')
+    end
+    output(' {')
+
+    -- declare self, if the case
+    local narg
+    if class then narg=2 else narg=1 end
+    if class and self.name~='new' and static==nil then
+        output(' ',self.const,self.parent.type,'*','self = ')
+        output('(',self.const,self.parent.type,'*) ')
+        output('tolua_tousertype(tolua_S,1,0);')
+    elseif static then
+        _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
+    end
+    -- declare parameters
+    if self.args[1].type ~= 'void' then
+        local i=1
+        while self.args[i] do
+            self.args[i]:declare(narg)
+            if isbasic(self.args[i].type) ~= "state" then
+                narg = narg+1
+            end
+            i = i+1
+        end
+    end
+
+    -- check self
+    if class and self.name~='new' and static==nil then
+        output('#ifndef TOLUA_RELEASE\n')
+        output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in function \''..self.name..'\'",NULL);');
+        output('#endif\n')
+    end
+
+    -- get array element values
+    if class then narg=2 else narg=1 end
+    if self.args[1].type ~= 'void' then
+        local i=1
+        while self.args[i] do
+            self.args[i]:getarray(narg)
+            narg = narg+1
+            i = i+1
+        end
+    end
+
+    --------------------------------------------------
+    -- CEGUILua mod
+    -- init exception handling
+    local throws = false
+    do
+        local pattern = "tolua_throws|.*|"
+        local i,j = string.find(self.mod, pattern)
+        if i then
+            throws = {}
+            -- ensure table is empty.  Used to be: table.setn(throws,0)
+            for x in pairs(throws) do
+                throws[x] = nil
+            end
+            local excepts = string.sub(self.mod, i+12,j)
+            local epattern = "|.-|"
+            local i,j = string.find(excepts, epattern)
+            while i do
+                local e = string.sub(excepts,i+1,j-1)
+                local _,_,name,rest = string.find(e, "([%w:_]+),?(.*)")
+                table.insert(throws,{name=name, ret=rest})
+                i,j = string.find(excepts, epattern, j)
+            end
+            self.mod = string.gsub(self.mod, pattern, "")
+        end
+    end
+    local exRaiseError = false
+    --------------------------------------------------
+
+    local out = string.find(self.mod, "tolua_outside")
+
+    ---------------
+    -- CEGUILua mod
+    -- remove "tolua_outside" from self.mod
+    if out then
+        self.mod = string.gsub(self.mod, "tolua_outside", "")
+    end
+
+    -- call function
+    if class and self.name=='delete' then
+        output('  delete self;')
+    elseif class and self.name == 'operator&[]' then
+        if flags['1'] then -- for compatibility with tolua5 ?
+            output('  self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';')
+        else
+            output('  self->operator[](',self.args[1].name,') = ',self.args[2].name,';')
+        end
+    else
+    -- CEGUILua mod begin- throws
+    if throws then
+        for i=1,table.getn(throws) do
+            if string.find(throws[i].ret, "error") then
+                output("char errorBuffer["..exceptionMessageBufferSize.."];\n")
+                output("bool errorDoIt = false;\n")
+                exRaiseError = true
+                break
+            end
+        end
+        output("try\n")
+    end
+    -- CEGUILua mod end - throws
+    output('  {')
+    if self.type ~= '' and self.type ~= 'void' then
+        output('  ',self.mod,self.type,self.ptr,'tolua_ret = ')
+        output('(',self.mod,self.type,self.ptr,') ')
+    else
+        output('  ')
+    end
+    if class and self.name=='new' then
+        output('new',self.type,'(')
+    elseif class and static then
+        if out then
+            output(self.name,'(')
+        else
+            output(class..'::'..self.name,'(')
+        end
+    elseif class then
+        if out then
+            output(self.name,'(')
+        else
+            if self.cast_operator then
+                output('static_cast<',self.mod,self.type,self.ptr,'>(*self')
+            else
+                output('self->'..self.name,'(')
+            end
+        end
+    else
+        output(self.name,'(')
+    end
+
+    if out and not static then
+        output('self')
+        if self.args[1] and self.args[1].name ~= '' then
+            output(',')
+        end
+    end
+    -- write parameters
+    local i=1
+    while self.args[i] do
+        self.args[i]:passpar()
+        i = i+1
+        if self.args[i] then
+            output(',')
+        end
+    end
+
+    if class and self.name == 'operator[]' and flags['1'] then
+        output('-1);')
+    else
+        output(');')
+    end
+
+    -- return values
+    if self.type ~= '' and self.type ~= 'void' then
+        nret = nret + 1
+        local t,ct = isbasic(self.type)
+        if t then
+            if self.cast_operator and _basic_raw_push[t] then
+                output('   ',_basic_raw_push[t],'(tolua_S,(',ct,')tolua_ret);')
+            else
+                output('   tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);')
+            end
+            else
+                t = self.type
+                new_t = string.gsub(t, "const%s+", "")
+                if self.ptr == '' then
+                    output('   {')
+                    output('#ifdef __cplusplus\n')
+                    output('    void* tolua_obj = new',new_t,'(tolua_ret);')
+                    output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
+                    output('#else\n')
+                    output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));')
+                    output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
+                    output('#endif\n')
+                    output('   }')
+                elseif self.ptr == '&' then
+                    output('   tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");')
+                else
+                    if local_constructor then
+                        output('   tolua_pushusertype_and_takeownership(tolua_S,(void *)tolua_ret,"',t,'");')
+                    else
+                        output('   tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");')
+                    end
+                end
+            end
+        end
+        local i=1
+        while self.args[i] do
+            nret = nret + self.args[i]:retvalue()
+            i = i+1
+        end
+        output('  }')
+
+        ------------------------------------------
+        -- CEGUILua mod
+        -- finish exception handling
+        -- catch
+        if throws then
+            outputExceptionCatchBlocks(self.name, throws, exRaiseError)
+        end
+        ------------------------------------------
+
+        -- set array element values
+        if class then narg=2 else narg=1 end
+        if self.args[1].type ~= 'void' then
+            local i=1
+            while self.args[i] do
+                self.args[i]:setarray(narg)
+                narg = narg+1
+                i = i+1
+            end
+        end
+
+        -- free dynamically allocated array
+        if self.args[1].type ~= 'void' then
+            local i=1
+            while self.args[i] do
+                self.args[i]:freearray()
+                i = i+1
+            end
+        end
+    end
+
+    output(' }')
+    output(' return '..nret..';')
+
+    -- call overloaded function or generate error
+    if overload < 0 then
+
+        output('#ifndef TOLUA_RELEASE\n')
+        output('tolua_lerror:\n')
+        output(' tolua_error(tolua_S,"#ferror in function \''..self.lname..'\'.",&tolua_err);')
+        output(' return 0;')
+        output('#endif\n')
+    else
+        local _local = ""
+        if local_constructor then
+            _local = "_local"
+        end
+        output('tolua_lerror:\n')
+        output(' return '..strsub(self.cname,1,-3)..format("%02d",overload).._local..'(tolua_S);')
+    end
+    output('}')
+    output('#endif //#ifndef TOLUA_DISABLE\n')
+    output('\n')
+
+    -- recursive call to write local constructor
+    if class and self.name=='new' and not local_constructor then
+
+        self:supcode(1)
+    end
 
 end
@@ -501,61 +501,61 @@
 function classFunction:register (pre)
 
-	if not self:check_public_access() then
-		return
-	end
-
- 	if self.name == 'new' and self.parent.flags.pure_virtual then
- 		-- no constructor for classes with pure virtual methods
- 		return
- 	end
-
- output(pre..'tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');')
-  if self.name == 'new' then
-	  output(pre..'tolua_function(tolua_S,"new_local",'..self.cname..'_local);')
-	  output(pre..'tolua_function(tolua_S,".call",'..self.cname..'_local);')
-	  --output(' tolua_set_call_event(tolua_S,'..self.cname..'_local, "'..self.parent.type..'");')
-  end
+    if not self:check_public_access() then
+        return
+    end
+
+    if self.name == 'new' and self.parent.flags.pure_virtual then
+        -- no constructor for classes with pure virtual methods
+        return
+    end
+
+    output(pre..'tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');')
+    if self.name == 'new' then
+        output(pre..'tolua_function(tolua_S,"new_local",'..self.cname..'_local);')
+        output(pre..'tolua_function(tolua_S,".call",'..self.cname..'_local);')
+        --output(' tolua_set_call_event(tolua_S,'..self.cname..'_local, "'..self.parent.type..'");')
+    end
 end
 
 -- Print method
 function classFunction:print (ident,close)
- print(ident.."Function{")
- print(ident.." mod  = '"..self.mod.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.." ptr  = '"..self.ptr.."',")
- print(ident.." name = '"..self.name.."',")
- print(ident.." lname = '"..self.lname.."',")
- print(ident.." const = '"..self.const.."',")
- print(ident.." cname = '"..self.cname.."',")
- print(ident.." lname = '"..self.lname.."',")
- print(ident.." args = {")
- local i=1
- while self.args[i] do
-  self.args[i]:print(ident.."  ",",")
-  i = i+1
- end
- print(ident.." }")
- print(ident.."}"..close)
+    print(ident.."Function{")
+    print(ident.." mod  = '"..self.mod.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.." ptr  = '"..self.ptr.."',")
+    print(ident.." name = '"..self.name.."',")
+    print(ident.." lname = '"..self.lname.."',")
+    print(ident.." const = '"..self.const.."',")
+    print(ident.." cname = '"..self.cname.."',")
+    print(ident.." lname = '"..self.lname.."',")
+    print(ident.." args = {")
+    local i=1
+    while self.args[i] do
+        self.args[i]:print(ident.."  ",",")
+        i = i+1
+    end
+    print(ident.." }")
+    print(ident.."}"..close)
 end
 
 -- check if it returns an object by value
 function classFunction:requirecollection (t)
-	local r = false
-	if self.type ~= '' and not isbasic(self.type) and self.ptr=='' then
-		local type = gsub(self.type,"%s*const%s+","")
-	 t[type] = "tolua_collect_" .. clean_template(type)
-	 r = true
-	end
-	local i=1
-	while self.args[i] do
-		r = self.args[i]:requirecollection(t) or r
-		i = i+1
-	end
-	return r
+    local r = false
+    if self.type ~= '' and not isbasic(self.type) and self.ptr=='' then
+        local type = gsub(self.type,"%s*const%s+","")
+        t[type] = "tolua_collect_" .. clean_template(type)
+        r = true
+    end
+    local i=1
+    while self.args[i] do
+        r = self.args[i]:requirecollection(t) or r
+        i = i+1
+    end
+    return r
 end
 
 -- determine lua function name overload
 function classFunction:overload ()
- return self.parent:overload(self.lname)
+    return self.parent:overload(self.lname)
 end
 
@@ -563,44 +563,44 @@
 function param_object(par) -- returns true if the parameter has an object as its default value
 
-	if not string.find(par, '=') then return false end -- it has no default value
-
-	local _,_,def = string.find(par, "=(.*)$")
-
-	if string.find(par, "|") then -- a list of flags
-
-		return true
-	end
-
-	if string.find(par, "%*") then -- it's a pointer with a default value
-
-		if string.find(par, '=%s*new') then -- it's a pointer with an instance as default parameter.. is that valid?
-			return true
-		end
-		return false -- default value is 'NULL' or something
-	end
-
-
-	if string.find(par, "[%(&]") then
-		return true
-	end -- default value is a constructor call (most likely for a const reference)
-
-	--if string.find(par, "&") then
-
-	--	if string.find(def, ":") or string.find(def, "^%s*new%s+") then
-
-	--		-- it's a reference with default to something like Class::member, or 'new Class'
-	--		return true
-	--	end
-	--end
-
-	return false -- ?
+    if not string.find(par, '=') then return false end -- it has no default value
+
+    local _,_,def = string.find(par, "=(.*)$")
+
+    if string.find(par, "|") then -- a list of flags
+
+        return true
+    end
+
+    if string.find(par, "%*") then -- it's a pointer with a default value
+
+        if string.find(par, '=%s*new') then -- it's a pointer with an instance as default parameter.. is that valid?
+            return true
+        end
+        return false -- default value is 'NULL' or something
+    end
+
+
+    if string.find(par, "[%(&]") then
+        return true
+    end -- default value is a constructor call (most likely for a const reference)
+
+    --if string.find(par, "&") then
+
+    --    if string.find(def, ":") or string.find(def, "^%s*new%s+") then
+
+    --        -- it's a reference with default to something like Class::member, or 'new Class'
+    --        return true
+    --    end
+    --end
+
+    return false -- ?
 end
 
 function strip_last_arg(all_args, last_arg) -- strips the default value from the last argument
 
-	local _,_,s_arg = string.find(last_arg, "^([^=]+)")
-	last_arg = string.gsub(last_arg, "([%%%(%)])", "%%%1");
-	all_args = string.gsub(all_args, "%s*,%s*"..last_arg.."%s*%)%s*$", ")")
-	return all_args, s_arg
+    local _,_,s_arg = string.find(last_arg, "^([^=]+)")
+    last_arg = string.gsub(last_arg, "([%%%(%)])", "%%%1");
+    all_args = string.gsub(all_args, "%s*,%s*"..last_arg.."%s*%)%s*$", ")")
+    return all_args, s_arg
 end
 
@@ -609,27 +609,27 @@
 -- Internal constructor
 function _Function (t)
- setmetatable(t,classFunction)
-
- if t.const ~= 'const' and t.const ~= '' then
-  error("#invalid 'const' specification")
- end
-
- append(t)
- if t:inclass() then
- --print ('t.name is '..t.name..', parent.name is '..t.parent.name)
-  if string.gsub(t.name, "%b<>", "") == string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then
-   t.name = 'new'
-   t.lname = 'new'
-   t.parent._new = true
-   t.type = t.parent.name
-   t.ptr = '*'
-  elseif string.gsub(t.name, "%b<>", "") == '~'..string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then
-   t.name = 'delete'
-   t.lname = 'delete'
-   t.parent._delete = true
-  end
- end
- t.cname = t:cfuncname("tolua")..t:overload(t)
- return t
+    setmetatable(t,classFunction)
+
+    if t.const ~= 'const' and t.const ~= '' then
+        error("#invalid 'const' specification")
+    end
+
+    append(t)
+    if t:inclass() then
+        --print ('t.name is '..t.name..', parent.name is '..t.parent.name)
+        if string.gsub(t.name, "%b<>", "") == string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then
+            t.name = 'new'
+            t.lname = 'new'
+            t.parent._new = true
+            t.type = t.parent.name
+            t.ptr = '*'
+        elseif string.gsub(t.name, "%b<>", "") == '~'..string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then
+            t.name = 'delete'
+            t.lname = 'delete'
+            t.parent._delete = true
+        end
+    end
+    t.cname = t:cfuncname("tolua")..t:overload(t)
+    return t
 end
 
@@ -639,81 +639,81 @@
 -- the "const" or empty string.
 function Function (d,a,c)
- --local t = split(strsub(a,2,-2),',') -- eliminate braces
- --local t = split_params(strsub(a,2,-2))
-
-	if not flags['W'] and string.find(a, "%.%.%.%s*%)") then
-
-		warning("Functions with variable arguments (`...') are not supported. Ignoring "..d..a..c)
-		return nil
-	end
-
-
- local i=1
- local l = {n=0}
-
- 	a = string.gsub(a, "%s*([%(%)])%s*", "%1")
-	local t,strip,last = strip_pars(strsub(a,2,-2));
-	if strip then
-		--local ns = string.sub(strsub(a,1,-2), 1, -(string.len(last)+1))
-		local ns = join(t, ",", 1, last-1)
-
-		ns = "("..string.gsub(ns, "%s*,%s*$", "")..')'
-		--ns = strip_defaults(ns)
-
-		Function(d, ns, c)
-		for i=1,last do
-			t[i] = string.gsub(t[i], "=.*$", "")
-		end
-	end
-
- while t[i] do
-  l.n = l.n+1
-  l[l.n] = Declaration(t[i],'var',true)
-  i = i+1
- end
- local f = Declaration(d,'func')
- f.args = l
- f.const = c
- return _Function(f)
+    --local t = split(strsub(a,2,-2),',') -- eliminate braces
+    --local t = split_params(strsub(a,2,-2))
+
+    if not flags['W'] and string.find(a, "%.%.%.%s*%)") then
+
+        warning("Functions with variable arguments (`...') are not supported. Ignoring "..d..a..c)
+        return nil
+    end
+
+
+    local i=1
+    local l = {n=0}
+
+    a = string.gsub(a, "%s*([%(%)])%s*", "%1")
+    local t,strip,last = strip_pars(strsub(a,2,-2));
+    if strip then
+        --local ns = string.sub(strsub(a,1,-2), 1, -(string.len(last)+1))
+        local ns = join(t, ",", 1, last-1)
+
+        ns = "("..string.gsub(ns, "%s*,%s*$", "")..')'
+        --ns = strip_defaults(ns)
+
+        Function(d, ns, c)
+        for i=1,last do
+            t[i] = string.gsub(t[i], "=.*$", "")
+        end
+    end
+
+    while t[i] do
+        l.n = l.n+1
+        l[l.n] = Declaration(t[i],'var',true)
+        i = i+1
+    end
+    local f = Declaration(d,'func')
+    f.args = l
+    f.const = c
+    return _Function(f)
 end
 
 function join(t, sep, first, last)
 
-	first = first or 1
-	last = last or table.getn(t)
-	local lsep = ""
-	local ret = ""
-	local loop = false
-	for i = first,last do
-
-		ret = ret..lsep..t[i]
-		lsep = sep
-		loop = true
-	end
-	if not loop then
-		return ""
-	end
-
-	return ret
+    first = first or 1
+    last = last or table.getn(t)
+    local lsep = ""
+    local ret = ""
+    local loop = false
+    for i = first,last do
+
+        ret = ret..lsep..t[i]
+        lsep = sep
+        loop = true
+    end
+    if not loop then
+        return ""
+    end
+
+    return ret
 end
 
 function strip_pars(s)
 
-	local t = split_c_tokens(s, ',')
-	local strip = false
-	local last
-
-	for i=t.n,1,-1 do
-
-		if not strip and param_object(t[i]) then
-			last = i
-			strip = true
-		end
-		--if strip then
-		--	t[i] = string.gsub(t[i], "=.*$", "")
-		--end
-	end
-
-	return t,strip,last
+    local t = split_c_tokens(s, ',')
+    local strip = false
+    local last
+
+    for i=t.n,1,-1 do
+
+        if not strip and param_object(t[i]) then
+            last = i
+            strip = true
+        end
+        --if strip then
+        --    t[i] = string.gsub(t[i], "=.*$", "")
+        --end
+    end
+
+    return t,strip,last
 
 end
@@ -721,17 +721,17 @@
 function strip_defaults(s)
 
-	s = string.gsub(s, "^%(", "")
-	s = string.gsub(s, "%)$", "")
-
-	local t = split_c_tokens(s, ",")
-	local sep, ret = "",""
-	for i=1,t.n do
-		t[i] = string.gsub(t[i], "=.*$", "")
-		ret = ret..sep..t[i]
-		sep = ","
-	end
-
-	return "("..ret..")"
-end
-
-
+    s = string.gsub(s, "^%(", "")
+    s = string.gsub(s, "%)$", "")
+
+    local t = split_c_tokens(s, ",")
+    local sep, ret = "",""
+    for i=1,t.n do
+        t[i] = string.gsub(t[i], "=.*$", "")
+        ret = ret..sep..t[i]
+        sep = ","
+    end
+
+    return "("..ret..")"
+end
+
+
Index: code/branches/buildsystem3/src/tolua/lua/module.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/module.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/module.lua	(revision 2664)
@@ -17,5 +17,5 @@
 --    {i} = list of objects in the module.
 classModule = {
- classtype = 'module'
+    classtype = 'module'
 }
 classModule.__index = classModule
@@ -24,34 +24,34 @@
 -- register module
 function classModule:register (pre)
- pre = pre or ''
- push(self)
- output(pre..'tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');')
- output(pre..'tolua_beginmodule(tolua_S,"'..self.name..'");')
- local i=1
- while self[i] do
-  self[i]:register(pre..' ')
-  i = i+1
- end
- output(pre..'tolua_endmodule(tolua_S);')
-	pop()
+    pre = pre or ''
+    push(self)
+    output(pre..'tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');')
+    output(pre..'tolua_beginmodule(tolua_S,"'..self.name..'");')
+    local i=1
+    while self[i] do
+        self[i]:register(pre..' ')
+        i = i+1
+    end
+    output(pre..'tolua_endmodule(tolua_S);')
+    pop()
 end
 
 -- Print method
 function classModule:print (ident,close)
- print(ident.."Module{")
- print(ident.." name = '"..self.name.."';")
- local i=1
- while self[i] do
-  self[i]:print(ident.." ",",")
-  i = i+1
- end
- print(ident.."}"..close)
+    print(ident.."Module{")
+    print(ident.." name = '"..self.name.."';")
+    local i=1
+    while self[i] do
+        self[i]:print(ident.." ",",")
+        i = i+1
+    end
+    print(ident.."}"..close)
 end
 
 -- Internal constructor
 function _Module (t)
- setmetatable(t,classModule)
- append(t)
- return t
+    setmetatable(t,classModule)
+    append(t)
+    return t
 end
 
@@ -59,9 +59,9 @@
 -- Expects two string representing the module name and body.
 function Module (n,b)
- local t = _Module(_Container{name=n})
- push(t)
- t:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
- pop()
- return t
+    local t = _Module(_Container{name=n})
+    push(t)
+    t:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
+    pop()
+    return t
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/namespace.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/namespace.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/namespace.lua	(revision 2664)
@@ -17,6 +17,6 @@
 --    {i}  = list of members
 classNamespace = {
- classtype = 'namespace',
- name = '',
+    classtype = 'namespace',
+    name = '',
 }
 classNamespace.__index = classNamespace
@@ -25,19 +25,19 @@
 -- Print method
 function classNamespace:print (ident,close)
- print(ident.."Namespace{")
- print(ident.." name = '"..self.name.."',")
- local i=1
- while self[i] do
-  self[i]:print(ident.." ",",")
-  i = i+1
- end
- print(ident.."}"..close)
+    print(ident.."Namespace{")
+    print(ident.." name = '"..self.name.."',")
+    local i=1
+    while self[i] do
+        self[i]:print(ident.." ",",")
+        i = i+1
+    end
+    print(ident.."}"..close)
 end
 
 -- Internal constructor
 function _Namespace (t)
- setmetatable(t,classNamespace)
- append(t)
- return t
+    setmetatable(t,classNamespace)
+    append(t)
+    return t
 end
 
@@ -45,8 +45,8 @@
 -- Expects the name and the body of the namespace.
 function Namespace (n,b)
- local c = _Namespace(_Container{name=n})
- push(c)
- c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
- pop()
+    local c = _Namespace(_Container{name=n})
+    push(c)
+    c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
+    pop()
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/operator.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/operator.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/operator.lua	(revision 2664)
@@ -16,5 +16,5 @@
 --  kind = set of character representing the operator (as it appers in C++ code)
 classOperator = {
- kind = '',
+    kind = '',
 }
 classOperator.__index = classOperator
@@ -22,138 +22,139 @@
 
 -- table to transform operator kind into the appropriate tag method name
-_TM = {['+'] = 'add',
-       ['-'] = 'sub',
-       ['*'] = 'mul',
-       ['/'] = 'div',
-       ['<'] = 'lt',
-       ['<='] = 'le',
-       ['=='] = 'eq',
-       ['[]'] = 'geti',
-       ['&[]'] = 'seti',
-       --['->'] = 'flechita',
-      }
+_TM = {
+    ['+'] = 'add',
+    ['-'] = 'sub',
+    ['*'] = 'mul',
+    ['/'] = 'div',
+    ['<'] = 'lt',
+    ['<='] = 'le',
+    ['=='] = 'eq',
+    ['[]'] = 'geti',
+    ['&[]'] = 'seti',
+    --['->'] = 'flechita',
+}
 
 
 -- Print method
 function classOperator:print (ident,close)
- print(ident.."Operator{")
- print(ident.." kind  = '"..self.kind.."',")
- print(ident.." mod  = '"..self.mod.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.." ptr  = '"..self.ptr.."',")
- print(ident.." name = '"..self.name.."',")
- print(ident.." const = '"..self.const.."',")
- print(ident.." cname = '"..self.cname.."',")
- print(ident.." lname = '"..self.lname.."',")
- print(ident.." args = {")
- local i=1
- while self.args[i] do
-  self.args[i]:print(ident.."  ",",")
-  i = i+1
- end
- print(ident.." }")
- print(ident.."}"..close)
+    print(ident.."Operator{")
+    print(ident.." kind  = '"..self.kind.."',")
+    print(ident.." mod  = '"..self.mod.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.." ptr  = '"..self.ptr.."',")
+    print(ident.." name = '"..self.name.."',")
+    print(ident.." const = '"..self.const.."',")
+    print(ident.." cname = '"..self.cname.."',")
+    print(ident.." lname = '"..self.lname.."',")
+    print(ident.." args = {")
+    local i=1
+    while self.args[i] do
+        self.args[i]:print(ident.."  ",",")
+        i = i+1
+    end
+    print(ident.." }")
+    print(ident.."}"..close)
 end
 
 function classOperator:supcode_tmp()
 
-	if not _TM[self.kind] then
-		return classFunction.supcode(self)
-	end
-
-	-- no overload, no parameters, always inclass
-	output("/* method:",self.name," of class ",self:inclass()," */")
-
-	output("#ifndef TOLUA_DISABLE_"..self.cname)
-	output("\nstatic int",self.cname,"(lua_State* tolua_S)")
-
-	if overload < 0 then
-	 output('#ifndef TOLUA_RELEASE\n')
-	end
-	output(' tolua_Error tolua_err;')
-	output(' if (\n')
-	-- check self
-	output('     !'..'tolua_isusertype(tolua_S,1,"'..self.parent.type..'",0,&tolua_err) ||\n')
-	output('     !tolua_isnoobj(tolua_S,2,&tolua_err)\n )')
-	output('  goto tolua_lerror;')
-
-	output(' else\n')
-	output('#endif\n') -- tolua_release
-	output(' {')
-
-	-- declare self
-	output(' ',self.const,self.parent.type,'*','self = ')
-	output('(',self.const,self.parent.type,'*) ')
-	output('tolua_tousertype(tolua_S,1,0);')
-
-	-- check self
-	output('#ifndef TOLUA_RELEASE\n')
-	output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in function \''..self.name..'\'",NULL);');
-	output('#endif\n')
-
-	-- cast self
-	output('  ',self.mod,self.type,self.ptr,'tolua_ret = ')
-	output('(',self.mod,self.type,self.ptr,')(*self);')
-
-	-- return value
-	local t,ct = isbasic(self.type)
-	if t then
-		output('   tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);')
-	else
-		t = self.type
-		new_t = string.gsub(t, "const%s+", "")
-		if self.ptr == '' then
-			output('   {')
-			output('#ifdef __cplusplus\n')
-			output('    void* tolua_obj = new',new_t,'(tolua_ret);')
-			output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
-			output('#else\n')
-			output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));')
-			output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
-			output('#endif\n')
-			output('   }')
-		elseif self.ptr == '&' then
-			output('   tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");')
-		else
-			if local_constructor then
-				output('   tolua_pushusertype_and_takeownership(tolua_S,(void *)tolua_ret,"',t,'");')
-			else
-				output('   tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");')
-			end
-		end
-	end
-
-	output('  }')
-	output(' return 1;')
-
-	output('#ifndef TOLUA_RELEASE\n')
-	output('tolua_lerror:\n')
-	output(' tolua_error(tolua_S,"#ferror in function \''..self.lname..'\'.",&tolua_err);')
-	output(' return 0;')
-	output('#endif\n')
-
-
-	output('}')
-	output('#endif //#ifndef TOLUA_DISABLE\n')
-	output('\n')
+    if not _TM[self.kind] then
+        return classFunction.supcode(self)
+    end
+
+    -- no overload, no parameters, always inclass
+    output("/* method:",self.name," of class ",self:inclass()," */")
+
+    output("#ifndef TOLUA_DISABLE_"..self.cname)
+    output("\nstatic int",self.cname,"(lua_State* tolua_S)")
+
+    if overload < 0 then
+        output('#ifndef TOLUA_RELEASE\n')
+    end
+    output(' tolua_Error tolua_err;')
+    output(' if (\n')
+    -- check self
+    output('     !'..'tolua_isusertype(tolua_S,1,"'..self.parent.type..'",0,&tolua_err) ||\n')
+    output('     !tolua_isnoobj(tolua_S,2,&tolua_err)\n )')
+    output('  goto tolua_lerror;')
+
+    output(' else\n')
+    output('#endif\n') -- tolua_release
+    output(' {')
+
+    -- declare self
+    output(' ',self.const,self.parent.type,'*','self = ')
+    output('(',self.const,self.parent.type,'*) ')
+    output('tolua_tousertype(tolua_S,1,0);')
+
+    -- check self
+    output('#ifndef TOLUA_RELEASE\n')
+    output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in function \''..self.name..'\'",NULL);');
+    output('#endif\n')
+
+    -- cast self
+    output('  ',self.mod,self.type,self.ptr,'tolua_ret = ')
+    output('(',self.mod,self.type,self.ptr,')(*self);')
+
+    -- return value
+    local t,ct = isbasic(self.type)
+    if t then
+        output('   tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);')
+    else
+        t = self.type
+        new_t = string.gsub(t, "const%s+", "")
+        if self.ptr == '' then
+            output('   {')
+            output('#ifdef __cplusplus\n')
+            output('    void* tolua_obj = new',new_t,'(tolua_ret);')
+            output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
+            output('#else\n')
+            output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));')
+            output('    tolua_pushusertype_and_takeownership(tolua_S,tolua_obj,"',t,'");')
+            output('#endif\n')
+            output('   }')
+        elseif self.ptr == '&' then
+            output('   tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");')
+        else
+            if local_constructor then
+                output('   tolua_pushusertype_and_takeownership(tolua_S,(void *)tolua_ret,"',t,'");')
+            else
+                output('   tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");')
+            end
+        end
+    end
+
+    output('  }')
+    output(' return 1;')
+
+    output('#ifndef TOLUA_RELEASE\n')
+    output('tolua_lerror:\n')
+    output(' tolua_error(tolua_S,"#ferror in function \''..self.lname..'\'.",&tolua_err);')
+    output(' return 0;')
+    output('#endif\n')
+
+
+    output('}')
+    output('#endif //#ifndef TOLUA_DISABLE\n')
+    output('\n')
 end
 
 -- Internal constructor
 function _Operator (t)
- setmetatable(t,classOperator)
-
- if t.const ~= 'const' and t.const ~= '' then
-  error("#invalid 'const' specification")
- end
-
- append(t)
- if not t:inclass() then
-  error("#operator can only be defined as class member")
- end
-
- --t.name = t.name .. "_" .. (_TM[t.kind] or t.kind)
- t.cname = t:cfuncname("tolua")..t:overload(t)
- t.name = "operator" .. t.kind  -- set appropriate calling name
- return t
+    setmetatable(t,classOperator)
+
+    if t.const ~= 'const' and t.const ~= '' then
+        error("#invalid 'const' specification")
+    end
+
+    append(t)
+    if not t:inclass() then
+        error("#operator can only be defined as class member")
+    end
+
+    --t.name = t.name .. "_" .. (_TM[t.kind] or t.kind)
+    t.cname = t:cfuncname("tolua")..t:overload(t)
+    t.name = "operator" .. t.kind  -- set appropriate calling name
+    return t
 end
 
@@ -161,54 +162,54 @@
 function Operator (d,k,a,c)
 
-	local op_k = string.gsub(k, "^%s*", "")
-	op_k = string.gsub(k, "%s*$", "")
-	--if string.find(k, "^[%w_:%d<>%*%&]+$") then
-	if d == "operator" and k ~= '' then
-
-		d = k.." operator"
-	elseif not _TM[op_k] then
-
-		if flags['W'] then
-			error("tolua: no support for operator" .. f.kind)
-		else
-			warning("No support for operator "..op_k..", ignoring")
-			return nil
-		end
-	end
-
-	local ref = ''
- local t = split_c_tokens(strsub(a,2,strlen(a)-1),',') -- eliminate braces
- local i=1
- local l = {n=0}
- while t[i] do
-  l.n = l.n+1
-  l[l.n] = Declaration(t[i],'var')
-  i = i+1
- end
- if k == '[]' then
-	 local _
-	 _, _, ref = strfind(d,'(&)')
-  d = gsub(d,'&','')
- elseif k=='&[]' then
-  l.n = l.n+1
-  l[l.n] = Declaration(d,'var')
-  l[l.n].name = 'tolua_value'
- end
- local f = Declaration(d,'func')
- if k == '[]' and (l[1]==nil or isbasic(l[1].type)~='number') then
-  error('operator[] can only be defined for numeric index.')
- end
- f.args = l
- f.const = c
- f.kind = op_k
- f.lname = "."..(_TM[f.kind] or f.kind)
- if not _TM[f.kind] then
- 	f.cast_operator = true
- end
- if f.kind == '[]' and ref=='&' and f.const~='const' then
-  Operator(d,'&'..k,a,c) 	-- create correspoding set operator
- end
- return _Operator(f)
-end
-
-
+    local op_k = string.gsub(k, "^%s*", "")
+    op_k = string.gsub(k, "%s*$", "")
+    --if string.find(k, "^[%w_:%d<>%*%&]+$") then
+    if d == "operator" and k ~= '' then
+
+        d = k.." operator"
+    elseif not _TM[op_k] then
+
+        if flags['W'] then
+            error("tolua: no support for operator" .. f.kind)
+        else
+            warning("No support for operator "..op_k..", ignoring")
+            return nil
+        end
+    end
+
+    local ref = ''
+    local t = split_c_tokens(strsub(a,2,strlen(a)-1),',') -- eliminate braces
+    local i=1
+    local l = {n=0}
+    while t[i] do
+        l.n = l.n+1
+        l[l.n] = Declaration(t[i],'var')
+        i = i+1
+    end
+    if k == '[]' then
+        local _
+        _, _, ref = strfind(d,'(&)')
+        d = gsub(d,'&','')
+    elseif k=='&[]' then
+        l.n = l.n+1
+        l[l.n] = Declaration(d,'var')
+        l[l.n].name = 'tolua_value'
+    end
+    local f = Declaration(d,'func')
+    if k == '[]' and (l[1]==nil or isbasic(l[1].type)~='number') then
+        error('operator[] can only be defined for numeric index.')
+    end
+    f.args = l
+    f.const = c
+    f.kind = op_k
+    f.lname = "."..(_TM[f.kind] or f.kind)
+    if not _TM[f.kind] then
+        f.cast_operator = true
+    end
+    if f.kind == '[]' and ref=='&' and f.const~='const' then
+        Operator(d,'&'..k,a,c)     -- create correspoding set operator
+    end
+    return _Operator(f)
+end
+
+
Index: code/branches/buildsystem3/src/tolua/lua/package.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/package.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/package.lua	(revision 2664)
@@ -17,5 +17,5 @@
 --    {i} = list of objects in the package.
 classPackage = {
- classtype = 'package'
+    classtype = 'package'
 }
 classPackage.__index = classPackage
@@ -24,153 +24,144 @@
 -- Print method
 function classPackage:print ()
- print("Package: "..self.name)
- local i=1
- while self[i] do
-  self[i]:print("","")
-  i = i+1
- end
+    print("Package: "..self.name)
+    local i=1
+    while self[i] do
+        self[i]:print("","")
+        i = i+1
+    end
 end
 
 function classPackage:preprocess ()
 
- -- avoid preprocessing embedded Lua code
- local L = {}
- self.code = gsub(self.code,"\n%s*%$%[","\1") -- deal with embedded lua code
- self.code = gsub(self.code,"\n%s*%$%]","\2")
- self.code = gsub(self.code,"(%b\1\2)",       function (c)
+    -- avoid preprocessing embedded Lua code
+    local L = {}
+    self.code = gsub(self.code,"\n%s*%$%[","\1") -- deal with embedded lua code
+    self.code = gsub(self.code,"\n%s*%$%]","\2")
+    self.code = gsub(self.code,"(%b\1\2)", function (c)
                                                tinsert(L,c)
                                                return "\n#["..getn(L).."]#"
-                                              end)
- -- avoid preprocessing embedded C code
- local C = {}
- self.code = gsub(self.code,"\n%s*%$%<","\3") -- deal with embedded C code
- self.code = gsub(self.code,"\n%s*%$%>","\4")
- self.code = gsub(self.code,"(%b\3\4)",       function (c)
+                                           end
+    )
+    -- avoid preprocessing embedded C code
+    local C = {}
+    self.code = gsub(self.code,"\n%s*%$%<","\3") -- deal with embedded C code
+    self.code = gsub(self.code,"\n%s*%$%>","\4")
+    self.code = gsub(self.code,"(%b\3\4)", function (c)
                                                tinsert(C,c)
                                                return "\n#<"..getn(C)..">#"
-                                              end)
- -- avoid preprocessing embedded C code
- self.code = gsub(self.code,"\n%s*%$%{","\5") -- deal with embedded C code
- self.code = gsub(self.code,"\n%s*%$%}","\6")
- self.code = gsub(self.code,"(%b\5\6)",       function (c)
+                                           end
+    )
+    -- avoid preprocessing embedded C code
+    self.code = gsub(self.code,"\n%s*%$%{","\5") -- deal with embedded C code
+    self.code = gsub(self.code,"\n%s*%$%}","\6")
+    self.code = gsub(self.code,"(%b\5\6)", function (c)
                                                tinsert(C,c)
                                                return "\n#<"..getn(C)..">#"
-                                              end)
-
- --self.code = gsub(self.code,"\n%s*#[^d][^\n]*\n", "\n\n") -- eliminate preprocessor directives that don't start with 'd'
- self.code = gsub(self.code,"\n[ \t]*#[ \t]*[^d%<%[]", "\n//") -- eliminate preprocessor directives that don't start with 'd'
-
- -- avoid preprocessing verbatim lines
- local V = {}
- self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)",function (v)
-                                               tinsert(V,v)
-                                               return "\n#"..getn(V).."#"
-                                              end)
-
- -- perform global substitution
-
- self.code = gsub(self.code,"(//[^\n]*)","")     -- eliminate C++ comments
- self.code = gsub(self.code,"/%*","\1")
- self.code = gsub(self.code,"%*/","\2")
- self.code = gsub(self.code,"%b\1\2","")
- self.code = gsub(self.code,"\1","/%*")
- self.code = gsub(self.code,"\2","%*/")
- self.code = gsub(self.code,"%s*@%s*","@") -- eliminate spaces beside @
- self.code = gsub(self.code,"%s?inline(%s)","%1") -- eliminate 'inline' keyword
- --self.code = gsub(self.code,"%s?extern(%s)","%1") -- eliminate 'extern' keyword
- --self.code = gsub(self.code,"%s?virtual(%s)","%1") -- eliminate 'virtual' keyword
- --self.code = gsub(self.code,"public:","") -- eliminate 'public:' keyword
- self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*'
- self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*'
- self.code = gsub(self.code,"([^%w_])char%s*%*","%1_cstring ")  -- substitute 'char*'
- self.code = gsub(self.code,"([^%w_])lua_State%s*%*","%1_lstate ")  -- substitute 'lua_State*'
-
- -- restore embedded Lua code
- self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n)
-                                              return L[tonumber(n)]
-                                            end)
- -- restore embedded C code
- self.code = gsub(self.code,"%#%<(%d+)%>%#",function (n)
-                                             return C[tonumber(n)]
-                                            end)
- -- restore verbatim lines
- self.code = gsub(self.code,"%#(%d+)%#",function (n)
-                                         return V[tonumber(n)]
-                                        end)
-
- self.code = string.gsub(self.code, "\n%s*%$([^\n]+)", function (l)
-											Verbatim(l.."\n")
-											return "\n"
-										  end)
+                                           end
+    )
+
+    --self.code = gsub(self.code,"\n%s*#[^d][^\n]*\n", "\n\n") -- eliminate preprocessor directives that don't start with 'd'
+    self.code = gsub(self.code,"\n[ \t]*#[ \t]*[^d%<%[]", "\n//") -- eliminate preprocessor directives that don't start with 'd'
+
+    -- avoid preprocessing verbatim lines
+    local V = {}
+    self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)", function (v)
+                                                             tinsert(V,v)
+                                                             return "\n#"..getn(V).."#"
+                                                         end
+    )
+
+    -- perform global substitution
+
+    self.code = gsub(self.code,"(//[^\n]*)","")     -- eliminate C++ comments
+    self.code = gsub(self.code,"/%*","\1")
+    self.code = gsub(self.code,"%*/","\2")
+    self.code = gsub(self.code,"%b\1\2","")
+    self.code = gsub(self.code,"\1","/%*")
+    self.code = gsub(self.code,"\2","%*/")
+    self.code = gsub(self.code,"%s*@%s*","@") -- eliminate spaces beside @
+    self.code = gsub(self.code,"%s?inline(%s)","%1") -- eliminate 'inline' keyword
+    --self.code = gsub(self.code,"%s?extern(%s)","%1") -- eliminate 'extern' keyword
+    --self.code = gsub(self.code,"%s?virtual(%s)","%1") -- eliminate 'virtual' keyword
+    --self.code = gsub(self.code,"public:","") -- eliminate 'public:' keyword
+    self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*'
+    self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*'
+    self.code = gsub(self.code,"([^%w_])char%s*%*","%1_cstring ")  -- substitute 'char*'
+    self.code = gsub(self.code,"([^%w_])lua_State%s*%*","%1_lstate ")  -- substitute 'lua_State*'
+
+    -- restore embedded Lua code
+    self.code = gsub(self.code,"%#%[(%d+)%]%#", function (n)
+                                                    return L[tonumber(n)]
+                                                end
+    )
+    -- restore embedded C code
+    self.code = gsub(self.code,"%#%<(%d+)%>%#", function (n)
+                                                    return C[tonumber(n)]
+                                                end
+    )
+    -- restore verbatim lines
+    self.code = gsub(self.code,"%#(%d+)%#", function (n)
+                                                return V[tonumber(n)]
+                                            end
+    )
+
+    self.code = string.gsub(self.code, "\n%s*%$([^\n]+)", function (l)
+                                                              Verbatim(l.."\n")
+                                                              return "\n"
+                                                          end
+    )
 end
 
 -- translate verbatim
 function classPackage:preamble ()
- output('/*\n')
- output('** Lua binding: '..self.name..'\n')
- output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n')
- output('*/\n\n')
-
-	output('#ifndef __cplusplus\n')
-	output('#include "stdlib.h"\n')
-	output('#endif\n')
-	output('#include "string.h"\n\n')
- output('#include "tolua/tolua++.h"\n\n')
-
- if not flags.h then
---  local temp = string.reverse(flags.H)
---  local start1, end1 = string.find(temp, '/')
---  local start2, end2 = string.find(temp, '\\')
---  local res
---  if not start1 == nil then
---   if not start2 == nil then
---    if start1 > start2 then
---     res = string.sub(temp, 1, start2)
---    else
---     res = string.sub(temp, 1, start1)
---    end
---   else
---    res = string.sub(temp, 1, start1)
---   end
---  elseif not start2 == nil then
---   res = string.sub(temp, 1, start2)
---  end
---  res = string.reverse(res)
-  output('#include "tolua_bind.h"')
-  output('\n')
- end
-
- local i=1
- while self[i] do
-  self[i]:preamble()
-  i = i+1
- end
-
-	if self:requirecollection(_collect) then
-		output('\n')
-		output('/* function to release collected object via destructor */')
-		output('#ifdef __cplusplus\n')
-		for i,v in pairs(_collect) do
-		 output('\nstatic int '..v..' (lua_State* tolua_S)')
-			output('{')
-			output(' '..i..'* self = ('..i..'*) tolua_tousertype(tolua_S,1,0);')
-			output('	delete self;')
-			output('	return 0;')
-			output('}')
-		end
-		output('#endif\n\n')
-	end
-
- output('\n')
- output('/* function to register type */')
- output('static void tolua_reg_types (lua_State* tolua_S)')
- output('{')
- foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end)
-	if flags.t then
-		output("#ifndef Mtolua_typeid\n#define Mtolua_typeid(L,TI,T)\n#endif\n")
-		foreach(_usertype,function(n,v) output(' Mtolua_typeid(tolua_S,typeid(',v,'), "',v,'");') end)
-	end
- output('}')
- output('\n')
+    output('/*\n')
+    output('** Lua binding: '..self.name..'\n')
+    output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n')
+    output('*/\n\n')
+
+    output('#ifndef __cplusplus\n')
+    output('#include <stdlib.h>\n')
+    output('#endif\n')
+    output('#include <string.h>\n\n')
+    output('#include <tolua/tolua++.h>\n\n')
+
+    if flags.H then
+        local header = gsub(flags.H, '^.-([%w_]*%.[%w_]*)$', '%1')
+        local package_lower = string.lower(self.name)
+        output('#include "'..header..'"\n')
+    end
+
+    local i=1
+    while self[i] do
+        self[i]:preamble()
+        i = i+1
+    end
+
+    if self:requirecollection(_collect) then
+        output('\n')
+        output('/* function to release collected object via destructor */')
+        output('#ifdef __cplusplus\n')
+        for i,v in pairs(_collect) do
+            output('\nstatic int '..v..' (lua_State* tolua_S)')
+            output('{')
+            output(' '..i..'* self = ('..i..'*) tolua_tousertype(tolua_S,1,0);')
+            output('    delete self;')
+            output('    return 0;')
+            output('}')
+        end
+        output('#endif\n\n')
+    end
+
+    output('\n')
+    output('/* function to register type */')
+    output('static void tolua_reg_types (lua_State* tolua_S)')
+    output('{')
+    foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end)
+    if flags.t then
+        output("#ifndef Mtolua_typeid\n#define Mtolua_typeid(L,TI,T)\n#endif\n")
+        foreach(_usertype,function(n,v) output(' Mtolua_typeid(tolua_S,typeid(',v,'), "',v,'");') end)
+    end
+    output('}')
+    output('\n')
 end
 
@@ -178,50 +169,52 @@
 -- write package open function
 function classPackage:register (pre)
- pre = pre or ''
- push(self)
- output(pre.."/* Open function */")
- output(pre.."int tolua_"..self.name.."_open (lua_State* tolua_S)")
- output(pre.."{")
- output(pre.." tolua_open(tolua_S);")
- output(pre.." tolua_reg_types(tolua_S);")
- output(pre.." tolua_module(tolua_S,NULL,",self:hasvar(),");")
- output(pre.." tolua_beginmodule(tolua_S,NULL);")
- local i=1
- while self[i] do
-  self[i]:register(pre.."  ")
-  i = i+1
- end
- output(pre.." tolua_endmodule(tolua_S);")
- output(pre.." return 1;")
- output(pre.."}")
-
- output("\n\n")
- output("#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501\n");
- output(pre.."int luaopen_"..self.name.." (lua_State* tolua_S) {")
- output(pre.." return tolua_"..self.name.."_open(tolua_S);")
- output(pre.."};")
- output("#endif\n\n")
-
-	pop()
+    pre = pre or ''
+    push(self)
+    output(pre.."/* Open function */")
+    output(pre.."int tolua_"..self.name.."_open (lua_State* tolua_S)")
+    output(pre.."{")
+    output(pre.." tolua_open(tolua_S);")
+    output(pre.." tolua_reg_types(tolua_S);")
+    output(pre.." tolua_module(tolua_S,NULL,",self:hasvar(),");")
+    output(pre.." tolua_beginmodule(tolua_S,NULL);")
+    local i=1
+    while self[i] do
+        self[i]:register(pre.."  ")
+        i = i+1
+    end
+    output(pre.." tolua_endmodule(tolua_S);")
+    output(pre.." return 1;")
+    output(pre.."}")
+
+    output("\n\n")
+    output("#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501\n");
+    output(pre.."int luaopen_"..self.name.." (lua_State* tolua_S) {")
+    output(pre.." return tolua_"..self.name.."_open(tolua_S);")
+    output(pre.."};")
+    output("#endif\n\n")
+
+    pop()
 end
 
 -- write header file
 function classPackage:header ()
- output('/*\n') output('** Lua binding: '..self.name..'\n')
- output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n')
- output('*/\n\n')
-
- if not flags.h then
-  output('#include "../'..self.name..'Prereqs.h"\n')
-  output('/* Exported function */')
-  output('_'..self.name..'Export int  tolua_'..self.name..'_open (lua_State* tolua_S);')
-  output('\n')
- end
+    output('/*\n') output('** Lua binding: '..self.name..'\n')
+    output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n')
+    output('*/\n\n')
+
+    if flags.H then
+        local package_lower = string.lower(self.name)
+        output('#include "'..package_lower..'/'..self.name..'Prereqs.h"\n')
+        output('/* Exported function */')
+        output('_'..self.name..'Export')
+        output('int  tolua_'..self.name..'_open (lua_State* tolua_S);')
+        output('\n')
+    end
 end
 
 -- Internal constructor
 function _Package (self)
- setmetatable(self,classPackage)
- return self
+    setmetatable(self,classPackage)
+    return self
 end
 
@@ -229,19 +222,23 @@
 -- *** Thanks to Ariel Manzur for fixing bugs in nested directives ***
 function extract_code(fn,s)
-	local code = '\n$#include "'..fn..'"\n'
-	s= "\n" .. s .. "\n" -- add blank lines as sentinels
-	local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n")
-	while e do
-		t = strlower(t)
-		if t == "begin" then
-			_,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e)
-			if not e then
-			 tolua_error("Unbalanced 'tolua_begin' directive in header file")
-			end
-		end
-		code = code .. c .. "\n"
-	 _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e)
-	end
-	return code
+    local code = '\n$#include "'..string.lower(flags.n)..'/'..fn..'"\n'
+    s= "\n" .. s .. "\n" -- add blank lines as sentinels
+
+    -- eliminate export macro problems in class declarations
+    s = gsub(s, ' _%w*Export ', ' ')
+
+    local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n")
+    while e do
+        t = strlower(t)
+        if t == "begin" then
+            _,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e)
+            if not e then
+             tolua_error("Unbalanced 'tolua_begin' directive in header file")
+            end
+        end
+        code = code .. c .. "\n"
+        _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e)
+    end
+    return code
 end
 
@@ -249,68 +246,93 @@
 -- Expects the package name, the file extension, and the file text.
 function Package (name,fn)
- local ext = "pkg"
-
- -- open input file, if any
- if fn then
-  local st, msg = readfrom(flags.f)
-  if not st then
-   error('#'..msg)
-  end
-		local _; _, _, ext = strfind(fn,".*%.(.*)$")
- end
- local code = "\n" .. read('*a')
-	if ext == 'h' or ext == 'hpp' then
-	 code = extract_code(fn,code)
-	end
-
- -- close file
- if fn then
-  readfrom()
- end
-
- -- deal with include directive
- local nsubst
- repeat
-  code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"([^\n]*)\n',
-		function (kind,fn,extra)
-			local _, _, ext = strfind(fn,".*%.(.*)$")
-			local fp,msg = openfile(fn,'r')
-			if not fp then
-				error('#'..msg..': '..fn)
-			end
-			local s = read(fp,'*a')
-			closefile(fp)
-			if kind == 'c' or kind == 'h' then
-				return extract_code(fn,s)
-			elseif kind == 'p' then
-				return "\n\n" .. s
-			elseif kind == 'l' then
-				return "\n$[--##"..fn.."\n" .. s .. "\n$]\n"
-			elseif kind == 'i' then
-				local t = {code=s}
-				extra = string.gsub(extra, "^%s*,%s*", "")
-				local pars = split_c_tokens(extra, ",")
-				include_file_hook(t, fn, unpack(pars))
-				return "\n\n" .. t.code
-			else
-				error('#Invalid include directive (use $cfile, $pfile, $lfile or $ifile)')
-			end
-		end)
- until nsubst==0
-
- -- deal with renaming directive
- repeat -- I don't know why this is necesary
-	code,nsubst = gsub(code,'\n%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end)
- until nsubst == 0
-
- local t = _Package(_Container{name=name, code=code})
- push(t)
- preprocess_hook(t)
- t:preprocess()
- preparse_hook(t)
- t:parse(t.code)
- pop()
- return t
-end
-
-
+    local ext = "pkg"
+
+    -- open input file, if any
+    if fn then
+        local file
+        if flags.f then
+            if string.sub(flags.f, 1, 1) == '/' or string.sub(flags.f, 1, 1) == '\\' or (string.len(flags.f) > 1 and string.sub(flags.f, 2, 2) == ':') then
+                file = flags.f
+            else
+                file = flags.w..'/'..flags.f
+            end
+        else
+            file = flags.f
+        end
+        local st, msg = readfrom(file)
+        if not st then
+            error('#'..msg..' path: '..flags.f)
+        end
+        local _; _, _, ext = strfind(fn,".*%.(.*)$")
+    end
+    local code = "\n" .. read('*a')
+    if ext == 'h' or ext == 'hpp' then
+        code = extract_code(fn,code)
+    end
+
+    -- close file
+    if fn then
+        readfrom()
+    end
+
+    -- prepare working directory
+    local current_path
+    if not flags.w and flags.f then
+        current_path = gsub(flags.f, '(/)[^/]*%.?[^/]*$', '%1')
+    elseif flags.w then
+        if not (string.sub(flags.w, string.len(flags.w)) == '/') then
+            current_path = flags.w..'/'
+        else
+            current_path = flags.w
+        end
+    else
+        current_path = ''
+    end
+
+    -- deal with include directive
+    local nsubst
+    repeat
+        code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"([^\n]*)\n',
+            function (kind,fn,extra)
+                local _, _, ext = strfind(fn,".*%.(.*)$")
+                local fp,msg = openfile(current_path..fn,'r')
+                if not fp then
+                    error('#'..msg..': '..fn)
+                end
+                local s = read(fp,'*a')
+                closefile(fp)
+                if kind == 'c' or kind == 'h' then
+                    return extract_code(fn,s)
+                elseif kind == 'p' then
+                    return "\n\n" .. s
+                elseif kind == 'l' then
+                    return "\n$[--##"..fn.."\n" .. s .. "\n$]\n"
+                elseif kind == 'i' then
+                    local t = {code=s}
+                    extra = string.gsub(extra, "^%s*,%s*", "")
+                    local pars = split_c_tokens(extra, ",")
+                    include_file_hook(t, fn, unpack(pars))
+                    return "\n\n" .. t.code
+                else
+                    error('#Invalid include directive (use $cfile, $pfile, $lfile or $ifile)')
+                end
+            end
+        )
+    until nsubst==0
+
+    -- deal with renaming directive
+    repeat -- I don't know why this is necesary
+        code,nsubst = gsub(code,'\n%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end)
+    until nsubst == 0
+
+    local t = _Package(_Container{name=name, code=code})
+    push(t)
+    preprocess_hook(t)
+    t:preprocess()
+    preparse_hook(t)
+    t:parse(t.code)
+    pop()
+    return t
+end
+
+
Index: code/branches/buildsystem3/src/tolua/lua/typedef.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/typedef.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/typedef.lua	(revision 2664)
@@ -21,7 +21,7 @@
 --   mod = modifiers to the 'de facto' type
 classTypedef = {
- utype = '',
- mod = '',
- type = ''
+    utype = '',
+    mod = '',
+    type = ''
 }
 classTypedef.__index = classTypedef
@@ -29,22 +29,22 @@
 -- Print method
 function classTypedef:print (ident,close)
- print(ident.."Typedef{")
- print(ident.." utype = '"..self.utype.."',")
- print(ident.." mod = '"..self.mod.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.."}"..close)
+    print(ident.."Typedef{")
+    print(ident.." utype = '"..self.utype.."',")
+    print(ident.." mod = '"..self.mod.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.."}"..close)
 end
 
 -- Return it's not a variable
 function classTypedef:isvariable ()
- return false
+    return false
 end
 
 -- Internal constructor
 function _Typedef (t)
- setmetatable(t,classTypedef)
- t.type = resolve_template_types(t.type)
- appendtypedef(t)
- return t
+    setmetatable(t,classTypedef)
+    t.type = resolve_template_types(t.type)
+    appendtypedef(t)
+    return t
 end
 
@@ -52,19 +52,19 @@
 -- Expects one string representing the type definition.
 function Typedef (s)
- if strfind(string.gsub(s, '%b<>', ''),'[%*&]') then
-  tolua_error("#invalid typedef: pointers (and references) are not supported")
- end
- local o = {mod = ''}
- if string.find(s, "[<>]") then
- 	_,_,o.type,o.utype = string.find(s, "^%s*([^<>]+%b<>[^%s]*)%s+(.-)$")
- else
- 	local t = split(gsub(s,"%s%s*"," ")," ")
- 	o = {
-	  utype = t[t.n],
-	  type = t[t.n-1],
-	  mod = concat(t,1,t.n-2),
-	 }
- end
- return _Typedef(o)
+    if strfind(string.gsub(s, '%b<>', ''),'[%*&]') then
+        tolua_error("#invalid typedef: pointers (and references) are not supported")
+    end
+    local o = {mod = ''}
+    if string.find(s, "[<>]") then
+        _,_,o.type,o.utype = string.find(s, "^%s*([^<>]+%b<>[^%s]*)%s+(.-)$")
+    else
+        local t = split(gsub(s,"%s%s*"," ")," ")
+        o = {
+            utype = t[t.n],
+            type = t[t.n-1],
+            mod = concat(t,1,t.n-2),
+        }
+    end
+    return _Typedef(o)
 end
 
Index: code/branches/buildsystem3/src/tolua/lua/variable.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/variable.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/variable.lua	(revision 2664)
@@ -15,6 +15,6 @@
 -- Stores all fields present in a declaration.
 classVariable = {
- _get = {},   -- mapped get functions
- _set = {},   -- mapped set functions
+    _get = {},   -- mapped get functions
+    _set = {},   -- mapped set functions
 }
 classVariable.__index = classVariable
@@ -23,43 +23,43 @@
 -- Print method
 function classVariable:print (ident,close)
- print(ident.."Variable{")
- print(ident.." mod  = '"..self.mod.."',")
- print(ident.." type = '"..self.type.."',")
- print(ident.." ptr  = '"..self.ptr.."',")
- print(ident.." name = '"..self.name.."',")
- if self.dim then print(ident.." dim = '"..self.dim.."',") end
- print(ident.." def  = '"..self.def.."',")
- print(ident.." ret  = '"..self.ret.."',")
- print(ident.."}"..close)
+    print(ident.."Variable{")
+    print(ident.." mod  = '"..self.mod.."',")
+    print(ident.." type = '"..self.type.."',")
+    print(ident.." ptr  = '"..self.ptr.."',")
+    print(ident.." name = '"..self.name.."',")
+    if self.dim then print(ident.." dim = '"..self.dim.."',") end
+    print(ident.." def  = '"..self.def.."',")
+    print(ident.." ret  = '"..self.ret.."',")
+    print(ident.."}"..close)
 end
 
 -- Generates C function name
 function classVariable:cfuncname (prefix)
- local parent = ""
- local unsigned = ""
- local ptr = ""
-
- local p = self:inmodule() or self:innamespace() or self:inclass()
-
- if p then
- 	if self.parent.classtype == 'class' then
-		parent = "_" .. self.parent.type
-	else
-	  parent = "_" .. p
-	end
- end
-
- if strfind(self.mod,"(unsigned)") then
-  unsigned = "_unsigned"
- end
-
- if self.ptr == "*" then ptr = "_ptr"
- elseif self.ptr == "&" then ptr = "_ref"
- end
-
- local name =  prefix .. parent .. unsigned .. "_" .. gsub(self.lname or self.name,".*::","") .. ptr
-
-	name = clean_template(name)
- return name
+    local parent = ""
+    local unsigned = ""
+    local ptr = ""
+
+    local p = self:inmodule() or self:innamespace() or self:inclass()
+
+    if p then
+        if self.parent.classtype == 'class' then
+            parent = "_" .. self.parent.type
+        else
+            parent = "_" .. p
+        end
+    end
+
+    if strfind(self.mod,"(unsigned)") then
+        unsigned = "_unsigned"
+    end
+
+    if self.ptr == "*" then ptr = "_ptr"
+    elseif self.ptr == "&" then ptr = "_ref"
+    end
+
+    local name =  prefix .. parent .. unsigned .. "_" .. gsub(self.lname or self.name,".*::","") .. ptr
+
+    name = clean_template(name)
+    return name
 
 end
@@ -67,5 +67,5 @@
 -- check if it is a variable
 function classVariable:isvariable ()
- return true
+    return true
 end
 
@@ -73,30 +73,30 @@
 function classVariable:getvalue (class,static, prop_get)
 
-	local name
-	if prop_get then
-
-		name = prop_get.."()"
-	else
-		name = self.name
-	end
-
-	if class and static then
-	 return self.parent.type..'::'..name
-	elseif class then
-	 return 'self->'..name
-	else
-	 return name
-	end
+    local name
+    if prop_get then
+
+        name = prop_get.."()"
+    else
+        name = self.name
+    end
+
+    if class and static then
+        return self.parent.type..'::'..name
+    elseif class then
+        return 'self->'..name
+    else
+        return name
+    end
 end
 
 -- get variable pointer value
 function classVariable:getpointervalue (class,static)
- if class and static then
-  return class..'::p'
- elseif class then
-  return 'self->p'
- else
-  return 'p'
- end
+    if class and static then
+        return class..'::p'
+    elseif class then
+        return 'self->p'
+    else
+        return 'p'
+    end
 end
 
@@ -106,155 +106,155 @@
  local class = self:inclass()
 
-	local prop_get,prop_set
-	if string.find(self.mod, 'tolua_property') then
-
-		_,_,type = string.find(self.mod, "tolua_property__([^%s]*)")
-		type = type or "default"
-		prop_get,prop_set = get_property_methods(type, self.name)
-		self.mod = string.gsub(self.mod, "tolua_property[^%s]*", "")
-	end
-
- -- get function ------------------------------------------------
- if class then
-  output("/* get function:",self.name," of class ",class," */")
- else
-  output("/* get function:",self.name," */")
- end
- self.cgetname = self:cfuncname("tolua_get")
- output("#ifndef TOLUA_DISABLE_"..self.cgetname)
- output("\nstatic int",self.cgetname,"(lua_State* tolua_S)")
- output("{")
-
- -- declare self, if the case
- local _,_,static = strfind(self.mod,'^%s*(static)')
- if class and static==nil then
-  output(' ',self.parent.type,'*','self = ')
-  output('(',self.parent.type,'*) ')
-  output('tolua_tousertype(tolua_S,1,0);')
- elseif static then
-  _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
- end
-
-
- -- check self value
- if class and static==nil then
-	 output('#ifndef TOLUA_RELEASE\n')
-  output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);');
-		output('#endif\n')
- end
-
- -- return value
- if string.find(self.mod, 'tolua_inherits') then
- 	output('#ifdef __cplusplus\n')
-	output('  tolua_pushusertype(tolua_S,(void*)static_cast<'..self.type..'*>(self), "',self.type,'");')
-	output('#else\n')
-	output('  tolua_pushusertype(tolua_S,(void*)(('..self.type..'*)self), "',self.type,'");')
-	output('#endif\n')
- else
-	local t,ct = isbasic(self.type)
-	if t then
-		output('  tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static,prop_get)..');')
-	else
-		t = self.type
-		if self.ptr == '&' or self.ptr == '' then
-			output('  tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static,prop_get)..',"',t,'");')
-		else
-			output('  tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static,prop_get)..',"',t,'");')
-		end
-	end
- end
- output(' return 1;')
- output('}')
- output('#endif //#ifndef TOLUA_DISABLE\n')
- output('\n')
-
- -- set function ------------------------------------------------
- if not (strfind(self.type,'const%s+') or string.find(self.mod, 'tolua_readonly') or string.find(self.mod, 'tolua_inherits'))  then
-  if class then
-   output("/* set function:",self.name," of class ",class," */")
-  else
-   output("/* set function:",self.name," */")
-  end
-  self.csetname = self:cfuncname("tolua_set")
-  output("#ifndef TOLUA_DISABLE_"..self.csetname)
-  output("\nstatic int",self.csetname,"(lua_State* tolua_S)")
-  output("{")
-
-  -- declare self, if the case
-  if class and static==nil then
-   output(' ',self.parent.type,'*','self = ')
-   output('(',self.parent.type,'*) ')
-   output('tolua_tousertype(tolua_S,1,0);')
-   -- check self value
-		end
-  -- check types
-		output('#ifndef TOLUA_RELEASE\n')
-		output('  tolua_Error tolua_err;')
-  if class and static==nil then
-   output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);');
-  elseif static then
-   _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
-  end
-
-  -- check variable type
-  output('  if (!'..self:outchecktype(2)..')')
-  output('   tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);')
-		output('#endif\n')
-
-  -- assign value
-		local def = 0
-		if self.def ~= '' then def = self.def end
-		if self.type == 'char*' and self.dim ~= '' then -- is string
-		 output(' strncpy(')
-			if class and static then
-				output(self.parent.type..'::'..self.name)
-			elseif class then
-				output('self->'..self.name)
-			else
-				output(self.name)
-			end
-			output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);')
-		else
-			local ptr = ''
-			if self.ptr~='' then ptr = '*' end
-			output(' ')
-			local name = prop_set or self.name
-			if class and static then
-				output(self.parent.type..'::'..name)
-			elseif class then
-				output('self->'..name)
-			else
-				output(name)
-			end
-			local t = isbasic(self.type)
-			if prop_set then
-				output('(')
-			else
-				output(' = ')
-			end
-			if not t and ptr=='' then output('*') end
-			output('((',self.mod,self.type)
-			if not t then
-				output('*')
-			end
-			output(') ')
-			if t then
-				if isenum(self.type) then
-					output('(int) ')
-				end
-				output('tolua_to'..t,'(tolua_S,2,',def,'))')
-			else
-				output('tolua_tousertype(tolua_S,2,',def,'))')
-			end
-			if prop_set then
-				output(")")
-			end
-			output(";")
-		end
-  output(' return 0;')
-  output('}')
-  output('#endif //#ifndef TOLUA_DISABLE\n')
-  output('\n')
- end
+    local prop_get,prop_set
+    if string.find(self.mod, 'tolua_property') then
+
+        _,_,type = string.find(self.mod, "tolua_property__([^%s]*)")
+        type = type or "default"
+        prop_get,prop_set = get_property_methods(type, self.name)
+        self.mod = string.gsub(self.mod, "tolua_property[^%s]*", "")
+    end
+
+    -- get function ------------------------------------------------
+    if class then
+        output("/* get function:",self.name," of class ",class," */")
+    else
+        output("/* get function:",self.name," */")
+    end
+    self.cgetname = self:cfuncname("tolua_get")
+    output("#ifndef TOLUA_DISABLE_"..self.cgetname)
+    output("\nstatic int",self.cgetname,"(lua_State* tolua_S)")
+    output("{")
+
+    -- declare self, if the case
+    local _,_,static = strfind(self.mod,'^%s*(static)')
+    if class and static==nil then
+        output(' ',self.parent.type,'*','self = ')
+        output('(',self.parent.type,'*) ')
+        output('tolua_tousertype(tolua_S,1,0);')
+    elseif static then
+        _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
+    end
+
+
+    -- check self value
+    if class and static==nil then
+        output('#ifndef TOLUA_RELEASE\n')
+        output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);');
+        output('#endif\n')
+    end
+
+    -- return value
+    if string.find(self.mod, 'tolua_inherits') then
+        output('#ifdef __cplusplus\n')
+        output('  tolua_pushusertype(tolua_S,(void*)static_cast<'..self.type..'*>(self), "',self.type,'");')
+        output('#else\n')
+        output('  tolua_pushusertype(tolua_S,(void*)(('..self.type..'*)self), "',self.type,'");')
+        output('#endif\n')
+    else
+        local t,ct = isbasic(self.type)
+        if t then
+            output('  tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static,prop_get)..');')
+        else
+            t = self.type
+            if self.ptr == '&' or self.ptr == '' then
+                output('  tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static,prop_get)..',"',t,'");')
+            else
+                output('  tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static,prop_get)..',"',t,'");')
+            end
+        end
+    end
+    output(' return 1;')
+    output('}')
+    output('#endif //#ifndef TOLUA_DISABLE\n')
+    output('\n')
+
+    -- set function ------------------------------------------------
+    if not (strfind(self.type,'const%s+') or string.find(self.mod, 'tolua_readonly') or string.find(self.mod, 'tolua_inherits'))  then
+    if class then
+        output("/* set function:",self.name," of class ",class," */")
+    else
+        output("/* set function:",self.name," */")
+    end
+    self.csetname = self:cfuncname("tolua_set")
+    output("#ifndef TOLUA_DISABLE_"..self.csetname)
+    output("\nstatic int",self.csetname,"(lua_State* tolua_S)")
+    output("{")
+
+    -- declare self, if the case
+    if class and static==nil then
+        output(' ',self.parent.type,'*','self = ')
+        output('(',self.parent.type,'*) ')
+        output('tolua_tousertype(tolua_S,1,0);')
+        -- check self value
+    end
+    -- check types
+    output('#ifndef TOLUA_RELEASE\n')
+    output('  tolua_Error tolua_err;')
+    if class and static==nil then
+        output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);');
+    elseif static then
+        _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
+    end
+
+    -- check variable type
+    output('  if (!'..self:outchecktype(2)..')')
+    output('   tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);')
+    output('#endif\n')
+
+    -- assign value
+    local def = 0
+    if self.def ~= '' then def = self.def end
+    if self.type == 'char*' and self.dim ~= '' then -- is string
+        output(' strncpy(')
+        if class and static then
+            output(self.parent.type..'::'..self.name)
+            elseif class then
+                output('self->'..self.name)
+            else
+                output(self.name)
+            end
+            output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);')
+        else
+            local ptr = ''
+            if self.ptr~='' then ptr = '*' end
+            output(' ')
+            local name = prop_set or self.name
+            if class and static then
+                output(self.parent.type..'::'..name)
+            elseif class then
+                output('self->'..name)
+            else
+                output(name)
+            end
+            local t = isbasic(self.type)
+            if prop_set then
+                output('(')
+            else
+                output(' = ')
+            end
+            if not t and ptr=='' then output('*') end
+            output('((',self.mod,self.type)
+            if not t then
+                output('*')
+            end
+            output(') ')
+            if t then
+                if isenum(self.type) then
+                    output('(int) ')
+                end
+                output('tolua_to'..t,'(tolua_S,2,',def,'))')
+            else
+                output('tolua_tousertype(tolua_S,2,',def,'))')
+            end
+            if prop_set then
+                output(")")
+            end
+            output(";")
+        end
+        output(' return 0;')
+        output('}')
+        output('#endif //#ifndef TOLUA_DISABLE\n')
+        output('\n')
+    end
 
 end
@@ -262,27 +262,27 @@
 function classVariable:register (pre)
 
-	if not self:check_public_access() then
-		return
-	end
- pre = pre or ''
- local parent = self:inmodule() or self:innamespace() or self:inclass()
- if not parent then
-  if classVariable._warning==nil then
-   warning("Mapping variable to global may degrade performance")
-   classVariable._warning = 1
-  end
- end
- if self.csetname then
-  output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');')
- else
-  output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);')
- end
+    if not self:check_public_access() then
+        return
+    end
+    pre = pre or ''
+    local parent = self:inmodule() or self:innamespace() or self:inclass()
+    if not parent then
+        if classVariable._warning==nil then
+            warning("Mapping variable to global may degrade performance")
+            classVariable._warning = 1
+        end
+    end
+    if self.csetname then
+        output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');')
+    else
+        output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);')
+    end
 end
 
 -- Internal constructor
 function _Variable (t)
- setmetatable(t,classVariable)
- append(t)
- return t
+    setmetatable(t,classVariable)
+    append(t)
+    return t
 end
 
@@ -290,6 +290,6 @@
 -- Expects a string representing the variable declaration.
 function Variable (s)
- return _Variable (Declaration(s,'var'))
-end
-
-
+    return _Variable (Declaration(s,'var'))
+end
+
+
Index: code/branches/buildsystem3/src/tolua/lua/verbatim.lua
===================================================================
--- code/branches/buildsystem3/src/tolua/lua/verbatim.lua	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/lua/verbatim.lua	(revision 2664)
@@ -17,6 +17,6 @@
 --   line = line text
 classVerbatim = {
- line = '',
-	cond = nil,    -- condition: where to generate the code (s=suport, r=register)
+    line = '',
+    cond = nil,    -- condition: where to generate the code (s=suport, r=register)
 }
 classVerbatim.__index = classVerbatim
@@ -25,22 +25,22 @@
 -- preamble verbatim
 function classVerbatim:preamble ()
- if self.cond == '' then
-  write(self.line)
- end
+    if self.cond == '' then
+        write(self.line)
+    end
 end
 
 -- support code
 function classVerbatim:supcode ()
- if strfind(self.cond,'s') then
-  write(self.line)
-  write('\n')
- end
+    if strfind(self.cond,'s') then
+        write(self.line)
+        write('\n')
+    end
 end
 
 -- register code
 function classVerbatim:register (pre)
- if strfind(self.cond,'r') then
-  write(self.line)
- end
+    if strfind(self.cond,'r') then
+        write(self.line)
+    end
 end
 
@@ -48,15 +48,15 @@
 -- Print method
 function classVerbatim:print (ident,close)
- print(ident.."Verbatim{")
- print(ident.." line = '"..self.line.."',")
- print(ident.."}"..close)
-end
+    print(ident.."Verbatim{")
+    print(ident.." line = '"..self.line.."',")
+    print(ident.."}"..close)
+    end
 
 
 -- Internal constructor
 function _Verbatim (t)
- setmetatable(t,classVerbatim)
- append(t)
- return t
+    setmetatable(t,classVerbatim)
+    append(t)
+    return t
 end
 
@@ -64,14 +64,14 @@
 -- Expects a string representing the text line
 function Verbatim (l,cond)
- if strsub(l,1,1) == "'" then
-  l = strsub(l,2)
- elseif strsub(l,1,1) == '$' then
-  cond = 'sr'       -- generates in both suport and register fragments
-  l = strsub(l,2)
- end
- return _Verbatim {
-  line = l,
-  cond = cond or '',
- }
+    if strsub(l,1,1) == "'" then
+        l = strsub(l,2)
+    elseif strsub(l,1,1) == '$' then
+        cond = 'sr'       -- generates in both suport and register fragments
+        l = strsub(l,2)
+    end
+    return _Verbatim {
+        line = l,
+        cond = cond or '',
+    }
 end
 
Index: code/branches/buildsystem3/src/tolua/tolua++.h
===================================================================
--- code/branches/buildsystem3/src/tolua/tolua++.h	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/tolua++.h	(revision 2664)
@@ -65,6 +65,6 @@
 typedef int lua_Object;
 
-#include "lua/lua.h"
-#include "lua/lauxlib.h"
+#include "lua.h"
+#include "lauxlib.h"
 
 struct tolua_Error
Index: code/branches/buildsystem3/src/tolua/tolua-5.1.pkg
===================================================================
--- code/branches/buildsystem3/src/tolua/tolua-5.1.pkg	(revision 2663)
+++ 	(revision )
@@ -1,30 +1,0 @@
-$lfile "../../src/tolua/lua/compat-5.1.lua"
-$lfile "../../src/tolua/lua/compat.lua"
-$lfile "../../src/tolua/lua/basic.lua"
-$lfile "../../src/tolua/lua/feature.lua"
-$lfile "../../src/tolua/lua/verbatim.lua"
-$lfile "../../src/tolua/lua/code.lua"
-$lfile "../../src/tolua/lua/typedef.lua"
-$lfile "../../src/tolua/lua/container.lua"
-$lfile "../../src/tolua/lua/package.lua"
-$lfile "../../src/tolua/lua/module.lua"
-$lfile "../../src/tolua/lua/namespace.lua"
-$lfile "../../src/tolua/lua/define.lua"
-$lfile "../../src/tolua/lua/enumerate.lua"
-$lfile "../../src/tolua/lua/declaration.lua"
-$lfile "../../src/tolua/lua/variable.lua"
-$lfile "../../src/tolua/lua/array.lua"
-$lfile "../../src/tolua/lua/function.lua"
-$lfile "../../src/tolua/lua/operator.lua"
-$lfile "../../src/tolua/lua/class.lua"
-$lfile "../../src/tolua/lua/clean.lua"
-$lfile "../../src/tolua/lua/doit.lua"
-
-$[
-local err,msg = pcall(doit)
-if not err then
- local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)")
- tolua_error(msg,label)
- print(debug.traceback())
-end
-$]
Index: code/branches/buildsystem3/src/tolua/tolua.c
===================================================================
--- code/branches/buildsystem3/src/tolua/tolua.c	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/tolua.c	(revision 2664)
@@ -5,4 +5,6 @@
 ** Aug 2003
 ** $Id:$
+** Extension by Orxonox (Reto Grieder) to support working directory
+** and direct usage of lua files. (2008)
 */
 
@@ -15,7 +17,7 @@
 #include "tolua++.h"
 
-#include "lua/lua.h"
-#include "lua/lualib.h"
-#include "lua/lauxlib.h"
+#include "lua.h"
+#include "lualib.h"
+#include "lauxlib.h"
 
 #include <stdio.h>
@@ -34,4 +36,6 @@
          "  -H  file : create include file.\n"
          "  -n  name : set package name; default is input file root name.\n"
+         "  -w  directory : set working directory; default is location of package file.\n"
+         "  -s  file : specify source lua code for the parser; all.lua is default.\n"
          "  -p       : parse only.\n"
          "  -P       : parse and print structure information (for debug).\n"
@@ -65,10 +69,10 @@
 
 static void add_extra (lua_State* L, char* value) {
-	int len;
-	lua_getglobal(L, "_extra_parameters");
-	len = luaL_getn(L, -1);
-	lua_pushstring(L, value);
-	lua_rawseti(L, -2, len+1);
-	lua_pop(L, 1);
+ int len;
+ lua_getglobal(L, "_extra_parameters");
+ len = luaL_getn(L, -1);
+ lua_pushstring(L, value);
+ lua_rawseti(L, -2, len+1);
+ lua_pop(L, 1);
 };
 
@@ -82,4 +86,7 @@
 int main (int argc, char* argv[])
 {
+ char* working_directory = "";
+ char* lua_source = "";
+
  #ifdef LUA_VERSION_NUM /* lua 5.1 */
  lua_State* L = luaL_newstate();
@@ -97,4 +104,5 @@
  lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION");
  lua_pushstring(L,LUA_VERSION); lua_setglobal(L,"TOLUA_LUA_VERSION");
+
 
  if (argc==1)
@@ -125,4 +133,12 @@
      case 'n': setfield(L,t,"n",argv[++i]); break;
      case 'H': setfield(L,t,"H",argv[++i]); break;
+     case 'w':
+      working_directory = argv[++i];
+      setfield(L,t,"w",argv[i]);
+      break;
+     case 's':
+      lua_source = argv[++i];
+      setfield(L,t,"s",argv[i]);
+      break;
      case 'S': setfield(L,t,"S",""); break;
      case '1': setfield(L,t,"1",""); break;
@@ -144,24 +160,52 @@
   lua_pop(L,1);
  }
-/* #define TOLUA_SCRIPT_RUN */
-#ifndef TOLUA_SCRIPT_RUN
+
  {
-  int tolua_tolua_open (lua_State* L);
-  tolua_tolua_open(L);
+  char path[BUFSIZ];
+  char file[BUFSIZ];
+  path[0] = '\0';
+  file[0] = '\0';
+
+  if (strlen(lua_source) > 0 &&
+      lua_source[0] != '/' &&
+      lua_source[0] != '\\' &&
+      strlen(lua_source) > 1 &&
+      lua_source[1] != ':')
+  {
+   /* Relative path, prefix working directory */
+   strcpy(path, working_directory);
+   /* Make sure there is '\\' or '/' at the end of the path */
+   if (strlen(path) > 0)
+   {
+    char last = path[strlen(path) - 1];
+    if (last != '\\' && last != '/')
+     strcat(path, "/");
+   }
+  }
+
+  strcat(path, lua_source);
+
+  /* Extract the full path */
+  {
+   char* p;
+   p = strrchr(path, '/');
+   if (p == NULL)
+    p = strrchr(path, '\\');
+   p = (p == NULL) ? path : p + 1;
+   strcpy(file, p);
+   *p = '\0';
+  }
+  if (strlen(file) == 0)
+   strcpy(file, "all.lua");
+
+  lua_pushstring(L, path);
+  lua_setglobal(L, "path");
+  strcat(path, file);
+#ifdef LUA_VERSION_NUM /* lua 5.1 */
+  luaL_dofile(L, path);
+#else
+  lua_dofile(L, path);
+#endif
  }
-#else
- {
-  char* p;
-  char  path[BUFSIZ];
-  strcpy(path,argv[0]);
-  p = strrchr(path,'/');
-  if (p==NULL) p = strrchr(path,'\\');
-  p = (p==NULL) ? path : p+1;
-  sprintf(p,"%s","../src/bin/lua/");
-  lua_pushstring(L,path); lua_setglobal(L,"path");
-		strcat(path,"all.lua");
-  lua_dofile(L,path);
- }
-#endif
  return 0;
 }
Index: code/branches/buildsystem3/src/tolua/tolua_is.c
===================================================================
--- code/branches/buildsystem3/src/tolua/tolua_is.c	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/tolua_is.c	(revision 2664)
@@ -14,5 +14,5 @@
 
 #include "tolua++.h"
-#include "lua/lauxlib.h"
+#include "lauxlib.h"
 
 #include <stdlib.h>
Index: code/branches/buildsystem3/src/tolua/tolua_map.c
===================================================================
--- code/branches/buildsystem3/src/tolua/tolua_map.c	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/tolua_map.c	(revision 2664)
@@ -15,5 +15,5 @@
 #include "tolua++.h"
 #include "tolua_event.h"
-#include "lua/lauxlib.h"
+#include "lauxlib.h"
 
 #include <string.h>
Index: code/branches/buildsystem3/src/tolua/tolua_push.c
===================================================================
--- code/branches/buildsystem3/src/tolua/tolua_push.c	(revision 2663)
+++ code/branches/buildsystem3/src/tolua/tolua_push.c	(revision 2664)
@@ -14,5 +14,5 @@
 
 #include "tolua++.h"
-#include "lua/lauxlib.h"
+#include "lauxlib.h"
 
 #include <stdlib.h>
Index: code/branches/buildsystem3/src/tolua/toluabind.c
===================================================================
--- code/branches/buildsystem3/src/tolua/toluabind.c	(revision 2663)
+++ 	(revision )
@@ -1,7628 +1,0 @@
-/*
-** Lua binding: tolua
-** Generated automatically by tolua++-1.0.91 on Wed Apr 26 22:30:14 2006.
-*/
-
-#ifndef __cplusplus
-#include "stdlib.h"
-#endif
-#include "string.h"
-
-#include "tolua++.h"
-
-/* Exported function */
-int  tolua_tolua_open (lua_State* tolua_S);
-
-
-/* function to register type */
-static void tolua_reg_types (lua_State* tolua_S)
-{
-}
-
-/* Open function */
-int tolua_tolua_open (lua_State* tolua_S)
-{
- tolua_open(tolua_S);
- tolua_reg_types(tolua_S);
- tolua_module(tolua_S,NULL,0);
- tolua_beginmodule(tolua_S,NULL);
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-   105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,
-     95, 86, 69, 82, 83, 73, 79, 78, 44, 32, 34, 53, 37, 46, 48,
-     34, 41, 32,116,104,101,110, 13, 10,  9,114,101,116,117,114,
-    110, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 34,108,
-    111, 97,100,102,105,108,101, 34, 13, 10,108,111, 99, 97,108,
-     32,102,117,110, 99,116,105,111,110, 32,112,112, 95,100,111,
-    102,105,108,101, 40,112, 97,116,104, 41, 13, 10, 13, 10,  9,
-    108,111, 99, 97,108, 32,108,111, 97,100,101,100, 32, 61, 32,
-    102, 97,108,115,101, 13, 10,  9,108,111, 99, 97,108, 32,103,
-    101,116,102,105,108,101, 32, 61, 32,102,117,110, 99,116,105,
-    111,110, 40, 41, 13, 10, 13, 10,  9,  9,105,102, 32,108,111,
-     97,100,101,100, 32,116,104,101,110, 13, 10,  9,  9,  9,114,
-    101,116,117,114,110, 13, 10,  9,  9,101,108,115,101, 13, 10,
-      9,  9,  9,108,111, 99, 97,108, 32,102,105,108,101, 44,101,
-    114,114, 32, 61, 32,105,111, 46,111,112,101,110, 40,112, 97,
-    116,104, 41, 13, 10,  9,  9,  9,105,102, 32,110,111,116, 32,
-    102,105,108,101, 32,116,104,101,110, 13, 10,  9,  9,  9,  9,
-    101,114,114,111,114, 40, 34,101,114,114,111,114, 32,108,111,
-     97,100,105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112,
-     97,116,104, 46, 46, 34, 58, 32, 34, 46, 46,101,114,114, 41,
-     13, 10,  9,  9,  9,101,110,100, 13, 10,  9,  9,  9,108,111,
-     99, 97,108, 32,114,101,116, 32, 61, 32,102,105,108,101, 58,
-    114,101, 97,100, 40, 34, 42, 97, 34, 41, 13, 10,  9,  9,  9,
-    102,105,108,101, 58, 99,108,111,115,101, 40, 41, 13, 10, 13,
-     10,  9,  9,  9,114,101,116, 32, 61, 32,115,116,114,105,110,
-    103, 46,103,115,117, 98, 40,114,101,116, 44, 32, 34, 37, 46,
-     37, 46, 37, 46, 37,115, 42, 37, 41, 34, 44, 32, 34, 46, 46,
-     46, 41, 32,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32,
-    123,110, 61,115,101,108,101, 99,116, 40, 39, 35, 39, 44, 32,
-     46, 46, 46, 41, 44, 32, 46, 46, 46,125, 59, 34, 41, 13, 10,
-     13, 10,  9,  9,  9,108,111, 97,100,101,100, 32, 61, 32,116,
-    114,117,101, 13, 10,  9,  9,  9,114,101,116,117,114,110, 32,
-    114,101,116, 13, 10,  9,  9,101,110,100, 13, 10,  9,101,110,
-    100, 13, 10, 13, 10,  9,108,111, 99, 97,108, 32,102, 32, 61,
-     32,108,111, 97,100, 40,103,101,116,102,105,108,101, 44, 32,
-    112, 97,116,104, 41, 13, 10,  9,114,101,116,117,114,110, 32,
-    102, 40, 41, 13, 10,101,110,100, 13, 10, 13, 10,111,108,100,
-     95,100,111,102,105,108,101, 32, 61, 32,100,111,102,105,108,
-    101, 13, 10,100,111,102,105,108,101, 32, 61, 32,112,112, 95,
-    100,111,102,105,108,101, 13, 10, 13, 10, 13, 10, 45, 45, 32,
-    115,116,114,105,110,103, 46,103,115,117, 98, 13, 10, 45, 45,
-     91, 91, 13, 10,108,111, 99, 97,108, 32,111,103,115,117, 98,
-     32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 13,
-     10,108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110,
-     32, 99,111,109,112,103,115,117, 98, 40, 97, 44, 98, 44, 99,
-     44,100, 41, 13, 10, 32, 32,105,102, 32,116,121,112,101, 40,
-     99, 41, 32, 61, 61, 32, 34,102,117,110, 99,116,105,111,110,
-     34, 32,116,104,101,110, 13, 10, 32, 32, 32, 32,108,111, 99,
-     97,108, 32,111, 99, 32, 61, 32, 99, 13, 10, 32, 32, 32, 32,
-     99, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 46,
-     46, 46, 41, 32,114,101,116,117,114,110, 32,111, 99, 40, 46,
-     46, 46, 41, 32,111,114, 32, 39, 39, 32,101,110,100, 13, 10,
-     32, 32,101,110,100, 13, 10, 32, 32,114,101,116,117,114,110,
-     32,111,103,115,117, 98, 40, 97, 44, 98, 44, 99, 44,100, 41,
-     13, 10,101,110,100, 13, 10,115,116,114,105,110,103, 46,114,
-    101,112,108, 32, 61, 32,111,103,115,117, 98, 13, 10, 45, 45,
-     93, 93, 13, 10, 13, 10, 45, 45,115,116,114,105,110,103, 46,
-    103,115,117, 98, 32, 61, 32, 99,111,109,112,103,115,117, 98,
-     13,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/compat-5.1.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 82,101, 97,108,
-     32,103,108,111, 98, 97,108,115, 10, 45, 45, 32, 95, 65, 76,
-     69, 82, 84, 10, 45, 45, 32, 95, 69, 82, 82, 79, 82, 77, 69,
-     83, 83, 65, 71, 69, 10, 45, 45, 32, 95, 86, 69, 82, 83, 73,
-     79, 78, 10, 45, 45, 32, 95, 71, 10, 45, 45, 32, 97,115,115,
-    101,114,116, 10, 45, 45, 32,101,114,114,111,114, 10, 45, 45,
-     32,109,101,116, 97,116, 97, 98,108,101, 10, 45, 45, 32,110,
-    101,120,116, 10, 45, 45, 32,112,114,105,110,116, 10, 45, 45,
-     32,114,101,113,117,105,114,101, 10, 45, 45, 32,116,111,110,
-    117,109, 98,101,114, 10, 45, 45, 32,116,111,115,116,114,105,
-    110,103, 10, 45, 45, 32,116,121,112,101, 10, 45, 45, 32,117,
-    110,112, 97, 99,107, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10,
-     45, 45, 32, 99,111,108,108,101, 99,116,103, 97,114, 98, 97,
-    103,101, 10, 45, 45, 32,103, 99,105,110,102,111, 10, 10, 45,
-     45, 32,103,108,111, 98, 97,108,115, 10, 10, 45, 45, 32, 99,
-     97,108,108, 32, 32, 32, 45, 62, 32,112,114,111,116,101, 99,
-    116, 40,102, 44, 32,101,114,114, 41, 10, 45, 45, 32,108,111,
-     97,100,102,105,108,101, 10, 45, 45, 32,108,111, 97,100,115,
-    116,114,105,110,103, 10, 10, 45, 45, 32,114, 97,119,103,101,
-    116, 10, 45, 45, 32,114, 97,119,115,101,116, 10, 10, 45, 45,
-     32,103,101,116, 97,114,103,115, 32, 61, 32, 77, 97,105,110,
-     46,103,101,116, 97,114,103,115, 32, 63, 63, 10, 10,114, 97,
-    119,116,121,112,101, 32, 61, 32,116,121,112,101, 10, 10,102,
-    117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40,102, 44,
-     32,101,114,114, 41, 10, 32, 32,105,102, 32,110,111,116, 32,
-    102, 32,116,104,101,110, 32,112,114,105,110,116, 40,101,114,
-    114, 41, 59, 32,114,101,116,117,114,110, 32,101,110,100, 10,
-     32, 32,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112,
-     99, 97,108,108, 40,102, 41, 10, 32, 32,105,102, 32,110,111,
-    116, 32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40,
-     98, 41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10,
-     32, 32,101,108,115,101, 32,114,101,116,117,114,110, 32, 98,
-     32,111,114, 32,116,114,117,101, 10, 32, 32,101,110,100, 10,
-    101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100,
-    111,115,116,114,105,110,103, 40,115, 41, 32,114,101,116,117,
-    114,110, 32,100,111, 95, 40,108,111, 97,100,115,116,114,105,
-    110,103, 40,115, 41, 41, 32,101,110,100, 10, 45, 45, 32,102,
-    117,110, 99,116,105,111,110, 32,100,111,102,105,108,101, 40,
-    115, 41, 32,114,101,116,117,114,110, 32,100,111, 95, 40,108,
-    111, 97,100,102,105,108,101, 40,115, 41, 41, 32,101,110,100,
-     10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 84, 97,
-     98,108,101, 32,108,105, 98,114, 97,114,121, 10,108,111, 99,
-     97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10,
-    102,111,114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102,
-    111,114,101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105,
-     32, 61, 32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105,
-     10,103,101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116,
-    110, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98,
-     46,105,110,115,101,114,116, 10,116,114,101,109,111,118,101,
-     32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 10,115,
-    111,114,116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10,
-     10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 68,101, 98,
-    117,103, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97,
-    108, 32,100, 98,103, 32, 61, 32,100,101, 98,117,103, 10,103,
-    101,116,105,110,102,111, 32, 61, 32,100, 98,103, 46,103,101,
-    116,105,110,102,111, 10,103,101,116,108,111, 99, 97,108, 32,
-     61, 32,100, 98,103, 46,103,101,116,108,111, 99, 97,108, 10,
-    115,101,116, 99, 97,108,108,104,111,111,107, 32, 61, 32,102,
-    117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111,
-    114, 34, 96,115,101,116, 99, 97,108,108,104,111,111,107, 39,
-     32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34,
-     32,101,110,100, 10,115,101,116,108,105,110,101,104,111,111,
-    107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41,
-     32,101,114,114,111,114, 34, 96,115,101,116,108,105,110,101,
-    104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99,
-     97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,111,
-     99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108,111,
-     99, 97,108, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45,
-     32,109, 97,116,104, 32,108,105, 98,114, 97,114,121, 10,108,
-    111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116,
-    104, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98,
-    115, 10, 97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,
-    111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109,
-     97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99,
-    111,115, 40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110,
-     32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41,
-     32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101,
-    103, 40,109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41,
-     32,101,110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110,
-     99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,
-    110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104,
-     46, 97,116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97,
-    116, 97,110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110,
-     32, 40,120, 44,121, 41, 32,114,101,116,117,114,110, 32,109,
-     97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116,
-     97,110, 50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99,
-    101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108,
-     10, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110,
-     32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,
-    104, 46, 99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40,
-    120, 41, 41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109,
-     97,116,104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109,
-     97,116,104, 46,101,120,112, 10,102,108,111,111,114, 32, 61,
-     32,109, 97,116,104, 46,102,108,111,111,114, 10,102,114,101,
-    120,112, 32, 61, 32,109, 97,116,104, 46,102,114,101,120,112,
-     10,108,100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108,
-    100,101,120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104,
-     46,108,111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97,
-    116,104, 46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32,
-    109, 97,116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32,
-    109, 97,116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32,
-    109, 97,116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109,
-     97,116,104, 46,112,105, 10, 45, 45, 63, 63, 63, 32,112,111,
-    119, 32, 61, 32,109, 97,116,104, 46,112,111,119, 32, 32, 10,
-    114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 10,
-    114, 97,110,100,111,109, 32, 61, 32,109, 97,116,104, 46,114,
-     97,110,100,111,109, 10,114, 97,110,100,111,109,115,101,101,
-    100, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109,
-    115,101,101,100, 10,115,105,110, 32, 61, 32,102,117,110, 99,
-    116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110,
-     32,109, 97,116,104, 46,115,105,110, 40,109, 97,116,104, 46,
-    114, 97,100, 40,120, 41, 41, 32,101,110,100, 10,115,113,114,
-    116, 32, 61, 32,109, 97,116,104, 46,115,113,114,116, 10,116,
-     97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,
-    120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,
-    116, 97,110, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41,
-     41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10,
-     45, 45, 32,115,116,114,105,110,103, 32,108,105, 98,114, 97,
-    114,121, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32,
-    115,116,114,105,110,103, 10,115,116,114, 98,121,116,101, 32,
-     61, 32,115,116,114, 46, 98,121,116,101, 10,115,116,114, 99,
-    104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 10,
-    115,116,114,102,105,110,100, 32, 61, 32,115,116,114, 46,102,
-    105,110,100, 10,102,111,114,109, 97,116, 32, 61, 32,115,116,
-    114, 46,102,111,114,109, 97,116, 10,103,115,117, 98, 32, 61,
-     32,115,116,114, 46,103,115,117, 98, 10,115,116,114,108,101,
-    110, 32, 61, 32,115,116,114, 46,108,101,110, 10,115,116,114,
-    108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119,
-    101,114, 10,115,116,114,114,101,112, 32, 61, 32,115,116,114,
-     46,114,101,112, 10,115,116,114,115,117, 98, 32, 61, 32,115,
-    116,114, 46,115,117, 98, 10,115,116,114,117,112,112,101,114,
-     32, 61, 32,115,116,114, 46,117,112,112,101,114, 10, 10, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 10, 45, 45, 32,111,115, 32,108,105,
-     98,114, 97,114,121, 10, 99,108,111, 99,107, 32, 61, 32,111,
-    115, 46, 99,108,111, 99,107, 10,100, 97,116,101, 32, 61, 32,
-    111,115, 46,100, 97,116,101, 10,100,105,102,102,116,105,109,
-    101, 32, 61, 32,111,115, 46,100,105,102,102,116,105,109,101,
-     10,101,120,101, 99,117,116,101, 32, 61, 32,111,115, 46,101,
-    120,101, 99,117,116,101, 32, 45, 45, 63, 10,101,120,105,116,
-     32, 61, 32,111,115, 46,101,120,105,116, 10,103,101,116,101,
-    110,118, 32, 61, 32,111,115, 46,103,101,116,101,110,118, 10,
-    114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109,
-    111,118,101, 10,114,101,110, 97,109,101, 32, 61, 32,111,115,
-     46,114,101,110, 97,109,101, 10,115,101,116,108,111, 99, 97,
-    108,101, 32, 61, 32,111,115, 46,115,101,116,108,111, 99, 97,
-    108,101, 10,116,105,109,101, 32, 61, 32,111,115, 46,116,105,
-    109,101, 10,116,109,112,110, 97,109,101, 32, 61, 32,111,115,
-     46,116,109,112,110, 97,109,101, 10, 10, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 10, 45, 45, 32, 99,111,109,112, 97,116,105, 98,105,
-    108,105,116,121, 32,111,110,108,121, 10,103,101,116,103,108,
-    111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110,
-     32, 40,110, 41, 32,114,101,116,117,114,110, 32, 95, 71, 91,
-    110, 93, 32,101,110,100, 10,115,101,116,103,108,111, 98, 97,
-    108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110,
-     44,118, 41, 32, 95, 71, 91,110, 93, 32, 61, 32,118, 32,101,
-    110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10,108,111,
-     99, 97,108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105,
-    111, 44, 32,116, 97, 98,108,101, 10, 10, 45, 45, 32, 73, 79,
-     32,108,105, 98,114, 97,114,121, 32, 40,102,105,108,101,115,
-     41, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32,105,111, 46,115,
-    116,100,105,110, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32,
-    105,111, 46,115,116,100,101,114,114, 10, 95, 83, 84, 68, 79,
-     85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10,
-     95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,
-    105,110, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111,
-     46,115,116,100,111,117,116, 10,115,101,101,107, 32, 61, 32,
-    105,111, 46,115,116,100,105,110, 46,115,101,101,107, 32, 32,
-     32, 45, 45, 32,115,105, 99,107, 32, 59, 45, 41, 10,116,109,
-    112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102,
-    105,108,101, 10, 99,108,111,115,101,102,105,108,101, 32, 61,
-     32,105,111, 46, 99,108,111,115,101, 10,111,112,101,110,102,
-    105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 10, 10,
-    102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32,
-     40,102, 41, 10, 32, 32,105,102, 32,102, 32,116,104,101,110,
-     32,102, 58,102,108,117,115,104, 40, 41, 10, 32, 32,101,108,
-    115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115,
-    104, 40, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10,
-    102,117,110, 99,116,105,111,110, 32,114,101, 97,100,102,114,
-    111,109, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32,
-    110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101,
-    110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,
-    101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99,
-    108,111,115,101, 40, 95, 73, 78, 80, 85, 84, 41, 10, 32, 32,
-     32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,
-    116,100,105,110, 10, 32, 32, 32, 32,114,101,116,117,114,110,
-     32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,
-    101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,
-    102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,
-    111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,114,
-     34, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61,
-     32,102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32,
-     32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114,
-     44, 32, 99,111,100, 10, 32, 32,101,110,100, 10,101,110,100,
-     10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,
-    101,116,111, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102,
-     32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,
-    101,110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44,
-     32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,
-     99,108,111,115,101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10,
-     32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,
-    111, 46,115,116,100,111,117,116, 10, 32, 32, 32, 32,114,101,
-    116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,
-    100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,108,111,
-     99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100,
-     32, 61, 32,105,111, 46,111,112,101,110, 40,110, 97,109,101,
-     44, 32, 34,119, 34, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84,
-     80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84,
-     80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,
-    102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101,
-    110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,
-    110, 32, 97,112,112,101,110,100,116,111, 32, 40,110, 97,109,
-    101, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101,
-    114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112,
-    101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 32,
-     32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114,
-     32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,114,101,116,117,
-    114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10,
-    101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,
-    101, 97,100, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99,
-     97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10, 32,
-     32,105,102, 32,114, 97,119,116,121,112,101, 40, 97,114,103,
-     91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,
-    116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32,
-     61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,
-    103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,
-    101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110,
-    112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10,
-     10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,101,
-     32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32,
-    102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,105,
-    102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49,
-     93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,116, 97,
-     39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32,
-    116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44,
-     32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116,
-    117,114,110, 32,102, 58,119,114,105,116,101, 40,117,110,112,
-     97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/compat.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32, 98, 97,115,105, 99,
-     32,117,116,105,108,105,116,121, 32,102,117,110, 99,116,105,
-    111,110,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32,
-     98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,
-    101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80,
-     85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49,
-     57, 57, 56, 10, 45, 45, 32, 76, 97,115,116, 32,117,112,100,
-     97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45,
-     45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,
-    105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101,
-     32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32,
-     99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,
-    101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,
-    105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,
-    115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,
-    101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115,
-     32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32,
-     98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,
-    104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,
-    111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111,
-     32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,
-    110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44,
-     32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,
-    104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,
-    109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10,
-     10, 10, 45, 45, 32, 66, 97,115,105, 99, 32, 67, 32,116,121,
-    112,101,115, 32, 97,110,100, 32,116,104,101,105,114, 32, 99,
-    111,114,114,101,115,112,111,110,100,105,110,103, 32, 76,117,
-     97, 32,116,121,112,101,115, 10, 45, 45, 32, 65,108,108, 32,
-    111, 99, 99,117,114,114,101,110, 99,101,115, 32,111,102, 32,
-     34, 99,104, 97,114, 42, 34, 32,119,105,108,108, 32, 98,101,
-     32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95,
-     99,115,116,114,105,110,103, 34, 44, 10, 45, 45, 32, 97,110,
-    100, 32, 97,108,108, 32,111, 99, 99,117,114,114,101,110, 99,
-    101,115, 32,111,102, 32, 34,118,111,105,100, 42, 34, 32,119,
-    105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100,
-     32, 98,121, 32, 34, 95,117,115,101,114,100, 97,116, 97, 34,
-     10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 32, 91, 39,
-    118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 32, 91,
-     39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98,
-    101,114, 39, 44, 10, 32, 91, 39,105,110,116, 39, 93, 32, 61,
-     32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,115,
-    104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,
-    114, 39, 44, 10, 32, 91, 39,108,111,110,103, 39, 93, 32, 61,
-     32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,117,
-    110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39,110,117,
-    109, 98,101,114, 39, 44, 10, 32, 91, 39,102,108,111, 97,116,
-     39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10,
-     32, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39,
-    110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39, 95, 99,115,
-    116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116,114,105,
-    110,103, 39, 44, 10, 32, 91, 39, 95,117,115,101,114,100, 97,
-    116, 97, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116,
-     97, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 42, 39, 93, 32,
-     61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 32, 91, 39,
-    118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115,101,114,
-    100, 97,116, 97, 39, 44, 10, 32, 91, 39, 98,111,111,108, 39,
-     93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 10,
-     32, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116, 39, 93,
-     32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 32, 91, 39,
-     76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39,
-    118, 97,108,117,101, 39, 44, 32, 32, 32, 32, 45, 45, 32,102,
-    111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116,
-    121, 32,119,105,116,104, 32,116,111,108,117, 97, 32, 52, 46,
-     48, 10, 32, 91, 39,108,117, 97, 95, 83,116, 97,116,101, 42,
-     39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 32,
-     91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39,
-    115,116, 97,116,101, 39, 44, 10, 32, 91, 39,108,117, 97, 95,
-     70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,118,
-     97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,115,105,
-     99, 95, 99,116,121,112,101, 32, 61, 32,123, 10, 32,110,117,
-    109, 98,101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109,
-     98,101,114, 34, 44, 10, 32,115,116,114,105,110,103, 32, 61,
-     32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44,
-     10, 32,117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118,
-    111,105,100, 42, 34, 44, 10, 32, 98,111,111,108,101, 97,110,
-     32, 61, 32, 34, 98,111,111,108, 34, 44, 10, 32,118, 97,108,
-    117,101, 32, 61, 32, 34,105,110,116, 34, 44, 10, 32,115,116,
-     97,116,101, 32, 61, 32, 34,108,117, 97, 95, 83,116, 97,116,
-    101, 42, 34, 44, 10,125, 10, 10, 45, 45, 32,102,117,110, 99,
-    116,105,111,110,115, 32,116,104,101, 32, 97,114,101, 32,117,
-    115,101,100, 32,116,111, 32,100,111, 32, 97, 32, 39,114, 97,
-    119, 32,112,117,115,104, 39, 32,111,102, 32, 98, 97,115,105,
-     99, 32,116,121,112,101,115, 10, 95, 98, 97,115,105, 99, 95,
-    114, 97,119, 95,112,117,115,104, 32, 61, 32,123,125, 10, 10,
-     45, 45, 32, 76,105,115,116, 32,111,102, 32,117,115,101,114,
-     32,100,101,102,105,110,101,100, 32,116,121,112,101,115, 10,
-     45, 45, 32, 69, 97, 99,104, 32,116,121,112,101, 32, 99,111,
-    114,114,101,115,112,111,110,100,115, 32,116,111, 32, 97, 32,
-    118, 97,114,105, 97, 98,108,101, 32,110, 97,109,101, 32,116,
-    104, 97,116, 32,115,116,111,114,101,115, 32,105,116,115, 32,
-    116, 97,103, 32,118, 97,108,117,101, 46, 10, 95,117,115,101,
-    114,116,121,112,101, 32, 61, 32,123,125, 10, 10, 45, 45, 32,
-     76,105,115,116, 32,111,102, 32,116,121,112,101,115, 32,116,
-    104, 97,116, 32,104, 97,118,101, 32,116,111, 32, 98,101, 32,
-     99,111,108,108,101, 99,116,101,100, 10, 95, 99,111,108,108,
-    101, 99,116, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,
-    115,116, 32,111,102, 32,116,121,112,101,115, 10, 95,103,108,
-    111, 98, 97,108, 95,116,121,112,101,115, 32, 61, 32,123,110,
-     61, 48,125, 10, 95,103,108,111, 98, 97,108, 95,116,121,112,
-    101,115, 95,104, 97,115,104, 32, 61, 32,123,125, 10, 10, 45,
-     45, 32,108,105,115,116, 32,111,102, 32, 99,108, 97,115,115,
-    101,115, 10, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,
-    115,101,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105,
-    115,116, 32,111,102, 32,101,110,117,109, 32, 99,111,110,115,
-    116, 97,110,116,115, 10, 95,103,108,111, 98, 97,108, 95,101,
-    110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,
-    105,115,116, 32,111,102, 32, 97,117,116,111, 32,114,101,110,
-     97,109,105,110,103, 10, 95,114,101,110, 97,109,105,110,103,
-     32, 61, 32,123,125, 10,102,117,110, 99,116,105,111,110, 32,
-     97,112,112,101,110,100,114,101,110, 97,109,105,110,103, 32,
-     40,115, 41, 10, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,
-    111,108,100, 44,110,101,119, 32, 61, 32,115,116,114,102,105,
-    110,100, 40,115, 44, 34, 37,115, 42, 40, 46, 45, 41, 37,115,
-     42, 64, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 36, 34, 41,
-     10,  9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110,
-     10,  9, 32,101,114,114,111,114, 40, 34, 35, 73,110,118, 97,
-    108,105,100, 32,114,101,110, 97,109,105,110,103, 32,115,121,
-    110,116, 97,120, 59, 32,105,116, 32,115,104,111,117,108,100,
-     32, 98,101, 32,111,102, 32,116,104,101, 32,102,111,114,109,
-     58, 32,112, 97,116,116,101,114,110, 64,112, 97,116,116,101,
-    114,110, 34, 41, 10,  9,101,110,100, 10,  9,116,105,110,115,
-    101,114,116, 40, 95,114,101,110, 97,109,105,110,103, 44,123,
-    111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,110,101,
-    119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,
-    111,110, 32, 97,112,112,108,121,114,101,110, 97,109,105,110,
-    103, 32, 40,115, 41, 10,  9,102,111,114, 32,105, 61, 49, 44,
-    103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103, 41,
-     32,100,111, 10,  9, 32,108,111, 99, 97,108, 32,109, 44,110,
-     32, 61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97,
-    109,105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101,
-    110, 97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10,
-      9,  9,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101,
-    110, 10,  9,  9, 32,114,101,116,117,114,110, 32,109, 10,  9,
-      9,101,110,100, 10,  9,101,110,100, 10,  9,114,101,116,117,
-    114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,
-     69,114,114,111,114, 32,104, 97,110,100,108,101,114, 10,102,
-    117,110, 99,116,105,111,110, 32,116,111,108,117, 97, 95,101,
-    114,114,111,114, 32, 40,115, 44,102, 41, 10,105,102, 32, 95,
-     99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10,
-      9,112,114,105,110,116, 40, 34, 42, 42, 42, 99,117,114,114,
-     32, 99,111,100,101, 32,102,111,114, 32,101,114,114,111,114,
-     32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103,
-     40, 95, 99,117,114,114, 95, 99,111,100,101, 41, 41, 10,  9,
-    112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97,
-     99,101, 98, 97, 99,107, 40, 41, 41, 10,101,110,100, 10, 32,
-    108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85,
-     84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61,
-     32, 95, 83, 84, 68, 69, 82, 82, 10, 32,105,102, 32,115,116,
-    114,115,117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32,
-     39, 35, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,
-    101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 58, 32,
-     34, 46, 46,115,116,114,115,117, 98, 40,115, 44, 50, 41, 46,
-     46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,105,102, 32,
-     95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110,
-     10, 32, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,
-     32, 61, 32,115,116,114,102,105,110,100, 40, 95, 99,117,114,
-    114, 95, 99,111,100,101, 44, 34, 94, 37,115, 42, 40, 46, 45,
-     92,110, 41, 34, 41, 32, 45, 45, 32,101,120,116,114, 97, 99,
-    116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32, 32,
-     32,105,102, 32,115, 61, 61,110,105,108, 32,116,104,101,110,
-     32,115, 32, 61, 32, 95, 99,117,114,114, 95, 99,111,100,101,
-     32,101,110,100, 10, 32, 32, 32,115, 32, 61, 32,103,115,117,
-     98, 40,115, 44, 34, 95,117,115,101,114,100, 97,116, 97, 34,
-     44, 34,118,111,105,100, 42, 34, 41, 32, 45, 45, 32,114,101,
-    116,117,114,110, 32,119,105,116,104, 32, 39,118,111,105,100,
-     42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,
-    115, 44, 34, 95, 99,115,116,114,105,110,103, 34, 44, 34, 99,
-    104, 97,114, 42, 34, 41, 32, 32, 45, 45, 32,114,101,116,117,
-    114,110, 32,119,105,116,104, 32, 39, 99,104, 97,114, 42, 39,
-     10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,
-     34, 95,108,115,116, 97,116,101, 34, 44, 34,108,117, 97, 95,
-     83,116, 97,116,101, 42, 34, 41, 32, 32, 45, 45, 32,114,101,
-    116,117,114,110, 32,119,105,116,104, 32, 39,108,117, 97, 95,
-     83,116, 97,116,101, 42, 39, 10, 32, 32, 32,119,114,105,116,
-    101, 40, 34, 67,111,100,101, 32, 98,101,105,110,103, 32,112,
-    114,111, 99,101,115,115,101,100, 58, 92,110, 34, 46, 46,115,
-     46, 46, 34, 92,110, 34, 41, 10, 32, 32,101,110,100, 10, 32,
-    101,108,115,101, 10, 32,105,102, 32,110,111,116, 32,102, 32,
-    116,104,101,110, 32,102, 32, 61, 32, 34, 40,102, 32,105,115,
-     32,110,105,108, 41, 34, 32,101,110,100, 10, 32, 32,112,114,
-    105,110,116, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97,
-     32,105,110,116,101,114,110, 97,108, 32,101,114,114,111,114,
-     58, 32, 34, 46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110,
-     92,110, 34, 41, 10, 32, 32,114,101,116,117,114,110, 10, 32,
-    101,110,100, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,
-    111,117,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105,
-    111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103,
-     41, 10, 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32,
-     95, 79, 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85,
-     84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,119,114,
-    105,116,101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97,
-     32,119, 97,114,110,105,110,103, 58, 32, 34, 46, 46,109,115,
-    103, 46, 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 95, 79,
-     85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100,
-     10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, 32, 97,
-    110, 32,117,115,101,114, 32,100,101,102,105,110,101,100, 32,
-    116,121,112,101, 58, 32,114,101,116,117,114,110,115, 32,102,
-    117,108,108, 32,116,121,112,101, 10,102,117,110, 99,116,105,
-    111,110, 32,114,101,103,116,121,112,101, 32, 40,116, 41, 10,
-      9, 45, 45,105,102, 32,105,115, 98, 97,115,105, 99, 40,116,
-     41, 32,116,104,101,110, 10,  9, 45, 45,  9,114,101,116,117,
-    114,110, 32,116, 10,  9, 45, 45,101,110,100, 10,  9,108,111,
-     99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,
-    112,101, 40,116, 41, 10, 10,  9,105,102, 32,110,111,116, 32,
-     95,117,115,101,114,116,121,112,101, 91,102,116, 93, 32,116,
-    104,101,110, 10,  9,  9,114,101,116,117,114,110, 32, 97,112,
-    112,101,110,100,117,115,101,114,116,121,112,101, 40,116, 41,
-     10,  9,101,110,100, 10,  9,114,101,116,117,114,110, 32,102,
-    116, 10,101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,
-    110, 32,116,121,112,101, 32,110, 97,109,101, 58, 32,114,101,
-    116,117,114,110,115, 32,102,117,108,108, 32,116,121,112,101,
-     10,102,117,110, 99,116,105,111,110, 32,116,121,112,101,118,
-     97,114, 40,116,121,112,101, 41, 10,  9,105,102, 32,116,121,
-    112,101, 32, 61, 61, 32, 39, 39, 32,111,114, 32,116,121,112,
-    101, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,
-    110, 10,  9,  9,114,101,116,117,114,110, 32,116,121,112,101,
-     10,  9,101,108,115,101, 10,  9,  9,108,111, 99, 97,108, 32,
-    102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40,116,
-    121,112,101, 41, 10,  9,  9,105,102, 32,102,116, 32,116,104,
-    101,110, 10,  9,  9,  9,114,101,116,117,114,110, 32,102,116,
-     10,  9,  9,101,110,100, 10,  9,  9, 95,117,115,101,114,116,
-    121,112,101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,
-    101, 10,  9,  9,114,101,116,117,114,110, 32,116,121,112,101,
-     10,  9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,
-    104,101, 99,107, 32,105,102, 32, 98, 97,115,105, 99, 32,116,
-    121,112,101, 10,102,117,110, 99,116,105,111,110, 32,105,115,
-     98, 97,115,105, 99, 32, 40,116,121,112,101, 41, 10, 32,108,
-    111, 99, 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,116,
-    121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39,
-     41, 10, 32,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32,
-     97,112,112,108,121,116,121,112,101,100,101,102, 40, 39, 39,
-     44, 32,116, 41, 10, 32,108,111, 99, 97,108, 32, 98, 32, 61,
-     32, 95, 98, 97,115,105, 99, 91,116, 93, 10, 32,105,102, 32,
-     98, 32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110,
-     32, 98, 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101,
-     91, 98, 93, 10, 32,101,110,100, 10, 32,114,101,116,117,114,
-    110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,115,
-    112,108,105,116, 32,115,116,114,105,110,103, 32,117,115,105,
-    110,103, 32, 97, 32,116,111,107,101,110, 10,102,117,110, 99,
-    116,105,111,110, 32,115,112,108,105,116, 32, 40,115, 44,116,
-     41, 10, 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110,
-     61, 48,125, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32,
-    102,117,110, 99,116,105,111,110, 32, 40,115, 41, 10, 32, 32,
-    108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32,
-     32,108, 91,108, 46,110, 93, 32, 61, 32,115, 10, 32, 32,114,
-    101,116,117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 32,
-    108,111, 99, 97,108, 32,112, 32, 61, 32, 34, 37,115, 42, 40,
-     46, 45, 41, 37,115, 42, 34, 46, 46,116, 46, 46, 34, 37,115,
-     42, 34, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,
-     34, 94, 37,115, 43, 34, 44, 34, 34, 41, 10, 32,115, 32, 61,
-     32,103,115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44,
-     34, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115,
-     44,112, 44,102, 41, 10, 32,108, 46,110, 32, 61, 32,108, 46,
-    110, 32, 43, 32, 49, 10, 32,108, 91,108, 46,110, 93, 32, 61,
-     32,103,115,117, 98, 40,115, 44, 34, 40, 37,115, 37,115, 42,
-     41, 36, 34, 44, 34, 34, 41, 10, 32,114,101,116,117,114,110,
-     32,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108,105,
-    116,115, 32, 97, 32,115,116,114,105,110,103, 32,117,115,105,
-    110,103, 32, 97, 32,112, 97,116,116,101,114,110, 44, 32, 99,
-    111,110,115,105,100,101,114,105,110,103, 32,116,104,101, 32,
-    115,112, 97, 99,105, 97,108, 32, 99, 97,115,101,115, 32,111,
-    102, 32, 67, 32, 99,111,100,101, 32, 40,116,101,109,112,108,
-     97,116,101,115, 44, 32,102,117,110, 99,116,105,111,110, 32,
-    112, 97,114, 97,109,101,116,101,114,115, 44, 32,101,116, 99,
-     41, 10, 45, 45, 32,112, 97,116,116,101,114,110, 32, 99, 97,
-    110, 39,116, 32, 99,111,110,116, 97,105,110, 32,116,104,101,
-     32, 39, 94, 39, 32, 40, 97,115, 32,117,115,101,100, 32,116,
-    111, 32,105,100,101,110,116,105,102,121, 32,116,104,101, 32,
-     98,101,103,105,110,105,110,103, 32,111,102, 32,116,104,101,
-     32,108,105,110,101, 41, 10, 45, 45, 32, 97,108,115,111, 32,
-    115,116,114,105,112,115, 32,119,104,105,116,101,115,112, 97,
-     99,101, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,
-    105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32,
-    112, 97,116, 41, 10, 10,  9,115, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37,115,
-     42, 34, 44, 32, 34, 34, 41, 10,  9,115, 32, 61, 32,115,116,
-    114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37,
-    115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 10,  9,108,111, 99,
-     97,108, 32,116,111,107,101,110, 95, 98,101,103,105,110, 32,
-     61, 32, 49, 10,  9,108,111, 99, 97,108, 32,116,111,107,101,
-    110, 95,101,110,100, 32, 61, 32, 49, 10,  9,108,111, 99, 97,
-    108, 32,111,102,115, 32, 61, 32, 49, 10,  9,108,111, 99, 97,
-    108, 32,114,101,116, 32, 61, 32,123,110, 61, 48,125, 10, 10,
-      9,102,117,110, 99,116,105,111,110, 32, 97,100,100, 95,116,
-    111,107,101,110, 40,111,102,115, 41, 10, 10,  9,  9,108,111,
-     99, 97,108, 32,116, 32, 61, 32,115,116,114,105,110,103, 46,
-    115,117, 98, 40,115, 44, 32,116,111,107,101,110, 95, 98,101,
-    103,105,110, 44, 32,111,102,115, 41, 10,  9,  9,116, 32, 61,
-     32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 44,
-     32, 34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10,  9,  9,
-    116, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98,
-     40,116, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41,
-     10,  9,  9,114,101,116, 46,110, 32, 61, 32,114,101,116, 46,
-    110, 32, 43, 32, 49, 10,  9,  9,114,101,116, 91,114,101,116,
-     46,110, 93, 32, 61, 32,116, 10,  9,101,110,100, 10, 10,  9,
-    119,104,105,108,101, 32,111,102,115, 32, 60, 61, 32,115,116,
-    114,105,110,103, 46,108,101,110, 40,115, 41, 32,100,111, 10,
-     10,  9,  9,108,111, 99, 97,108, 32,115,117, 98, 32, 61, 32,
-    115,116,114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,
-    102,115, 44, 32, 45, 49, 41, 10,  9,  9,108,111, 99, 97,108,
-     32, 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,
-    105,110,100, 40,115,117, 98, 44, 32, 34, 94, 34, 46, 46,112,
-     97,116, 41, 10,  9,  9,105,102, 32, 98, 32,116,104,101,110,
-     10,  9,  9,  9, 97,100,100, 95,116,111,107,101,110, 40,111,
-    102,115, 45, 49, 41, 10,  9,  9,  9,111,102,115, 32, 61, 32,
-    111,102,115, 43,101, 10,  9,  9,  9,116,111,107,101,110, 95,
-     98,101,103,105,110, 32, 61, 32,111,102,115, 10,  9,  9,101,
-    108,115,101, 10,  9,  9,  9,108,111, 99, 97,108, 32, 99,104,
-     97,114, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98,
-     40,115, 44, 32,111,102,115, 44, 32,111,102,115, 41, 10,  9,
-      9,  9,105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 40,
-     34, 32,111,114, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60,
-     34, 32,116,104,101,110, 10, 10,  9,  9,  9,  9,108,111, 99,
-     97,108, 32, 98,108,111, 99,107, 10,  9,  9,  9,  9,105,102,
-     32, 99,104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32,116,104,
-    101,110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98,
-     40, 41, 34, 32,101,110,100, 10,  9,  9,  9,  9,105,102, 32,
-     99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32,116,104,101,
-    110, 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 60,
-     62, 34, 32,101,110,100, 10, 10,  9,  9,  9,  9, 98, 44,101,
-     32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,
-    115,117, 98, 44, 32, 98,108,111, 99,107, 41, 10,  9,  9,  9,
-      9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10,
-      9,  9,  9,  9,  9, 45, 45, 32,117,110,116,101,114,109,105,
-    110, 97,116,101,100, 32, 98,108,111, 99,107, 63, 10,  9,  9,
-      9,  9,  9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10,
-      9,  9,  9,  9,101,108,115,101, 10,  9,  9,  9,  9,  9,111,
-    102,115, 32, 61, 32,111,102,115, 32, 43, 32,101, 10,  9,  9,
-      9,  9,101,110,100, 10, 10,  9,  9,  9,101,108,115,101, 10,
-      9,  9,  9,  9,111,102,115, 32, 61, 32,111,102,115, 43, 49,
-     10,  9,  9,  9,101,110,100, 10,  9,  9,101,110,100, 10, 10,
-      9,101,110,100, 10,  9, 97,100,100, 95,116,111,107,101,110,
-     40,111,102,115, 41, 10,  9, 45, 45,105,102, 32,114,101,116,
-     46,110, 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 10,  9,
-     45, 45,  9,114,101,116, 46,110, 61, 49, 10,  9, 45, 45,  9,
-    114,101,116, 91, 49, 93, 32, 61, 32, 34, 34, 10,  9, 45, 45,
-    101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,114,101,
-    116, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99,111,110, 99,
-     97,116,101,110, 97,116,101, 32,115,116,114,105,110,103,115,
-     32,111,102, 32, 97, 32,116, 97, 98,108,101, 10,102,117,110,
-     99,116,105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116,
-     44,102, 44,108, 44,106,115,116,114, 41, 10,  9,106,115,116,
-    114, 32, 61, 32,106,115,116,114, 32,111,114, 32, 34, 32, 34,
-     10, 32,108,111, 99, 97,108, 32,115, 32, 61, 32, 39, 39, 10,
-     32,108,111, 99, 97,108, 32,105, 61,102, 10, 32,119,104,105,
-    108,101, 32,105, 60, 61,108, 32,100,111, 10, 32, 32,115, 32,
-     61, 32,115, 46, 46,116, 91,105, 93, 10, 32, 32,105, 32, 61,
-     32,105, 43, 49, 10, 32, 32,105,102, 32,105, 32, 60, 61, 32,
-    108, 32,116,104,101,110, 32,115, 32, 61, 32,115, 46, 46,106,
-    115,116,114, 32,101,110,100, 10, 32,101,110,100, 10, 32,114,
-    101,116,117,114,110, 32,115, 10,101,110,100, 10, 10, 45, 45,
-     32, 99,111,110, 99, 97,116,101,110, 97,116,101, 32, 97,108,
-    108, 32,112, 97,114, 97,109,101,116,101,114,115, 44, 32,102,
-    111,108,108,111,119,105,110,103, 32,111,117,116,112,117,116,
-     32,114,117,108,101,115, 10,102,117,110, 99,116,105,111,110,
-     32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 32, 40,108,
-    105,110,101, 44, 32, 46, 46, 46, 41, 10, 32,108,111, 99, 97,
-    108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60,
-     61, 97,114,103, 46,110, 32,100,111, 10, 32, 32,105,102, 32,
-     95, 99,111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,
-    116,114,102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91,
-     37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32,
-     32, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91,105,
-     93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,
-    101,110, 10,  9, 32, 32, 32, 32,108,105,110,101, 32, 61, 32,
-    108,105,110,101, 32, 46, 46, 32, 39, 32, 39, 10, 32, 32,101,
-    110,100, 10, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,
-    101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10, 32, 32,105,
-    102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,
-    116,104,101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61,
-     32,115,116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44,
-     45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,
-    105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,
-    102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,
-    114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,
-    123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32,
-     95, 99,111,110,116, 61,110,105,108, 32,108,105,110,101, 32,
-     61, 32,108,105,110,101, 32, 46, 46, 32, 39, 92,110, 39, 10,
-     32,101,110,100, 10,  9,114,101,116,117,114,110, 32,108,105,
-    110,101, 10,101,110,100, 10, 10, 45, 45, 32,111,117,116,112,
-    117,116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,
-    110, 32,111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10,
-     32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,
-    108,101, 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10,
-     32, 32,105,102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,
-    110,111,116, 32,115,116,114,102,105,110,100, 40, 95, 99,111,
-    110,116, 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,
-    100, 10, 32, 32, 32, 32, 32,115,116,114,102,105,110,100, 40,
-     97,114,103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93,
-     34, 41, 32,116,104,101,110, 10,  9, 32, 32, 32, 32,119,114,
-    105,116,101, 40, 39, 32, 39, 41, 10, 32, 32,101,110,100, 10,
-     32, 32,119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41,
-     10, 32, 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61,
-     32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,111,
-    110,116, 32, 61, 32,115,116,114,115,117, 98, 40, 97,114,103,
-     91,105, 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,
-    100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,
-    100, 10, 32,105,102, 32,115,116,114,102,105,110,100, 40, 97,
-    114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37,
-     41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,
-    110, 10, 32, 32, 95, 99,111,110,116, 61,110,105,108, 32,119,
-    114,105,116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100,
-     10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,
-    103,101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,
-    116,104,111,100,115, 40,112,116,121,112,101, 44, 32,110, 97,
-    109,101, 41, 10, 10,  9,105,102, 32,103,101,116, 95,112,114,
-    111,112,101,114,116,121, 95,109,101,116,104,111,100,115, 95,
-    104,111,111,107, 32, 97,110,100, 32,103,101,116, 95,112,114,
-    111,112,101,114,116,121, 95,109,101,116,104,111,100,115, 95,
-    104,111,111,107, 40,112,116,121,112,101, 44,110, 97,109,101,
-     41, 32,116,104,101,110, 10,  9,  9,114,101,116,117,114,110,
-     32,103,101,116, 95,112,114,111,112,101,114,116,121, 95,109,
-    101,116,104,111,100,115, 95,104,111,111,107, 40,112,116,121,
-    112,101, 44, 32,110, 97,109,101, 41, 10,  9,101,110,100, 10,
-     10,  9,105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,
-    100,101,102, 97,117,108,116, 34, 32,116,104,101,110, 32, 45,
-     45, 32,103,101,116, 95,110, 97,109,101, 44, 32,115,101,116,
-     95,110, 97,109,101, 10,  9,  9,114,101,116,117,114,110, 32,
-     34,103,101,116, 95, 34, 46, 46,110, 97,109,101, 44, 32, 34,
-    115,101,116, 95, 34, 46, 46,110, 97,109,101, 10,  9,101,110,
-    100, 10, 10,  9,105,102, 32,112,116,121,112,101, 32, 61, 61,
-     32, 34,113,116, 34, 32,116,104,101,110, 32, 45, 45, 32,110,
-     97,109,101, 44, 32,115,101,116, 78, 97,109,101, 10,  9,  9,
-    114,101,116,117,114,110, 32,110, 97,109,101, 44, 32, 34,115,
-    101,116, 34, 46, 46,115,116,114,105,110,103, 46,117,112,112,
-    101,114, 40,115,116,114,105,110,103, 46,115,117, 98, 40,110,
-     97,109,101, 44, 32, 49, 44, 32, 49, 41, 41, 46, 46,115,116,
-    114,105,110,103, 46,115,117, 98, 40,110, 97,109,101, 44, 32,
-     50, 44, 32, 45, 49, 41, 10,  9,101,110,100, 10, 10,  9,105,
-    102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,111,118,101,
-    114,108,111, 97,100, 34, 32,116,104,101,110, 32, 45, 45, 32,
-    110, 97,109,101, 44, 32,110, 97,109,101, 10,  9,  9,114,101,
-    116,117,114,110, 32,110, 97,109,101, 44,110, 97,109,101, 10,
-      9,101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,110,
-    105,108, 10,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 32,116,104,101, 32,104,111,111,
-    107,115, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,114,
-    105,103,104,116, 32, 97,102,116,101,114, 32,112,114,111, 99,
-    101,115,115,105,110,103, 32,116,104,101, 32, 36, 91,105, 99,
-    104,108, 93,102,105,108,101, 32,100,105,114,101, 99,116,105,
-    118,101,115, 44, 10, 45, 45, 32,114,105,103,104,116, 32, 98,
-    101,102,111,114,101, 32,112,114,111, 99,101,115,115,105,110,
-    103, 32, 97,110,121,116,104,105,110,103, 32,101,108,115,101,
-     10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32,112,
-     97, 99,107, 97,103,101, 32,111, 98,106,101, 99,116, 32, 97,
-    115, 32,116,104,101, 32,112, 97,114, 97,109,101,116,101,114,
-     10,102,117,110, 99,116,105,111,110, 32,112,114,101,112,114,
-    111, 99,101,115,115, 95,104,111,111,107, 40,112, 41, 10,  9,
-     45, 45, 32,112, 46, 99,111,100,101, 32,104, 97,115, 32, 97,
-    108,108, 32,116,104,101, 32,105,110,112,117,116, 32, 99,111,
-    100,101, 32,102,114,111,109, 32,116,104,101, 32,112,107,103,
-     10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,
-    100, 32,102,111,114, 32,101,118,101,114,121, 32, 36,105,102,
-    105,108,101, 32,100,105,114,101, 99,116,105,118,101, 10, 45,
-     45, 32,116, 97,107,101,115, 32, 97, 32,116, 97, 98,108,101,
-     32,119,105,116,104, 32, 97, 32,115,116,114,105,110,103, 32,
-     99, 97,108,108,101,100, 32, 39, 99,111,100,101, 39, 32,105,
-    110,115,105,100,101, 44, 32,116,104,101, 32,102,105,108,101,
-    110, 97,109,101, 44, 32, 97,110,100, 32, 97,110,121, 32,101,
-    120,116,114, 97, 32, 97,114,103,117,109,101,110,116,115, 10,
-     45, 45, 32,112, 97,115,115,101,100, 32,116,111, 32, 36,105,
-    102,105,108,101, 46, 32,110,111, 32,114,101,116,117,114,110,
-     32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,110,
-     32,105,110, 99,108,117,100,101, 95,102,105,108,101, 95,104,
-    111,111,107, 40,116, 44, 32,102,105,108,101,110, 97,109,101,
-     44, 32, 46, 46, 46, 41, 10, 10,101,110,100, 10, 10, 45, 45,
-     32, 99, 97,108,108,101,100, 32, 97,102,116,101,114, 32,112,
-    114,111, 99,101,115,115,105,110,103, 32, 97,110,121,116,104,
-    105,110,103, 32,116,104, 97,116, 39,115, 32,110,111,116, 32,
-     99,111,100,101, 32, 40,108,105,107,101, 32, 39, 36,114,101,
-    110, 97,109,105,110,103, 39, 44, 32, 99,111,109,109,101,110,
-    116,115, 44, 32,101,116, 99, 41, 10, 45, 45, 32, 97,110,100,
-     32,114,105,103,104,116, 32, 98,101,102,111,114,101, 32,112,
-     97,114,115,105,110,103, 32,116,104,101, 32, 97, 99,116,117,
-     97,108, 32, 99,111,100,101, 46, 10, 45, 45, 32,116, 97,107,
-    101,115, 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,
-    111, 98,106,101, 99,116, 32,119,105,116,104, 32, 97,108,108,
-     32,116,104,101, 32, 99,111,100,101, 32,111,110, 32,116,104,
-    101, 32, 39, 99,111,100,101, 39, 32,107,101,121, 46, 32,110,
-    111, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, 10,
-    102,117,110, 99,116,105,111,110, 32,112,114,101,112, 97,114,
-    115,101, 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101,
-     41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,
-    108,101,100, 32, 97,102,116,101,114, 32,119,114,105,116,105,
-    110,103, 32, 97,108,108, 32,116,104,101, 32,111,117,116,112,
-    117,116, 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,
-    101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98,106,101, 99,
-    116, 10,102,117,110, 99,116,105,111,110, 32,112,111,115,116,
-     95,111,117,116,112,117,116, 95,104,111,111,107, 40,112, 97,
-     99,107, 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45,
-     45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 39,
-    103,101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,
-    116,104,111,100,115, 39, 32,116,111, 32,103,101,116, 32,116,
-    104,101, 32,109,101,116,104,111,100,115, 32,116,111, 32,114,
-    101,116,114,105,101,118,101, 32, 97, 32,112,114,111,112,101,
-    114,116,121, 10, 45, 45, 32, 97, 99, 99,111,114,100,105,110,
-    103, 32,116,111, 32,105,116,115, 32,116,121,112,101, 10,102,
-    117,110, 99,116,105,111,110, 32,103,101,116, 95,112,114,111,
-    112,101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,
-    111,111,107, 40,112,114,111,112,101,114,116,121, 95,116,121,
-    112,101, 44, 32,110, 97,109,101, 41, 10, 10,101,110,100, 10,
-     10, 45, 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109,
-     32, 67,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
-     58,100,111,112, 97,114,115,101, 32,119,105,116,104, 32,116,
-    104,101, 32,115,116,114,105,110,103, 32, 98,101,105,110,103,
-     32,112, 97,114,115,101,100, 10, 45, 45, 32,114,101,116,117,
-    114,110, 32,110,105,108, 44, 32,111,114, 32, 97, 32,115,117,
-     98,115,116,114,105,110,103, 10,102,117,110, 99,116,105,111,
-    110, 32,112, 97,114,115,101,114, 95,104,111,111,107, 40,115,
-     41, 10, 10,  9,114,101,116,117,114,110, 32,110,105,108, 10,
-    101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/basic.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32, 97, 98,115,116,114,
-     97, 99,116, 32,102,101, 97,116,117,114,101, 32, 99,108, 97,
-    115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98,
-    121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101,
-    115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85,
-     67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57,
-     57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45,
-     45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,
-    102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,
-    121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,
-    105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114,
-     32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32,
-     84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114,
-    111,118,105,100,101,100, 32,104,101,114,101,117,110,100,101,
-    114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,
-    105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10,
-     45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104,
-     97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,
-    110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97,
-    105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,
-    111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45,
-     45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44,
-     32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111,
-    110,115, 46, 10, 10, 10, 45, 45, 32, 70,101, 97,116,117,114,
-    101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,
-    101,115,101,110,116,115, 32,116,104,101, 32, 98, 97,115,101,
-     32, 99,108, 97,115,115, 32,111,102, 32, 97,108,108, 32,109,
-     97,112,112,101,100, 32,102,101, 97,116,117,114,101, 46, 10,
-     99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32,
-    123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114,
-    101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,
-    115,115, 70,101, 97,116,117,114,101, 10, 10, 45, 45, 32,119,
-    114,105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,
-    100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 70,101, 97,116,117,114,101, 58,115,117,112, 99,111,
-    100,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,111,
-    117,116,112,117,116, 32,116, 97,103, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,
-    101, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10,101,
-    110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114,
-     32,102,101, 97,116,117,114,101, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101,
-     58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41,
-     10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108,
-     97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117,
-    110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,
-    116,117,114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40,
-     41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107,
-     32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114,
-    105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32,
-     99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115,
-    118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101,
-    116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10,
-     10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116,
-     32,114,101,113,117,105,114,101,115, 32, 99,111,108,108,101,
-     99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32,
-     99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101,
-    113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110,
-     32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,102, 97,
-    108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 98,117,105,
-    108,100, 32,110, 97,109,101,115, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101,
-     58, 98,117,105,108,100,110, 97,109,101,115, 32, 40, 41, 10,
-     32,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 97,
-    110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,
-     39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,
-    110, 32, 61, 32,115,112,108,105,116, 40,115,101,108,102, 46,
-    110, 97,109,101, 44, 39, 64, 39, 41, 10, 32, 32,115,101,108,
-    102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10, 32,
-     32,105,102, 32,110,111,116, 32,110, 91, 50, 93, 32,116,104,
-    101,110, 10, 32, 32, 32,110, 91, 50, 93, 32, 61, 32, 97,112,
-    112,108,121,114,101,110, 97,109,105,110,103, 40,110, 91, 49,
-     93, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102,
-     46,108,110, 97,109,101, 32, 61, 32,110, 91, 50, 93, 32,111,
-    114, 32,103,115,117, 98, 40,110, 91, 49, 93, 44, 34, 37, 91,
-     46, 45, 37, 93, 34, 44, 34, 34, 41, 10, 32, 32,115,101,108,
-    102, 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101,
-     32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 32, 32,
-    115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32, 99,108,
-    101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101,
-    108,102, 46,108,110, 97,109,101, 41, 10, 32,101,110,100, 10,
-     32,105,102, 32,110,111,116, 32,115,101,108,102, 46,105,115,
-     95,112, 97,114, 97,109,101,116,101,114, 32,116,104,101,110,
-     10,  9, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,
-    103,101,116,111,110,108,121,110, 97,109,101,115,112, 97, 99,
-    101, 40, 41, 32, 46, 46, 32,115,101,108,102, 46,110, 97,109,
-    101, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,
-    112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67,
-    111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 32,
-    105,102, 32,112, 97,114,101,110,116, 32,116,104,101,110, 10,
-     32,  9,115,101,108,102, 46, 97, 99, 99,101,115,115, 32, 61,
-     32,112, 97,114,101,110,116, 46, 99,117,114,114, 95,109,101,
-    109, 98,101,114, 95, 97, 99, 99,101,115,115, 10, 32,101,108,
-    115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,102,117,
-    110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,
-    116,117,114,101, 58, 99,104,101, 99,107, 95,112,117, 98,108,
-    105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 10,  9,105,
-    102, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32, 97,
-    110,100, 32,115,101,108,102, 46, 97, 99, 99,101,115,115, 32,
-    126, 61, 32, 48, 32,116,104,101,110, 10,  9,  9,114,101,116,
-    117,114,110, 32,102, 97,108,115,101, 10,  9,101,110,100, 10,
-     10,  9,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32,
-     61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,
-    114, 46, 99,117,114,114, 10,  9,119,104,105,108,101, 32,112,
-     97,114,101,110,116, 32,100,111, 10,  9,  9,105,102, 32,112,
-     97,114,101,110,116, 46, 97, 99, 99,101,115,115, 32, 97,110,
-    100, 32,112, 97,114,101,110,116, 46, 97, 99, 99,101,115,115,
-     32,126, 61, 32, 48, 32,116,104,101,110, 10,  9,  9,  9,114,
-    101,116,117,114,110, 32,102, 97,108,115,101, 10,  9,  9,101,
-    110,100, 10,  9,  9,112, 97,114,101,110,116, 32, 61, 32,112,
-     97,114,101,110,116, 46,112,114,111,120, 10,  9,101,110,100,
-     10,  9,114,101,116,117,114,110, 32,116,114,117,101, 10,101,
-    110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-    101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,116, 41,
-     10, 10,  9,114,101,116,117,114,110, 32,115,116,114,105,110,
-    103, 46,103,115,117, 98, 40,116, 44, 32, 34, 91, 60, 62, 58,
-     44, 32, 37, 42, 93, 34, 44, 32, 34, 95, 34, 41, 10,101,110,
-    100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,
-    102,101, 97,116,117,114,101, 32,105,115, 32,105,110,115,105,
-    100,101, 32, 97, 32, 99,111,110,116, 97,105,110,101,114, 32,
-    100,101,102,105,110,105,116,105,111,110, 10, 45, 45, 32,105,
-    116, 32,114,101,116,117,114,110,115, 32,116,104,101, 32, 99,
-    111,110,116, 97,105,110,101,114, 32, 99,108, 97,115,115, 32,
-    110, 97,109,101, 32,111,114, 32,110,105,108, 46, 10,102,117,
-    110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,
-    116,117,114,101, 58,105,110, 99,111,110,116, 97,105,110,101,
-    114, 32, 40,119,104,105, 99,104, 41, 10, 32,105,102, 32,115,
-    101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101,110,
-     10, 32, 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116,
-     32, 61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 10,
-     32, 32,119,104,105,108,101, 32,112, 97,114,101,110,116, 32,
-    100,111, 10, 32, 32, 32,105,102, 32,112, 97,114,101,110,116,
-     46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61, 32,119,
-    104,105, 99,104, 32,116,104,101,110, 10, 32, 32, 32, 32,114,
-    101,116,117,114,110, 32,112, 97,114,101,110,116, 46,110, 97,
-    109,101, 10, 32, 32, 32,101,110,100, 10, 32, 32, 32,112, 97,
-    114,101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112,
-     97,114,101,110,116, 10, 32, 32,101,110,100, 10, 32,101,110,
-    100, 10, 32,114,101,116,117,114,110, 32,110,105,108, 10,101,
-    110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-     97,115,115, 70,101, 97,116,117,114,101, 58,105,110, 99,108,
-     97,115,115, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,
-    115,101,108,102, 58,105,110, 99,111,110,116, 97,105,110,101,
-    114, 40, 39, 99,108, 97,115,115, 39, 41, 10,101,110,100, 10,
-     10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
-     70,101, 97,116,117,114,101, 58,105,110,109,111,100,117,108,
-    101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,115,101,
-    108,102, 58,105,110, 99,111,110,116, 97,105,110,101,114, 40,
-     39,109,111,100,117,108,101, 39, 41, 10,101,110,100, 10, 10,
-    102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,
-    101, 97,116,117,114,101, 58,105,110,110, 97,109,101,115,112,
-     97, 99,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,
-    115,101,108,102, 58,105,110, 99,111,110,116, 97,105,110,101,
-    114, 40, 39,110, 97,109,101,115,112, 97, 99,101, 39, 41, 10,
-    101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32,
-     67, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99,116,
-    105,111,110, 32,110, 97,109,101, 32, 98, 97,115,101,100, 32,
-    111,110, 32,110, 97,109,101, 10, 45, 45, 32,116,104,101, 32,
-     99,108,105,101,110,116, 32,115,112,101, 99,105,102,105,101,
-    115, 32, 97, 32,112,114,101,102,105,120, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,
-    114,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,110,
-     41, 10, 10, 32,105,102, 32,115,101,108,102, 46,112, 97,114,
-    101,110,116, 32,116,104,101,110, 10, 32, 32,110, 32, 61, 32,
-    115,101,108,102, 46,112, 97,114,101,110,116, 58, 99,102,117,
-    110, 99,110, 97,109,101, 40,110, 41, 10, 32,101,110,100, 10,
-     10, 32, 32,110, 32, 61, 32,115,116,114,105,110,103, 46,103,
-    115,117, 98, 40,110, 46, 46, 39, 95, 39, 46, 46, 32, 40,115,
-    101,108,102, 46,108,110, 97,109,101, 32,111,114, 32,115,101,
-    108,102, 46,110, 97,109,101, 41, 44, 32, 34, 91, 60, 62, 58,
-     44, 32, 92, 46, 37, 42, 38, 93, 34, 44, 32, 34, 95, 34, 41,
-     10, 10, 32, 32,114,101,116,117,114,110, 32,110, 10,101,110,
-    100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/feature.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,118,101,114, 98, 97,
-    116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,
-    105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109,
-     97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67,
-     71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45,
-     32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,
-    100, 58, 32,118,101,114, 98, 97,116,105,109, 46,108,117, 97,
-     44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47,
-     50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 54, 32, 99,101,108,
-    101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,
-    105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101,
-     32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32,
-     99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,
-    101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,
-    105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,
-    115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,
-    101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115,
-     32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32,
-     98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,
-    104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,
-    111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111,
-     32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,
-    110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44,
-     32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,
-    104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,
-    109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10,
-     10, 10, 10, 45, 45, 32, 86,101,114, 98, 97,116,105,109, 32,
-     99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,
-    101,110,116,115, 32, 97, 32,108,105,110,101, 32,116,114, 97,
-    110,115,108, 97,116,101,100, 32,100,105,114,101, 99,116,101,
-    100, 32,116,111, 32,116,104,101, 32, 98,105,110,100,105,110,
-    103, 32,102,105,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,
-    102,111,108,108,111,119,105,110,103, 32,102,105,108,100,115,
-     32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45,
-     32, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32,
-    116,101,120,116, 10, 99,108, 97,115,115, 86,101,114, 98, 97,
-    116,105,109, 32, 61, 32,123, 10, 32,108,105,110,101, 32, 61,
-     32, 39, 39, 44, 10,  9, 99,111,110,100, 32, 61, 32,110,105,
-    108, 44, 32, 32, 32, 32, 45, 45, 32, 99,111,110,100,105,116,
-    105,111,110, 58, 32,119,104,101,114,101, 32,116,111, 32,103,
-    101,110,101,114, 97,116,101, 32,116,104,101, 32, 99,111,100,
-    101, 32, 40,115, 61,115,117,112,111,114,116, 44, 32,114, 61,
-    114,101,103,105,115,116,101,114, 41, 10,125, 10, 99,108, 97,
-    115,115, 86,101,114, 98, 97,116,105,109, 46, 95, 95,105,110,
-    100,101,120, 32, 61, 32, 99,108, 97,115,115, 86,101,114, 98,
-     97,116,105,109, 10,115,101,116,109,101,116, 97,116, 97, 98,
-    108,101, 40, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,
-    109, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41,
-     10, 10, 45, 45, 32,112,114,101, 97,109, 98,108,101, 32,118,
-    101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109,
-     58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10, 32,105,
-    102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32,
-     39, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101,
-     40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,110,
-    100, 10,101,110,100, 10, 10, 45, 45, 32,115,117,112,112,111,
-    114,116, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109,
-     58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,105,102,
-     32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 99,
-    111,110,100, 44, 39,115, 39, 41, 32,116,104,101,110, 10, 32,
-     32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,
-    101, 41, 10, 32, 32,119,114,105,116,101, 40, 39, 92,110, 39,
-     41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32,
-    114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102,
-    117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,101,
-    114, 98, 97,116,105,109, 58,114,101,103,105,115,116,101,114,
-     32, 40,112,114,101, 41, 10, 32,105,102, 32,115,116,114,102,
-    105,110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39,
-    114, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116,
-    101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,
-    110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105,
-    110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,
-    105,109, 58,112,114,105,110,116, 32, 40,105,100,101,110,116,
-     44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 86,101,114, 98, 97,116,105,
-    109,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 32,108,105,110,101, 32, 61, 32, 39, 34,
-     46, 46,115,101,108,102, 46,108,105,110,101, 46, 46, 34, 39,
-     44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,
-    116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,
-    101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110,
-     97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,
-    102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97,
-    116,105,109, 32, 40,116, 41, 10, 32,115,101,116,109,101,116,
-     97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86,
-    101,114, 98, 97,116,105,109, 41, 10, 32, 97,112,112,101,110,
-    100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10,
-    101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117,
-     99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115,
-     32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101,
-    115,101,110,116,105,110,103, 32,116,104,101, 32,116,101,120,
-    116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110,
-     32, 86,101,114, 98, 97,116,105,109, 32, 40,108, 44, 99,111,
-    110,100, 41, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,
-    108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 34, 39, 34, 32,116,
-    104,101,110, 10, 32, 32,108, 32, 61, 32,115,116,114,115,117,
-     98, 40,108, 44, 50, 41, 10, 32,101,108,115,101,105,102, 32,
-    115,116,114,115,117, 98, 40,108, 44, 49, 44, 49, 41, 32, 61,
-     61, 32, 39, 36, 39, 32,116,104,101,110, 10, 32, 32, 99,111,
-    110,100, 32, 61, 32, 39,115,114, 39, 32, 32, 32, 32, 32, 32,
-     32, 45, 45, 32,103,101,110,101,114, 97,116,101,115, 32,105,
-    110, 32, 98,111,116,104, 32,115,117,112,111,114,116, 32, 97,
-    110,100, 32,114,101,103,105,115,116,101,114, 32,102,114, 97,
-    103,109,101,110,116,115, 10, 32, 32,108, 32, 61, 32,115,116,
-    114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,110,100, 10,
-     32,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116,
-    105,109, 32,123, 10, 32, 32,108,105,110,101, 32, 61, 32,108,
-     44, 10, 32, 32, 99,111,110,100, 32, 61, 32, 99,111,110,100,
-     32,111,114, 32, 39, 39, 44, 10, 32,125, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/verbatim.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,100,101, 32,
-     99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,
-    110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,
-    101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102,
-     47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108,
-     32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 36,
-     10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,
-    105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,
-    101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,
-    115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100,
-     47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10,
-     45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101,
-     32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117,
-    110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34,
-     97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,
-    110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,
-    114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,
-    116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101,
-     32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,
-    117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115,
-     44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,
-    116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,
-    116,105,111,110,115, 46, 10, 10, 45, 45, 32,103,108,111, 98,
-     97,108, 10, 99,111,100,101, 95,110, 32, 61, 32, 49, 10, 10,
-     45, 45, 32, 67,111,100,101, 32, 99,108, 97,115,115, 10, 45,
-     45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 76,117,
-     97, 32, 99,111,100,101, 32,116,111, 32, 98,101, 32, 99,111,
-    109,112,105,108,101,100, 32, 97,110,100, 32,105,110, 99,108,
-    117,100,101,100, 10, 45, 45, 32,105,110, 32,116,104,101, 32,
-    105,110,105,116,105, 97,108,105,122, 97,116,105,111,110, 32,
-    102,117,110, 99,116,105,111,110, 46, 10, 45, 45, 32, 84,104,
-    101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101,
-    108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58,
-     10, 45, 45, 32, 32, 32,116,101,120,116, 32, 61, 32,116,101,
-    120,116, 32, 99,111,100,101, 10, 99,108, 97,115,115, 67,111,
-    100,101, 32, 61, 32,123, 10, 32,116,101,120,116, 32, 61, 32,
-     39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,111,100,101,
-     46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,
-    115, 67,111,100,101, 10,115,101,116,109,101,116, 97,116, 97,
-     98,108,101, 40, 99,108, 97,115,115, 67,111,100,101, 44, 99,
-    108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45,
-     45, 32,114,101,103,105,115,116,101,114, 32, 99,111,100,101,
-     10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
-     67,111,100,101, 58,114,101,103,105,115,116,101,114, 32, 40,
-    112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101,
-     32,111,114, 32, 39, 39, 10, 32, 45, 45, 32, 99,108,101, 97,
-    110, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99,
-     97,108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101,
-    108,102, 46,116,101,120,116, 41, 10, 32,105,102, 32,110,111,
-    116, 32,115, 32,116,104,101,110, 10, 32, 32, 45, 45,112,114,
-    105,110,116, 40,115,101,108,102, 46,116,101,120,116, 41, 10,
-     32, 32,101,114,114,111,114, 40, 34,112, 97,114,115,101,114,
-     32,101,114,114,111,114, 32,105,110, 32,101,109, 98,101,100,
-    100,101,100, 32, 99,111,100,101, 34, 41, 10, 32,101,110,100,
-     10, 10, 32, 45, 45, 32,103,101,116, 32,102,105,114,115,116,
-     32,108,105,110,101, 10, 32,108,111, 99, 97,108, 32, 95, 44,
-     32, 95, 44, 32,102,105,114,115,116, 95,108,105,110,101, 61,
-    115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,
-    102, 46,116,101,120,116, 44, 32, 34, 94, 40, 91, 94, 92,110,
-     92,114, 93, 42, 41, 34, 41, 10, 32,105,102, 32,115,116,114,
-    105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95,
-    108,105,110,101, 44, 32, 34, 94, 37,115, 42, 37, 45, 37, 45,
-     34, 41, 32,116,104,101,110, 10,  9, 32,105,102, 32,115,116,
-    114,105,110,103, 46,102,105,110,100, 40,102,105,114,115,116,
-     95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35,
-     34, 41, 32,116,104,101,110, 10,  9,  9,102,105,114,115,116,
-     95,108,105,110,101, 32, 61, 32,115,116,114,105,110,103, 46,
-    103,115,117, 98, 40,102,105,114,115,116, 95,108,105,110,101,
-     44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 44, 32, 34, 34,
-     41, 10,  9,  9,105,102, 32,102,108, 97,103,115, 91, 39, 67,
-     39, 93, 32,116,104,101,110, 10,  9,  9,  9,115, 32, 61, 32,
-    115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32,
-     34, 94, 37, 45, 37, 45, 35, 35, 91, 94, 92,110, 92,114, 93,
-     42, 92,110, 34, 44, 32, 34, 34, 41, 10,  9,  9,101,110,100,
-     10,  9, 32,101,110,100, 10, 32,101,108,115,101, 10, 32,  9,
-    102,105,114,115,116, 95,108,105,110,101, 32, 61, 32, 34, 34,
-     10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,111,110,118,
-    101,114,116, 32,116,111, 32, 67, 10, 32,111,117,116,112,117,
-    116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39,123,
-     32, 47, 42, 32, 98,101,103,105,110, 32,101,109, 98,101,100,
-    100,101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47,
-     92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114,
-    101, 46, 46, 39, 32,105,110,116, 32,116,111,112, 32, 61, 32,
-    108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117,
-     97, 95, 83, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116,
-     40,112,114,101, 46, 46, 39, 32,115,116, 97,116,105, 99, 32,
-    117,110,115,105,103,110,101,100, 32, 99,104, 97,114, 32, 66,
-     91, 93, 32, 61, 32,123, 92,110, 32, 32, 32, 39, 41, 10, 32,
-    108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10, 32,
-    108,111, 99, 97,108, 32, 98, 32, 61, 32,103,115,117, 98, 40,
-    115, 44, 39, 40, 46, 41, 39, 44,102,117,110, 99,116,105,111,
-    110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32,116, 46,110, 61,116, 46,
-    110, 43, 49, 32,105,102, 32,116, 46,110, 61, 61, 49, 53, 32,
-    116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39, 92,
-    110, 39, 46, 46,112,114,101, 46, 46, 39, 32, 32, 39, 32,101,
-    110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,
-    116,117,114,110, 32,102,111,114,109, 97,116, 40, 39, 37, 51,
-    117, 44, 37,115, 39, 44,115,116,114, 98,121,116,101, 40, 99,
-     41, 44,101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,
-    110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 41, 10, 32,111,117,116,112,117,116, 40, 98, 46,
-     46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41, 10,
-     32,111,117,116,112,117,116, 40, 39, 92,110, 39, 46, 46,112,
-    114,101, 46, 46, 39, 32,125, 59, 92,110, 39, 41, 10, 32,105,
-    102, 32,102,105,114,115,116, 95,108,105,110,101, 32, 97,110,
-    100, 32,102,105,114,115,116, 95,108,105,110,101, 32,126, 61,
-     32, 34, 34, 32,116,104,101,110, 10, 32,  9,111,117,116,112,
-    117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97,
-     95,100,111, 98,117,102,102,101,114, 40,116,111,108,117, 97,
-     95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,
-    101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 32,101,
-    109, 98,101,100,100,101,100, 58, 32, 39, 46, 46,102,105,114,
-    115,116, 95,108,105,110,101, 46, 46, 39, 34, 41, 59, 39, 41,
-     10, 32,101,108,115,101, 10, 32,  9,111,117,116,112,117,116,
-     40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100,
-    111, 98,117,102,102,101,114, 40,116,111,108,117, 97, 95, 83,
-     44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111,
-    102, 40, 66, 41, 44, 34,116,111,108,117, 97, 58, 32,101,109,
-     98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101,
-     32, 39, 46, 46, 99,111,100,101, 95,110, 46, 46, 39, 34, 41,
-     59, 39, 41, 10, 32,101,110,100, 10, 32,111,117,116,112,117,
-    116, 40,112,114,101, 46, 46, 39, 32,108,117, 97, 95,115,101,
-    116,116,111,112, 40,116,111,108,117, 97, 95, 83, 44, 32,116,
-    111,112, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40,
-    112,114,101, 46, 46, 39,125, 32, 47, 42, 32,101,110,100, 32,
-    111,102, 32,101,109, 98,101,100,100,101,100, 32,108,117, 97,
-     32, 99,111,100,101, 32, 42, 47, 92,110, 92,110, 39, 41, 10,
-     32, 99,111,100,101, 95,110, 32, 61, 32, 99,111,100,101, 95,
-    110, 32, 43, 49, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,
-    114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110,
-     99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101,
-     58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,
-    108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,
-    101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    116,101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108,
-    102, 46,116,101,120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-    125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10,
-     10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,
-    111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,
-    116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10,
-     32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116,
-     44, 99,108, 97,115,115, 67,111,100,101, 41, 10, 32, 97,112,
-    112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110,
-     32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,
-    116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101,
-     99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,
-    112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32,
-     99,111,100,101, 32,116,101,120,116, 10,102,117,110, 99,116,
-    105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10, 32,114,
-    101,116,117,114,110, 32, 95, 67,111,100,101, 32,123, 10, 32,
-     32,116,101,120,116, 32, 61, 32,108, 10, 32,125, 10,101,110,
-    100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/code.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,116,121,112,101,100,
-    101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,
-    116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,
-    114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,
-    114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32,
-     74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100,
-     58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,
-    100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,
-    119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,
-    101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32,
-     97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,
-    116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119,
-     97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,
-    114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,
-    110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115,
-     44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,
-    116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,
-    105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,
-    105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101,
-     44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,
-    116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,
-    109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,
-    105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45,
-     32, 84,121,112,101,100,101,102, 32, 99,108, 97,115,115, 10,
-     45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97,
-     32,116,121,112,101, 32,115,121,110,111,110,121,109, 46, 10,
-     45, 45, 32, 84,104,101, 32, 39,100,101, 32,102, 97, 99,116,
-    111, 39, 32,116,121,112,101, 32,114,101,112,108, 97, 99,101,
-    115, 32,116,104,101, 32,116,121,112,101,100,101,102, 32, 98,
-    101,102,111,114,101, 32,116,104,101, 10, 45, 45, 32,114,101,
-    109, 97,105,110,105,110,103, 32, 99,111,100,101, 32,105,115,
-     32,112, 97,114,115,101,100, 46, 10, 45, 45, 32, 84,104,101,
-     32,102,111,108,108,111,119,105,110,103, 32,102,105,101,108,
-    100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10,
-     45, 45, 32, 32, 32,117,116,121,112,101, 32, 61, 32,116,121,
-    112,101,100,101,102, 32,110, 97,109,101, 10, 45, 45, 32, 32,
-     32,116,121,112,101, 32, 61, 32, 39,116,104,101, 32,102, 97,
-     99,116,111, 39, 32,116,121,112,101, 10, 45, 45, 32, 32, 32,
-    109,111,100, 32, 61, 32,109,111,100,105,102,105,101,114,115,
-     32,116,111, 32,116,104,101, 32, 39,100,101, 32,102, 97, 99,
-    116,111, 39, 32,116,121,112,101, 10, 99,108, 97,115,115, 84,
-    121,112,101,100,101,102, 32, 61, 32,123, 10, 32,117,116,121,
-    112,101, 32, 61, 32, 39, 39, 44, 10, 32,109,111,100, 32, 61,
-     32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39,
-     10,125, 10, 99,108, 97,115,115, 84,121,112,101,100,101,102,
-     46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,
-    115, 84,121,112,101,100,101,102, 10, 10, 45, 45, 32, 80,114,
-    105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 84,121,112,101,100,
-    101,102, 58,112,114,105,110,116, 32, 40,105,100,101,110,116,
-     44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 84,121,112,101,100,101,102,
-    123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,
-    116, 46, 46, 34, 32,117,116,121,112,101, 32, 61, 32, 39, 34,
-     46, 46,115,101,108,102, 46,117,116,121,112,101, 46, 46, 34,
-     39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34, 46,
-     46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,
-    101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41,
-     10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
-     34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100,
-     10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,105,116, 39,
-    115, 32,110,111,116, 32, 97, 32,118, 97,114,105, 97, 98,108,
-    101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 84,121,112,101,100,101,102, 58,105,115,118, 97,114,105,
-     97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110,
-     32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32,
-     73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,
-    117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32,
-     95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10, 32,115,
-    101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,
-    108, 97,115,115, 84,121,112,101,100,101,102, 41, 10, 32,116,
-     46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101,
-     95,116,101,109,112,108, 97,116,101, 95,116,121,112,101,115,
-     40,116, 46,116,121,112,101, 41, 10, 32, 97,112,112,101,110,
-    100,116,121,112,101,100,101,102, 40,116, 41, 10, 32,114,101,
-    116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,
-     67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32,
-     69,120,112,101, 99,116,115, 32,111,110,101, 32,115,116,114,
-    105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110,
-    103, 32,116,104,101, 32,116,121,112,101, 32,100,101,102,105,
-    110,105,116,105,111,110, 46, 10,102,117,110, 99,116,105,111,
-    110, 32, 84,121,112,101,100,101,102, 32, 40,115, 41, 10, 32,
-    105,102, 32,115,116,114,102,105,110,100, 40,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,115, 44, 32, 39, 37, 98, 60,
-     62, 39, 44, 32, 39, 39, 41, 44, 39, 91, 37, 42, 38, 93, 39,
-     41, 32,116,104,101,110, 10, 32, 32,116,111,108,117, 97, 95,
-    101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100,
-     32,116,121,112,101,100,101,102, 58, 32,112,111,105,110,116,
-    101,114,115, 32, 40, 97,110,100, 32,114,101,102,101,114,101,
-    110, 99,101,115, 41, 32, 97,114,101, 32,110,111,116, 32,115,
-    117,112,112,111,114,116,101,100, 34, 41, 10, 32,101,110,100,
-     10, 32,108,111, 99, 97,108, 32,111, 32, 61, 32,123,109,111,
-    100, 32, 61, 32, 39, 39,125, 10, 32,105,102, 32,115,116,114,
-    105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 91, 60,
-     62, 93, 34, 41, 32,116,104,101,110, 10, 32,  9, 95, 44, 95,
-     44,111, 46,116,121,112,101, 44,111, 46,117,116,121,112,101,
-     32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,
-    115, 44, 32, 34, 94, 37,115, 42, 40, 91, 94, 60, 62, 93, 43,
-     37, 98, 60, 62, 91, 94, 37,115, 93, 42, 41, 37,115, 43, 40,
-     46, 45, 41, 36, 34, 41, 10, 32,101,108,115,101, 10, 32,  9,
-    108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116,
-     40,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34,
-     44, 34, 32, 34, 41, 44, 34, 32, 34, 41, 10, 32,  9,111, 32,
-     61, 32,123, 10,  9, 32, 32,117,116,121,112,101, 32, 61, 32,
-    116, 91,116, 46,110, 93, 44, 10,  9, 32, 32,116,121,112,101,
-     32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 44, 10,  9, 32,
-     32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116,
-     44, 49, 44,116, 46,110, 45, 50, 41, 44, 10,  9, 32,125, 10,
-     32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 84,
-    121,112,101,100,101,102, 40,111, 41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/typedef.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,110,116, 97,
-    105,110,101,114, 32, 97, 98,115,116,114, 97, 99,116, 32, 99,
-    108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110,
-     32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,
-    108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47,
-     80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32,
-     49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10,
-     10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,
-    115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101,
-     59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,
-    116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,
-    111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45,
-     45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,
-    112,114,111,118,105,100,101,100, 32,104,101,114,101,117,110,
-    100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,
-    115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,
-    100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114,
-     32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,
-    105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32,
-    109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,
-    112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44,
-     10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,
-    115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,
-    105,111,110,115, 46, 10, 10, 45, 45, 32,116, 97, 98,108,101,
-     32,116,111, 32,115,116,111,114,101, 32,110, 97,109,101,115,
-    112, 97, 99,101,100, 32,116,121,112,101,100,101,102,115, 47,
-    101,110,117,109,115, 32,105,110, 32,103,108,111, 98, 97,108,
-     32,115, 99,111,112,101, 10,103,108,111, 98, 97,108, 95,116,
-    121,112,101,100,101,102,115, 32, 61, 32,123,125, 10,103,108,
-    111, 98, 97,108, 95,101,110,117,109,115, 32, 61, 32,123,125,
-     10, 10, 45, 45, 32, 67,111,110,116, 97,105,110,101,114, 32,
-     99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115,
-    101,110,116,115, 32, 97, 32, 99,111,110,116, 97,105,110,101,
-    114, 32,111,102, 32,102,101, 97,116,117,114,101,115, 32,116,
-    111, 32, 98,101, 32, 98,111,117,110,100, 10, 45, 45, 32,116,
-    111, 32,108,117, 97, 46, 10, 99,108, 97,115,115, 67,111,110,
-    116, 97,105,110,101,114, 32, 61, 10,123, 10, 32, 99,117,114,
-    114, 32, 61, 32,110,105,108, 44, 10,125, 10, 99,108, 97,115,
-    115, 67,111,110,116, 97,105,110,101,114, 46, 95, 95,105,110,
-    100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116,
-     97,105,110,101,114, 10,115,101,116,109,101,116, 97,116, 97,
-     98,108,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,
-    110,101,114, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,
-    101, 41, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116,
-     97,103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-     97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,101,
-     99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117,115,104,
-     40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105,
-     61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,
-    105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93,
-     58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105,
-     32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111,
-    112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32,119,114,
-    105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,100,
-    101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 67,111,110,116, 97,105,110,101,114, 58,115,117,112, 99,
-    111,100,101, 32, 40, 41, 10, 10,  9,105,102, 32,110,111,116,
-     32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,
-    108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,
-    101,110, 10,  9,  9,114,101,116,117,114,110, 10,  9,101,110,
-    100, 10, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10,
-     32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,
-    108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32,
-     32,105,102, 32,115,101,108,102, 91,105, 93, 58, 99,104,101,
-     99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,
-    115, 40, 41, 32,116,104,101,110, 10, 32, 32,  9,115,101,108,
-    102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10,
-     32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49,
-     10, 32,101,110,100, 10, 32,112,111,112, 40, 41, 10,101,110,
-    100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 67,111,110,116, 97,105,110,101,114, 58,104, 97,115,
-    118, 97,114, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32,105,
-     61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,
-    105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102,
-     91,105, 93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40,
-     41, 32,116,104,101,110, 10,  9,  9, 32,114,101,116,117,114,
-    110, 32, 49, 10,  9,  9,101,110,100, 10, 32, 32,105, 32, 61,
-     32,105, 43, 49, 10, 32,101,110,100, 10,  9,114,101,116,117,
-    114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,
-    116,101,114,110, 97,108, 32, 99,111,110,116, 97,105,110,101,
-    114, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,
-    117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,105,
-    110,101,114, 32, 40,115,101,108,102, 41, 10, 32,115,101,116,
-    109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44,
-     99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41,
-     10, 32,115,101,108,102, 46,110, 32, 61, 32, 48, 10, 32,115,
-    101,108,102, 46,116,121,112,101,100,101,102,115, 32, 61, 32,
-    123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,115,101,
-    108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32,
-    123,125, 10, 32,115,101,108,102, 46,101,110,117,109,115, 32,
-     61, 32,123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,
-    115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123,
-    125, 10, 32,114,101,116,117,114,110, 32,115,101,108,102, 10,
-    101,110,100, 10, 10, 45, 45, 32,112,117,115,104, 32, 99,111,
-    110,116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,
-    110, 32,112,117,115,104, 32, 40,116, 41, 10,  9,116, 46,112,
-    114,111,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116,
-     97,105,110,101,114, 46, 99,117,114,114, 10, 32, 99,108, 97,
-    115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,
-    114, 32, 61, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,112,
-    111,112, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117,
-    110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 45,
-     45,112,114,105,110,116, 40, 34,110, 97,109,101, 34, 44, 99,
-    108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,
-    117,114,114, 46,110, 97,109,101, 41, 10, 45, 45,102,111,114,
-    101, 97, 99,104, 40, 99,108, 97,115,115, 67,111,110,116, 97,
-    105,110,101,114, 46, 99,117,114,114, 46,117,115,101,114,116,
-    121,112,101,115, 44,112,114,105,110,116, 41, 10, 45, 45,112,
-    114,105,110,116, 40, 34, 95, 95, 95, 95, 95, 95, 95, 95, 95,
-     95, 95, 95, 95, 95, 34, 41, 10, 32, 99,108, 97,115,115, 67,
-    111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 32, 61,
-     32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
-     46, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10,
-     10, 45, 45, 32,103,101,116, 32, 99,117,114,114,101,110,116,
-     32,110, 97,109,101,115,112, 97, 99,101, 10,102,117,110, 99,
-    116,105,111,110, 32,103,101,116, 99,117,114,114,110, 97,109,
-    101,115,112, 97, 99,101, 32, 40, 41, 10,  9,114,101,116,117,
-    114,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101,
-     40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
-     46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 45, 45, 32,
-     97,112,112,101,110,100, 32,116,111, 32, 99,117,114,114,101,
-    110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117,
-    110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 32, 40,
-    116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,
-    115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114,
-     58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100, 10,
-     10, 45, 45, 32, 97,112,112,101,110,100, 32,116,121,112,101,
-    100,101,102, 32,116,111, 32, 99,117,114,114,101,110,116, 32,
-     99,111,110,116, 97,105,110,101,114, 10,102,117,110, 99,116,
-    105,111,110, 32, 97,112,112,101,110,100,116,121,112,101,100,
-    101,102, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,
-     99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46,
-     99,117,114,114, 58, 97,112,112,101,110,100,116,121,112,101,
-    100,101,102, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32,
-     97,112,112,101,110,100, 32,117,115,101,114,116,121,112,101,
-     32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110,
-    116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,110,
-     32, 97,112,112,101,110,100,117,115,101,114,116,121,112,101,
-     32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108,
-     97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,
-    114,114, 58, 97,112,112,101,110,100,117,115,101,114,116,121,
-    112,101, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97,
-    112,112,101,110,100, 32,101,110,117,109, 32,116,111, 32, 99,
-    117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101,
-    114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101,
-    110,100,101,110,117,109, 32, 40,116, 41, 10, 32,114,101,116,
-    117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,
-    110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100,
-    101,110,117,109, 40,116, 41, 10,101,110,100, 10, 10, 45, 45,
-     32,115,117, 98,115,116,105,116,117,116,101, 32,116,121,112,
-    101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 97,
-    112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111,
-    100, 44,116,121,112,101, 41, 10, 32,114,101,116,117,114,110,
-     32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
-     46, 99,117,114,114, 58, 97,112,112,108,121,116,121,112,101,
-    100,101,102, 40,109,111,100, 44,116,121,112,101, 41, 10,101,
-    110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102,
-     32,105,115, 32,116,121,112,101, 10,102,117,110, 99,116,105,
-    111,110, 32,102,105,110,100,116,121,112,101, 32, 40,116,121,
-    112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,
-     99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46,
-     99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,116,
-    121,112,101, 41, 10,  9,114,101,116,117,114,110, 32,116, 10,
-    101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,
-    102, 32,105,115, 32,116,121,112,101,100,101,102, 10,102,117,
-    110, 99,116,105,111,110, 32,105,115,116,121,112,101,100,101,
-    102, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114,
-    110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,
-    114, 46, 99,117,114,114, 58,105,115,116,121,112,101,100,101,
-    102, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45,
-     32,103,101,116, 32,102,117,108,108,116,121,112,101, 32, 40,
-    119,105,116,104, 32,110, 97,109,101,115,112, 97, 99,101, 41,
-     10,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116,
-    121,112,101, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32,
-     99,117,114,114, 32, 61, 32, 32, 99,108, 97,115,115, 67,111,
-    110,116, 97,105,110,101,114, 46, 99,117,114,114, 10,  9,119,
-    104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,  9, 32,
-    105,102, 32, 99,117,114,114, 32,116,104,101,110, 10,  9,  9,
-     32,105,102, 32, 99,117,114,114, 46,116,121,112,101,100,101,
-    102,115, 32, 97,110,100, 32, 99,117,114,114, 46,116,121,112,
-    101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10,  9,
-      9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46,
-    116,121,112,101,100,101,102,115, 91,116, 93, 10,  9,  9, 32,
-    101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,101,
-    114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,114,
-     46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116,
-    104,101,110, 10,  9,  9, 32, 32,114,101,116,117,114,110, 32,
-     99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91,
-    116, 93, 10,  9,  9,  9,101,110,100, 10,  9,  9,101,110,100,
-     10,  9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,
-    112,114,111,120, 10,  9,101,110,100, 10,  9,114,101,116,117,
-    114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,
-    101, 99,107,115, 32,105,102, 32,105,116, 32,114,101,113,117,
-    105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110,
-     10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
-     67,111,110,116, 97,105,110,101,114, 58,114,101,113,117,105,
-    114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116,
-     41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,
-    108,111, 99, 97,108, 32,105, 61, 49, 10,  9,108,111, 99, 97,
-    108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,119,104,
-    105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,
-     32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114,
-    101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,
-    110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61,
-     32,105, 43, 49, 10, 32,101,110,100, 10,  9,112,111,112, 40,
-     41, 10,  9,114,101,116,117,114,110, 32,114, 10,101,110,100,
-     10, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115,
-     97,112, 99,101, 10,102,117,110, 99,116,105,111,110, 32,103,
-    101,116,110, 97,109,101,115,112, 97, 99,101, 32, 40, 99,117,
-    114,114, 41, 10,  9,108,111, 99, 97,108, 32,110, 97,109,101,
-    115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,  9,119,104,105,
-    108,101, 32, 99,117,114,114, 32,100,111, 10,  9, 32,105,102,
-     32, 99,117,114,114, 32, 97,110,100, 10,  9,  9, 32, 32, 32,
-     40, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,
-    101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114,
-     32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,101,
-     32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39,
-     41, 10,  9,  9,116,104,101,110, 10,  9,  9, 32,110, 97,109,
-    101,115,112, 97, 99,101, 32, 61, 32, 40, 99,117,114,114, 46,
-    111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,
-    114, 32, 99,117,114,114, 46,110, 97,109,101, 41, 32, 46, 46,
-     32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,101,115,112,
-     97, 99,101, 10,  9,  9, 32, 45, 45,110, 97,109,101,115,112,
-     97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101,
-     32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,
-    101,115,112, 97, 99,101, 10,  9,  9,101,110,100, 10,  9, 32,
-     99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111,
-    120, 10,  9,101,110,100, 10,  9,114,101,116,117,114,110, 32,
-    110, 97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10,
-     45, 45, 32,103,101,116, 32,110, 97,109,101,115,112, 97, 99,
-    101, 32, 40,111,110,108,121, 32,110, 97,109,101,115,112, 97,
-     99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,103,101,
-    116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32,
-     40, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32,
-     61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,
-    114, 46, 99,117,114,114, 10,  9,108,111, 99, 97,108, 32,110,
-     97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,  9,
-    119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,  9,
-      9,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,
-    121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,
-    116,104,101,110, 10,  9,  9, 32,114,101,116,117,114,110, 32,
-    110, 97,109,101,115,112, 97, 99,101, 10,  9,  9,101,108,115,
-    101,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,
-    121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97,
-     99,101, 39, 32,116,104,101,110, 10,  9,  9, 32,110, 97,109,
-    101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110,
-     97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,
-    110, 97,109,101,115,112, 97, 99,101, 10,  9,  9,101,110,100,
-     10,  9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,
-    112,114,111,120, 10,  9,101,110,100, 10,  9,114,101,116,117,
-    114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110,
-    100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,
-    105,115, 32,101,110,117,109, 10,102,117,110, 99,116,105,111,
-    110, 32,105,115,101,110,117,109, 32, 40,116,121,112,101, 41,
-     10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,
-    111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105,
-    115,101,110,117,109, 40,116,121,112,101, 41, 10,101,110,100,
-     10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,102,101, 97,
-    116,117,114,101, 32,116,111, 32, 99,111,110,116, 97,105,110,
-    101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,
-    101,110,100, 32, 40,116, 41, 10, 32,115,101,108,102, 46,110,
-     32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10, 32,
-    115,101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32,
-    116, 10, 32,116, 46,112, 97,114,101,110,116, 32, 61, 32,115,
-    101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,
-    101,110,100, 32,116,121,112,101,100,101,102, 10,102,117,110,
-     99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116,
-     97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,112,
-    101,100,101,102, 32, 40,116, 41, 10, 32,108,111, 99, 97,108,
-     32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,
-    116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,
-    115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114,
-     41, 10, 32,115,101,108,102, 46,116,121,112,101,100,101,102,
-    115, 46,116,111,108,117, 97, 95,110, 32, 61, 32,115,101,108,
-    102, 46,116,121,112,101,100,101,102,115, 46,116,111,108,117,
-     97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,116,
-    121,112,101,100,101,102,115, 91,115,101,108,102, 46,116,121,
-    112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 93,
-     32, 61, 32,116, 10,  9,115,101,108,102, 46,116,121,112,101,
-    100,101,102,115, 91,116, 46,117,116,121,112,101, 93, 32, 61,
-     32,110, 97,109,101,115,112, 97, 99,101, 32, 46, 46, 32,116,
-     46,117,116,121,112,101, 10,  9,103,108,111, 98, 97,108, 95,
-    116,121,112,101,100,101,102,115, 91,110, 97,109,101,115,112,
-     97, 99,101, 46, 46,116, 46,117,116,121,112,101, 93, 32, 61,
-     32,116, 10,  9,116, 46,102,116,121,112,101, 32, 61, 32,102,
-    105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41,
-     32,111,114, 32,116, 46,116,121,112,101, 10,  9, 45, 45,112,
-    114,105,110,116, 40, 34, 97,112,112,101,110,100,105,110,103,
-     32,116,121,112,101,100,101,102, 32, 34, 46, 46,116, 46,117,
-    116,121,112,101, 46, 46, 34, 32, 97,115, 32, 34, 46, 46,110,
-     97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121,
-    112,101, 46, 46, 34, 32,119,105,116,104, 32,102,116,121,112,
-    101, 32, 34, 46, 46,116, 46,102,116,121,112,101, 41, 10,  9,
-     97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,116,
-    121,112,101, 40,110, 97,109,101,115,112, 97, 99,101, 46, 46,
-    116, 46,117,116,121,112,101, 41, 10,  9,105,102, 32,116, 46,
-    102,116,121,112,101, 32, 97,110,100, 32,105,115,101,110,117,
-    109, 40,116, 46,102,116,121,112,101, 41, 32,116,104,101,110,
-     10, 10,  9,  9,103,108,111, 98, 97,108, 95,101,110,117,109,
-    115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,
-    117,116,121,112,101, 93, 32, 61, 32,116,114,117,101, 10,  9,
-    101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,
-    101,110,100, 32,117,115,101,114,116,121,112,101, 58, 32,114,
-    101,116,117,114,110, 32,102,117,108,108, 32,116,121,112,101,
-     10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
-     67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110,
-    100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10,  9,
-    108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114,
-     10,  9,105,102, 32,116, 32, 61, 61, 32, 40,115,101,108,102,
-     46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,
-    111,114, 32,115,101,108,102, 46,110, 97,109,101, 41, 32,116,
-    104,101,110, 10,  9,  9, 99,111,110,116, 97,105,110,101,114,
-     32, 61, 32,115,101,108,102, 46,112,114,111,120, 10,  9,101,
-    108,115,101, 10,  9,  9, 99,111,110,116, 97,105,110,101,114,
-     32, 61, 32,115,101,108,102, 10,  9,101,110,100, 10,  9,108,
-    111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97,
-    109,101,115,112, 97, 99,101, 40, 99,111,110,116, 97,105,110,
-    101,114, 41, 32, 46, 46, 32,116, 10,  9, 99,111,110,116, 97,
-    105,110,101,114, 46,117,115,101,114,116,121,112,101,115, 91,
-    116, 93, 32, 61, 32,102,116, 10,  9, 95,117,115,101,114,116,
-    121,112,101, 91,102,116, 93, 32, 61, 32,102,116, 10,  9,114,
-    101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 10, 45,
-     45, 32, 97,112,112,101,110,100, 32,101,110,117,109, 10,102,
-    117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,
-    110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,101,
-    110,117,109, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32,
-    110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,116,
-    110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115,
-     67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41,
-     10, 32,115,101,108,102, 46,101,110,117,109,115, 46,116,111,
-    108,117, 97, 95,110, 32, 61, 32,115,101,108,102, 46,101,110,
-    117,109,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49,
-     10, 32,115,101,108,102, 46,101,110,117,109,115, 91,115,101,
-    108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97, 95,
-    110, 93, 32, 61, 32,116, 10,  9,103,108,111, 98, 97,108, 95,
-    101,110,117,109,115, 91,110, 97,109,101,115,112, 97, 99,101,
-     46, 46,116, 46,110, 97,109,101, 93, 32, 61, 32,116, 10,101,
-    110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110,
-    101, 32,108,117, 97, 32,102,117,110, 99,116,105,111,110, 32,
-    110, 97,109,101, 32,111,118,101,114,108,111, 97,100, 10,102,
-    117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,
-    110,116, 97,105,110,101,114, 58,111,118,101,114,108,111, 97,
-    100, 32, 40,108,110, 97,109,101, 41, 10, 32,105,102, 32,110,
-    111,116, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91,
-    108,110, 97,109,101, 93, 32,116,104,101,110, 10, 32, 32,115,
-    101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,
-    101, 93, 32, 61, 32, 48, 10, 32,101,108,115,101, 10, 32, 32,
-    115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,
-    109,101, 93, 32, 61, 32,115,101,108,102, 46,108,110, 97,109,
-    101,115, 91,108,110, 97,109,101, 93, 32, 43, 32, 49, 10, 32,
-    101,110,100, 10, 32,114,101,116,117,114,110, 32,102,111,114,
-    109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,108,102,
-     46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 41,
-     10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,108,105,101,
-    115, 32,116,121,112,101,100,101,102, 58, 32,114,101,116,117,
-    114,110,115, 32,116,104,101, 32, 39,116,104,101, 32,102, 97,
-     99,116,111, 39, 32,109,111,100,105,102,105,101,114, 32, 97,
-    110,100, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,
-    114, 58, 97,112,112,108,121,116,121,112,101,100,101,102, 32,
-     40,109,111,100, 44,116,121,112,101, 41, 10,  9,105,102, 32,
-    103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115,
-     91,116,121,112,101, 93, 32,116,104,101,110, 10,  9,  9, 45,
-     45,112,114,105,110,116, 40, 34,102,111,117,110,100, 32,116,
-    121,112,101,100,101,102, 32, 34, 46, 46,103,108,111, 98, 97,
-    108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101,
-     93, 46,116,121,112,101, 41, 10,  9,  9,108,111, 99, 97,108,
-     32,109,111,100, 49, 44, 32,116,121,112,101, 49, 32, 61, 32,
-    103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115,
-     91,116,121,112,101, 93, 46,109,111,100, 44, 32,103,108,111,
-     98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121,
-    112,101, 93, 46,102,116,121,112,101, 10,  9,  9,108,111, 99,
-     97,108, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 32,
-     61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40,
-    109,111,100, 46, 46, 34, 32, 34, 46, 46,109,111,100, 49, 44,
-     32,116,121,112,101, 49, 41, 10,  9,  9, 45, 45,114,101,116,
-    117,114,110, 32,109,111,100, 50, 32, 46, 46, 32, 39, 32, 39,
-     32, 46, 46, 32,109,111,100, 49, 44, 32,116,121,112,101, 50,
-     10,  9,  9,114,101,116,117,114,110, 32,109,111,100, 50, 44,
-     32,116,121,112,101, 50, 10,  9,101,110,100, 10,  9,100,111,
-     32,114,101,116,117,114,110, 32,109,111,100, 44,116,121,112,
-    101, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,
-    104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97,
-     32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
-    101,114, 58,105,115,116,121,112,101,100,101,102, 32, 40,116,
-    121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118,
-     32, 61, 32,115,101,108,102, 10, 32,119,104,105,108,101, 32,
-    101,110,118, 32,100,111, 10, 32, 32,105,102, 32,101,110,118,
-     46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10,
-     32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,
-     32,119,104,105,108,101, 32,101,110,118, 46,116,121,112,101,
-    100,101,102,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,
-    105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115,
-     91,105, 93, 46,117,116,121,112,101, 32, 61, 61, 32,116,121,
-    112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32,
-     32, 32,114,101,116,117,114,110, 32,116,121,112,101, 10, 32,
-     32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32,
-     32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,
-    101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118,
-     32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32,
-    101,110,100, 10, 32,114,101,116,117,114,110, 32,110,105,108,
-     10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,
-    102,105,110,100, 95,101,110,117,109, 95,118, 97,114, 40,118,
-     97,114, 41, 10, 10,  9,105,102, 32,116,111,110,117,109, 98,
-    101,114, 40,118, 97,114, 41, 32,116,104,101,110, 32,114,101,
-    116,117,114,110, 32,118, 97,114, 32,101,110,100, 10, 10,  9,
-    108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,108, 97,115,115,
-     67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10,
-      9,119,104,105,108,101, 32, 99, 32,100,111, 10,  9,  9,108,
-    111, 99, 97,108, 32,110,115, 32, 61, 32,103,101,116,110, 97,
-    109,101,115,112, 97, 99,101, 40, 99, 41, 10,  9,  9,102,111,
-    114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, 40,
-     95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 41, 32,
-    100,111, 10,  9,  9,  9,105,102, 32,109, 97,116, 99,104, 95,
-    116,121,112,101, 40,118, 97,114, 44, 32,118, 44, 32,110,115,
-     41, 32,116,104,101,110, 10,  9,  9,  9,  9,114,101,116,117,
-    114,110, 32,118, 10,  9,  9,  9,101,110,100, 10,  9,  9,101,
-    110,100, 10,  9,  9,105,102, 32, 99, 46, 98, 97,115,101, 32,
-     97,110,100, 32, 99, 46, 98, 97,115,101, 32,126, 61, 32, 39,
-     39, 32,116,104,101,110, 10,  9,  9,  9, 99, 32, 61, 32, 95,
-    103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,
-     99, 58,102,105,110,100,116,121,112,101, 40, 99, 46, 98, 97,
-    115,101, 41, 93, 10,  9,  9,101,108,115,101, 10,  9,  9,  9,
-     99, 32, 61, 32,110,105,108, 10,  9,  9,101,110,100, 10,  9,
-    101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,118, 97,
-    114, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107,
-     32,105,102, 32,105,115, 32, 97, 32,114,101,103,105,115,116,
-    101,114,101,100, 32,116,121,112,101, 58, 32,114,101,116,117,
-    114,110, 32,102,117,108,108, 32,116,121,112,101, 32,111,114,
-     32,110,105,108, 10,102,117,110, 99,116,105,111,110, 32, 99,
-    108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,102,
-    105,110,100,116,121,112,101, 32, 40,116, 41, 10, 10,  9,116,
-     32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,
-    116, 44, 32, 34, 61, 46, 42, 34, 44, 32, 34, 34, 41, 10,  9,
-    105,102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104,
-    101,110, 10,  9, 32,114,101,116,117,114,110, 32,116, 10,  9,
-    101,110,100, 10, 10,  9,108,111, 99, 97,108, 32, 95, 44, 95,
-     44,101,109, 32, 61, 32,115,116,114,105,110,103, 46,102,105,
-    110,100, 40,116, 44, 32, 34, 40, 91, 38, 37, 42, 93, 41, 37,
-    115, 42, 36, 34, 41, 10,  9,116, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42,
-     40, 91, 38, 37, 42, 93, 41, 37,115, 42, 36, 34, 44, 32, 34,
-     34, 41, 10,  9,112, 32, 61, 32,115,101,108,102, 10,  9,119,
-    104,105,108,101, 32,112, 32, 97,110,100, 32,116,121,112,101,
-     40,112, 41, 61, 61, 39,116, 97, 98,108,101, 39, 32,100,111,
-     10,  9,  9,108,111, 99, 97,108, 32,115,116, 32, 61, 32,103,
-    101,116,110, 97,109,101,115,112, 97, 99,101, 40,112, 41, 10,
-     10,  9,  9,102,111,114, 32,105, 61, 95,103,108,111, 98, 97,
-    108, 95,116,121,112,101,115, 46,110, 44, 49, 44, 45, 49, 32,
-    100,111, 32, 45, 45, 32,105,110, 32,114,101,118,101,114,115,
-    101, 32,111,114,100,101,114, 10, 10,  9,  9,  9,105,102, 32,
-    109, 97,116, 99,104, 95,116,121,112,101, 40,116, 44, 32, 95,
-    103,108,111, 98, 97,108, 95,116,121,112,101,115, 91,105, 93,
-     44, 32,115,116, 41, 32,116,104,101,110, 10,  9,  9,  9,  9,
-    114,101,116,117,114,110, 32, 95,103,108,111, 98, 97,108, 95,
-    116,121,112,101,115, 91,105, 93, 46, 46, 40,101,109, 32,111,
-    114, 32, 34, 34, 41, 10,  9,  9,  9,101,110,100, 10,  9,  9,
-    101,110,100, 10,  9,  9,105,102, 32,112, 46, 98, 97,115,101,
-     32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32,
-     39, 39, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126,
-     61, 32,116, 32,116,104,101,110, 10,  9,  9,  9, 45, 45,112,
-    114,105,110,116, 40, 34,116,121,112,101, 32,105,115, 32, 34,
-     46, 46,116, 46, 46, 34, 44, 32,112, 32,105,115, 32, 34, 46,
-     46,112, 46, 98, 97,115,101, 46, 46, 34, 32,115,101,108,102,
-     46,116,121,112,101, 32,105,115, 32, 34, 46, 46,115,101,108,
-    102, 46,116,121,112,101, 46, 46, 34, 32,115,101,108,102, 46,
-    110, 97,109,101, 32,105,115, 32, 34, 46, 46,115,101,108,102,
-     46,110, 97,109,101, 41, 10,  9,  9,  9,112, 32, 61, 32, 95,
-    103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,
-    112, 58,102,105,110,100,116,121,112,101, 40,112, 46, 98, 97,
-    115,101, 41, 93, 10,  9,  9,101,108,115,101, 10,  9,  9,  9,
-    112, 32, 61, 32,110,105,108, 10,  9,  9,101,110,100, 10,  9,
-    101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,110,105,
-    108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110,
-     32, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,
-    116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 10,
-      9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46,
-    110, 32, 61, 32, 95,103,108,111, 98, 97,108, 95,116,121,112,
-    101,115, 46,110, 32, 43, 49, 10,  9, 95,103,108,111, 98, 97,
-    108, 95,116,121,112,101,115, 91, 95,103,108,111, 98, 97,108,
-     95,116,121,112,101,115, 46,110, 93, 32, 61, 32,116, 10,  9,
-     95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 95,104,
-     97,115,104, 91,116, 93, 32, 61, 32, 49, 10,  9,105,102, 32,
-     99,108, 97,115,115, 32,116,104,101,110, 32, 97,112,112,101,
-    110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,116,
-     44, 32, 99,108, 97,115,115, 41, 32,101,110,100, 10,101,110,
-    100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,
-    101,110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,
-    116, 44, 99,108, 97,115,115, 41, 10,  9,105,102, 32, 95,103,
-    108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116,
-     93, 32,116,104,101,110, 10,  9,  9, 99,108, 97,115,115, 46,
-    102,108, 97,103,115, 32, 61, 32, 95,103,108,111, 98, 97,108,
-     95, 99,108, 97,115,115,101,115, 91,116, 93, 46,102,108, 97,
-    103,115, 10,  9,  9, 99,108, 97,115,115, 46,108,110, 97,109,
-    101,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108,
-     97,115,115,101,115, 91,116, 93, 46,108,110, 97,109,101,115,
-     10,  9,  9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 99,
-    108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,
-     97,110,100, 32, 40, 95,103,108,111, 98, 97,108, 95, 99,108,
-     97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,126,
-     61, 32, 39, 39, 41, 32,116,104,101,110, 10,  9,  9,  9, 99,
-    108, 97,115,115, 46, 98, 97,115,101, 32, 61, 32, 95,103,108,
-    111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93,
-     46, 98, 97,115,101, 32,111,114, 32, 99,108, 97,115,115, 46,
-     98, 97,115,101, 10,  9,  9,101,110,100, 10,  9,101,110,100,
-     10,  9, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,
-    101,115, 91,116, 93, 32, 61, 32, 99,108, 97,115,115, 10,  9,
-     99,108, 97,115,115, 46,102,108, 97,103,115, 32, 61, 32, 99,
-    108, 97,115,115, 46,102,108, 97,103,115, 32,111,114, 32,123,
-    125, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110,
-     32,109, 97,116, 99,104, 95,116,121,112,101, 40, 99,104,105,
-    108,100,116,121,112,101, 44, 32,114,101,103,116,121,112,101,
-     44, 32,115,116, 41, 10, 45, 45,112,114,105,110,116, 40, 34,
-    102,105,110,100,116,121,112,101, 32, 34, 46, 46, 99,104,105,
-    108,100,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,114,
-    101,103,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,115,
-    116, 41, 10,  9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61,
-     32,115,116,114,105,110,103, 46,102,105,110,100, 40,114,101,
-    103,116,121,112,101, 44, 32, 99,104,105,108,100,116,121,112,
-    101, 44, 32, 45,115,116,114,105,110,103, 46,108,101,110, 40,
-     99,104,105,108,100,116,121,112,101, 41, 44, 32,116,114,117,
-    101, 41, 10,  9,105,102, 32, 98, 32,116,104,101,110, 10, 10,
-      9,  9,105,102, 32,101, 32, 61, 61, 32,115,116,114,105,110,
-    103, 46,108,101,110, 40,114,101,103,116,121,112,101, 41, 32,
-     97,110,100, 10,  9,  9,  9,  9, 40, 98, 32, 61, 61, 32, 49,
-     32,111,114, 32, 40,115,116,114,105,110,103, 46,115,117, 98,
-     40,114,101,103,116,121,112,101, 44, 32, 98, 45, 49, 44, 32,
-     98, 45, 49, 41, 32, 61, 61, 32, 39, 58, 39, 32, 97,110,100,
-     10,  9,  9,  9,  9,115,116,114,105,110,103, 46,115,117, 98,
-     40,114,101,103,116,121,112,101, 44, 32, 49, 44, 32, 98, 45,
-     49, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,115,117,
-     98, 40,115,116, 44, 32, 49, 44, 32, 98, 45, 49, 41, 41, 41,
-     32,116,104,101,110, 10,  9,  9,  9,114,101,116,117,114,110,
-     32,116,114,117,101, 10,  9,  9,101,110,100, 10,  9,101,110,
-    100, 10, 10,  9,114,101,116,117,114,110, 32,102, 97,108,115,
-    101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110,
-     32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104,
-    105,108,100,115, 40,115,101,108,102, 44, 32,116, 41, 10, 10,
-      9,108,111, 99, 97,108, 32,116, 99,104,105,108,100, 10,  9,
-    105,102, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,
-    112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,
-    114, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,112,
-    101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101,
-     39, 32,116,104,101,110, 10,  9,  9,102,111,114, 32,107, 44,
-    118, 32,105,110, 32,105,112, 97,105,114,115, 40,115,101,108,
-    102, 41, 32,100,111, 10,  9,  9,  9,105,102, 32,118, 46, 99,
-    108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39, 99,108,
-     97,115,115, 39, 32,111,114, 32,118, 46, 99,108, 97,115,115,
-    116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112,
-     97, 99,101, 39, 32,116,104,101,110, 10,  9,  9,  9,  9,105,
-    102, 32,118, 46,116,121,112,101,100,101,102,115, 32, 97,110,
-    100, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93,
-     32,116,104,101,110, 10,  9,  9,  9,  9, 32,114,101,116,117,
-    114,110, 32,118, 46,116,121,112,101,100,101,102,115, 91,116,
-     93, 10,  9,  9,  9,  9,101,108,115,101,105,102, 32,118, 46,
-    117,115,101,114,116,121,112,101,115, 32, 97,110,100, 32,118,
-     46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116,
-    104,101,110, 10,  9,  9,  9,  9, 32,114,101,116,117,114,110,
-     32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93,
-     10,  9,  9,  9,  9,101,110,100, 10,  9,  9,  9,  9,116, 99,
-    104,105,108,100, 32, 61, 32,102,105,110,100,116,121,112,101,
-     95,111,110, 95, 99,104,105,108,100,115, 40,118, 44, 32,116,
-     41, 10,  9,  9,  9,  9,105,102, 32,116, 99,104,105,108,100,
-     32,116,104,101,110, 32,114,101,116,117,114,110, 32,116, 99,
-    104,105,108,100, 32,101,110,100, 10,  9,  9,  9,101,110,100,
-     10,  9,  9,101,110,100, 10,  9,101,110,100, 10,  9,114,101,
-    116,117,114,110, 32,110,105,108, 10, 10,101,110,100, 10, 10,
-    102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,
-    111,110,116, 97,105,110,101,114, 58,105,115,101,110,117,109,
-     32, 40,116,121,112,101, 41, 10, 32,105,102, 32,103,108,111,
-     98, 97,108, 95,101,110,117,109,115, 91,116,121,112,101, 93,
-     32,116,104,101,110, 10,  9,114,101,116,117,114,110, 32,116,
-    121,112,101, 10, 32,101,108,115,101, 10, 32,  9,114,101,116,
-    117,114,110, 32,102, 97,108,115,101, 10, 32,101,110,100, 10,
-     10, 32,108,111, 99, 97,108, 32, 98, 97,115,101,116,121,112,
-    101, 32, 61, 32,103,115,117, 98, 40,116,121,112,101, 44, 34,
-     94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10, 32,108,111, 99,
-     97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32,
-    119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 32, 32,
-    105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104,
-    101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49,
-     10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,101,
-    110,117,109,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,
-    105,102, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93,
-     46,110, 97,109,101, 32, 61, 61, 32, 98, 97,115,101,116,121,
-    112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32,
-     32, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 32,
-     32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32,
-     32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,
-    101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118,
-     32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32,
-    101,110,100, 10, 32,114,101,116,117,114,110, 32,102, 97,108,
-    115,101, 10,101,110,100, 10, 10,109,101,116,104,111,100,105,
-    115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115,
-    101, 32, 45, 45, 32, 97, 32,103,108,111, 98, 97,108, 10, 10,
-     45, 45, 32,112, 97,114,115,101, 32, 99,104,117,110,107, 10,
-    102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,
-    111,110,116, 97,105,110,101,114, 58,100,111,112, 97,114,115,
-    101, 32, 40,115, 41, 10, 45, 45,112,114,105,110,116, 32, 40,
-     34,112, 97,114,115,101, 32, 34, 46, 46,115, 41, 10, 10, 32,
-     45, 45, 32,116,114,121, 32,116,104,101, 32,112, 97,114,115,
-    101,114, 32,104,111,111,107, 10, 32,100,111, 10, 32,  9,108,
-    111, 99, 97,108, 32,115,117, 98, 32, 61, 32,112, 97,114,115,
-    101,114, 95,104,111,111,107, 40,115, 41, 10, 32,  9,105,102,
-     32,115,117, 98, 32,116,104,101,110, 10, 32,  9,  9,114,101,
-    116,117,114,110, 32,115,117, 98, 10, 32,  9,101,110,100, 10,
-     32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,
-    104,101, 32,110,117,108,108, 32,115,116, 97,116,101,109,101,
-    110,116, 10, 32,100,111, 10, 32,  9,108,111, 99, 97,108, 32,
-     98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105,
-    110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115,
-     42, 59, 34, 41, 10, 32,  9,105,102, 32, 98, 32,116,104,101,
-    110, 10, 32,  9,  9,114,101,116,117,114,110, 32,115,116,114,
-    115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32,  9,101,110,
-    100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121,
-     32,101,109,112,116,121, 32,118,101,114, 98, 97,116,105,109,
-     32,108,105,110,101, 10, 32,100,111, 10, 32,  9,108,111, 99,
-     97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,
-    116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34,
-     94, 37,115, 42, 36, 92,110, 34, 41, 10, 32,  9,105,102, 32,
-     98, 32,116,104,101,110, 10, 32,  9,  9,114,101,116,117,114,
-    110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41,
-     10, 32,  9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45,
-     45, 32,116,114,121, 32, 76,117, 97, 32, 99,111,100,101, 10,
-     32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101,
-     44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,100,
-     40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 49, 92, 50,
-     41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110,
-     10, 32, 32, 32, 67,111,100,101, 40,115,116,114,115,117, 98,
-     40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10, 32, 32,
-     32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,
-    115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,
-    110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99,
-    111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108,
-     32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,
-    102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98,
-     92, 51, 92, 52, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,
-    116,104,101,110, 10,  9, 99,111,100,101, 32, 61, 32, 39,123,
-     39, 46, 46,115,116,114,115,117, 98, 40, 99,111,100,101, 44,
-     50, 44, 45, 50, 41, 46, 46, 39, 92,110,125, 92,110, 39, 10,
-      9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44,
-     39,114, 39, 41, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,
-    118,101,114, 98, 97,116,105,109, 32, 99,111,100,101, 32,102,
-    111,114, 32, 39,114, 39,101,103,105,115,116,101,114, 32,102,
-    114, 97,103,109,101,110,116, 10,  9,114,101,116,117,114,110,
-     32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,
-     32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45,
-     32,116,114,121, 32, 67, 32, 99,111,100,101, 32,102,111,114,
-     32,112,114,101, 97,109, 98,108,101, 32,115,101, 99,116,105,
-    111,110, 10, 32,100,111, 10, 32,  9,108,111, 99, 97,108, 32,
-     98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105,
-    110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115,
-     42, 40, 37, 98, 92, 53, 92, 54, 41, 34, 41, 10, 32,  9,105,
-    102, 32, 98, 32,116,104,101,110, 10, 32,  9,  9, 99,111,100,
-    101, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,
-     99,111,100,101, 44, 32, 50, 44, 32, 45, 50, 41, 46, 46, 34,
-     92,110, 34, 10,  9,  9, 86,101,114, 98, 97,116,105,109, 40,
-     99,111,100,101, 44, 32, 39, 39, 41, 10,  9,  9,114,101,116,
-    117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40,
-    115, 44, 32,101, 43, 49, 41, 10, 32,  9,101,110,100, 10, 32,
-    101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101,
-    102, 97,117,108,116, 95,112,114,111,112,101,114,116,121, 32,
-    100,105,114,101, 99,116,105,118,101, 10, 32,100,111, 10, 32,
-      9,108,111, 99, 97,108, 32, 98, 44,101, 44,112,116,121,112,
-    101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32,
-     34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 80,
-     69, 82, 84, 89, 95, 84, 89, 80, 69, 37,115, 42, 37, 40, 43,
-     37,115, 42, 40, 91, 94, 37, 41, 37,115, 93, 42, 41, 37,115,
-     42, 37, 41, 43, 37,115, 42, 59, 63, 34, 41, 10, 32,  9,105,
-    102, 32, 98, 32,116,104,101,110, 10, 32,  9,  9,105,102, 32,
-    110,111,116, 32,112,116,121,112,101, 32,111,114, 32,112,116,
-    121,112,101, 32, 61, 61, 32, 34, 34, 32,116,104,101,110, 10,
-     32,  9,  9,  9,112,116,121,112,101, 32, 61, 32, 34,100,101,
-    102, 97,117,108,116, 34, 10, 32,  9,  9,101,110,100, 10, 32,
-      9,  9,115,101,108,102, 58,115,101,116, 95,112,114,111,112,
-    101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101,
-     41, 10,  9, 32,  9,114,101,116,117,114,110, 32,115,116,114,
-    115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32,  9,101,
-    110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,
-    121, 32,112,114,111,116,101, 99,116,101,100, 95,100,101,115,
-    116,114,117, 99,116,111,114, 32,100,105,114,101, 99,116,105,
-    118,101, 10, 32,100,111, 10, 32,  9,108,111, 99, 97,108, 32,
-     98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,
-    110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85,
-     65, 95, 80, 82, 79, 84, 69, 67, 84, 69, 68, 95, 68, 69, 83,
-     84, 82, 85, 67, 84, 79, 82, 37,115, 42, 59, 63, 34, 41, 10,
-      9,105,102, 32, 98, 32,116,104,101,110, 10,  9,  9,105,102,
-     32,115,101,108,102, 46,115,101,116, 95,112,114,111,116,101,
-     99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114,
-     32,116,104,101,110, 10,  9, 32,  9,  9,115,101,108,102, 58,
-    115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100,
-    101,115,116,114,117, 99,116,111,114, 40,116,114,117,101, 41,
-     10,  9, 32,  9,101,110,100, 10, 32,  9,  9,114,101,116,117,
-    114,110, 32,115,116,114,115,117, 98, 40,115, 44, 32,101, 43,
-     49, 41, 10, 32,  9,101,110,100, 10, 32,101,110,100, 10, 10,
-     32, 45, 45, 32,116,114,121, 32, 39,101,120,116,101,114,110,
-     39, 32,107,101,121,119,111,114,100, 10, 32,100,111, 10, 32,
-      9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116,
-    114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94,
-     37,115, 42,101,120,116,101,114,110, 37,115, 43, 34, 41, 10,
-     32,  9,105,102, 32, 98, 32,116,104,101,110, 10,  9,  9, 45,
-     45, 32,100,111, 32,110,111,116,104,105,110,103, 10, 32,  9,
-      9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,
-    115, 44, 32,101, 43, 49, 41, 10, 32,  9,101,110,100, 10, 32,
-    101,110,100, 10,  9, 10, 32, 45, 45, 32,116,114,121, 32, 39,
-    118,105,114,116,117, 97,108, 39, 32,107,101,121,119,111,114,
-    107,100, 10, 32,100,111, 10, 32,  9,108,111, 99, 97,108, 32,
-     98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,
-    110,100, 40,115, 44, 32, 34, 94, 37,115, 42,118,105,114,116,
-    117, 97,108, 37,115, 43, 34, 41, 10, 32,  9,105,102, 32, 98,
-     32,116,104,101,110, 10, 32,  9,  9,109,101,116,104,111,100,
-    105,115,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,
-    101, 10, 32,  9,  9,114,101,116,117,114,110, 32,115,116,114,
-    115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32,  9,101,
-    110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,
-    121, 32,108, 97, 98,101,108,115, 32, 40,112,117, 98,108,105,
-     99, 44, 32,112,114,105,118, 97,116,101, 44, 32,101,116, 99,
-     41, 10, 32,100,111, 10, 32,  9,108,111, 99, 97,108, 32, 98,
-     44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,
-    100, 40,115, 44, 32, 34, 94, 37,115, 42, 37,119, 42, 37,115,
-     42, 58, 91, 94, 58, 93, 34, 41, 10, 32,  9,105,102, 32, 98,
-     32,116,104,101,110, 10, 32,  9,  9,114,101,116,117,114,110,
-     32,115,116,114,115,117, 98, 40,115, 44, 32,101, 41, 32, 45,
-     45, 32,112,114,101,115,101,114,118,101, 32,116,104,101, 32,
-     91, 94, 58, 93, 10, 32,  9,101,110,100, 10, 32,101,110,100,
-     10, 10, 32, 45, 45, 32,116,114,121, 32,109,111,100,117,108,
-    101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98,
-     44,101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,
-    115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,
-    109,111,100,117,108,101, 37,115, 37,115, 42, 40, 91, 95, 37,
-    119, 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,
-    123,125, 41, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98,
-     32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95,
-     99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,
-     44, 98, 44,101, 41, 10, 32, 32, 32, 77,111,100,117,108,101,
-     40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,
-    114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115,
-     44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,
-    100, 10, 10, 32, 45, 45, 32,116,114,121, 32,110, 97,109,101,
-    115, 97,112, 99,101, 10, 32,100,111, 10, 32, 32,108,111, 99,
-     97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,
-    121, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34,
-     94, 37,115, 42,110, 97,109,101,115,112, 97, 99,101, 37,115,
-     37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42,
-     41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63,
-     34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10,
-     32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61,
-     32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10,
-     32, 32, 32, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97,
-    109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114,101,116,
-    117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43,
-     49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10,
-     32, 45, 45, 32,116,114,121, 32,100,101,102,105,110,101, 10,
-     32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101,
-     44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100,
-     40,115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101,
-     37,115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94,
-     92,110, 93, 42, 92,110, 37,115, 42, 34, 41, 10, 32, 32,105,
-    102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,
-    114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117,
-     98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 68,101,102,
-    105,110,101, 40,110, 97,109,101, 41, 10, 32, 32, 32,114,101,
-    116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101,
-     43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10,
-     10, 32, 45, 45, 32,116,114,121, 32,101,110,117,109,101,114,
-     97,116,101,115, 10, 10, 32,100,111, 10, 32, 32,108,111, 99,
-     97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,
-    121, 44,118, 97,114,110, 97,109,101, 32, 61, 32,115,116,114,
-    102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,117,
-    109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,
-    123,125, 41, 37,115, 42, 40, 91, 94, 37,115, 59, 93, 42, 41,
-     37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102,
-     32, 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45,101,114,
-    114,111,114, 40, 34, 35, 83,111,114,114,121, 44, 32,100,101,
-     99,108, 97,114, 97,116,105,111,110, 32,111,102, 32,101,110,
-    117,109,115, 32, 97,110,100, 32,118, 97,114,105, 97, 98,108,
-    101,115, 32,111,110, 32,116,104,101, 32,115, 97,109,101, 32,
-    115,116, 97,116,101,109,101,110,116, 32,105,115, 32,110,111,
-    116, 32,115,117,112,112,111,114,116,101,100, 46, 92,110, 68,
-    101, 99,108, 97,114,101, 32,121,111,117,114, 32,118, 97,114,
-    105, 97, 98,108,101, 32,115,101,112, 97,114, 97,116,101,108,
-    121, 32, 40,101,120, 97,109,112,108,101, 58, 32, 39, 34, 46,
-     46,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,
-    110, 97,109,101, 46, 46, 34, 59, 39, 41, 34, 41, 10, 32, 32,
-     32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,
-    116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32,
-     32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101,
-     44, 98,111,100,121, 44,118, 97,114,110, 97,109,101, 41, 10,
-     32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117,
-     98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10,
-     32,101,110,100, 10, 10, 45, 45, 32,100,111, 10, 45, 45, 32,
-     32,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101,
-     44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100,
-     40,115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43,
-     40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,
-    115, 42, 59, 63, 37,115, 42, 34, 41, 10, 45, 45, 32, 32,105,
-    102, 32, 98, 32,116,104,101,110, 10, 45, 45, 32, 32, 32, 95,
-     99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,
-    115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 45, 45, 32, 32,
-     32, 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101,
-     44, 98,111,100,121, 41, 10, 45, 45, 32, 32,114,101,116,117,
-    114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49,
-     41, 10, 45, 45, 32, 32,101,110,100, 10, 45, 45, 32,101,110,
-    100, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32,
-     98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61,
-     32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115,
-     42,116,121,112,101,100,101,102, 37,115, 43,101,110,117,109,
-     91, 94,123, 93, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40,
-     91, 37,119, 95, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42,
-     59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,
-    104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,
-    100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98,
-     44,101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,
-    101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32,
-     32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,
-    115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,
-    110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,111,112,101,
-    114, 97,116,111,114, 10, 32,100,111, 10, 32, 32,108,111, 99,
-     97,108, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,
-    100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,
-    116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40,
-     91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58,
-     60, 62, 44, 93, 45, 37,115, 43,111,112,101,114, 97,116,111,
-    114, 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115,
-     93, 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42,
-     40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42,
-     59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116,
-     32, 98, 32,116,104,101,110, 10,  9,  9, 32, 45, 45, 32,116,
-    114,121, 32,105,110,108,105,110,101, 10, 32, 32, 32, 98, 44,
-    101, 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103,
-     44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,
-    100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93,
-     91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45,
-     37,115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42,
-     40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115,
-     42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,
-    110, 63,115, 63,116, 63, 41, 91, 37,115, 92,110, 93, 42, 37,
-     98,123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32,
-     32,101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98,
-     32,116,104,101,110, 10, 32, 32,  9, 45, 45, 32,116,114,121,
-     32, 99, 97,115,116, 32,111,112,101,114, 97,116,111,114, 10,
-     32, 32,  9, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,
-    100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,
-    116,114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42,
-     40,111,112,101,114, 97,116,111,114, 41, 37,115, 43, 40, 91,
-     37,119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 37,115, 93,
-     43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40,
-     99, 63,111, 63,110, 63,115, 63,116, 63, 41, 34, 41, 59, 10,
-     32, 32,  9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32,
-      9,  9,108,111, 99, 97,108, 32, 95, 44,105,101, 32, 61, 32,
-    115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32,
-     34, 94, 37,115, 42, 37, 98,123,125, 34, 44, 32,101, 43, 49,
-     41, 10, 32, 32,  9,  9,105,102, 32,105,101, 32,116,104,101,
-    110, 10, 32, 32,  9,  9,  9,101, 32, 61, 32,105,101, 10, 32,
-     32,  9,  9,101,110,100, 10, 32, 32,  9,101,110,100, 10, 32,
-     32,101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,
-    110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101,
-     32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101,
-     41, 10, 32, 32, 32, 79,112,101,114, 97,116,111,114, 40,100,
-    101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,
-    110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,
-    115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32,
-     32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,
-    116,114,121, 32,102,117,110, 99,116,105,111,110, 10, 32,100,
-    111, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101,
-     44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116,
-     32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94,
-     37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119,
-     37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93,
-     41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99,
-     63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63,
-     37,115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10,
-     32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,
-    108, 44, 97,114,103, 44, 99,111,110,115,116, 44,118,105,114,
-    116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34,
-     94, 37,115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,
-    115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111,
-     63,110, 63,115, 63,116, 63, 41, 37,115, 42, 40, 61, 63, 37,
-    115, 42, 48, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,
-     32, 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110,
-     10, 32, 32,  9, 45, 45, 32,116,114,121, 32,102,117,110, 99,
-    116,105,111,110, 32,119,105,116,104, 32,116,101,109,112,108,
-     97,116,101, 10, 32, 32,  9, 98, 44,101, 44,100,101, 99,108,
-     44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,
-    114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,
-    126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38,
-     58, 60, 62, 93, 42, 91, 95, 37,119, 93, 37, 98, 60, 62, 41,
-     37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,
-    111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,
-    115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32,
-     32,101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98,
-     32,116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121,
-     32, 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,
-    114, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101,
-     10, 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,
-    103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,
-    110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119,
-     93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40,
-     99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59,
-     37,115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,
-    102, 32, 98, 32,116,104,101,110, 10, 32, 32,  9,105,102, 32,
-    118,105,114,116, 32, 97,110,100, 32,115,116,114,105,110,103,
-     46,102,105,110,100, 40,118,105,114,116, 44, 32, 34, 91, 61,
-     48, 93, 34, 41, 32,116,104,101,110, 10, 32, 32,  9,  9,105,
-    102, 32,115,101,108,102, 46,102,108, 97,103,115, 32,116,104,
-    101,110, 10, 32, 32,  9,  9,  9,115,101,108,102, 46,102,108,
-     97,103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,
-    108, 32, 61, 32,116,114,117,101, 10, 32, 32,  9,  9,101,110,
-    100, 10, 32, 32,  9,101,110,100, 10, 32, 32, 32, 95, 99,117,
-    114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117,
-     98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110,
-     99,116,105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44,
-     99,111,110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,
-    110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41,
-     10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45,
-     45, 32,116,114,121, 32,105,110,108,105,110,101, 32,102,117,
-    110, 99,116,105,111,110, 10, 32,100,111, 10, 32, 32,108,111,
-     99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,
-    103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,
-    110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 94, 37, 40,
-     92,110, 93, 43, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,
-    115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91,
-     94, 59,123, 93, 42, 37, 98,123,125, 37,115, 42, 59, 63, 37,
-    115, 42, 34, 41, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,
-     98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,
-    110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115,
-     44, 34, 94, 37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95,
-     64, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95,
-     37,119, 62, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,
-    115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 91,
-     94, 59, 93, 42, 37, 98,123,125, 37,115, 42, 59, 63, 37,115,
-     42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32,
-    116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32,
-     97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114,
-     32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10,
-     32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103,
-     44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,
-    100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93,
-     41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99,
-     63,111, 63,110, 63,115, 63,116, 63, 41, 46, 45, 37, 98,123,
-    125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,101,
-    110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10,
-     32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61,
-     32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10,
-     32, 32, 32, 70,117,110, 99,116,105,111,110, 40,100,101, 99,
-    108, 44, 97,114,103, 44, 99,111,110,115,116, 41, 10, 32, 32,
-     32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,
-    115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,
-    110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 99,108, 97,
-    115,115, 10, 32,100,111, 10,  9, 32,108,111, 99, 97,108, 32,
-     98, 44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,
-    111,100,121, 10,  9,  9, 98, 97,115,101, 32, 61, 32, 39, 39,
-     32, 98,111,100,121, 32, 61, 32, 39, 39, 10,  9,  9, 98, 44,
-    101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,
-    100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37,
-    115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42,
-     41, 37,115, 42, 59, 34, 41, 32, 32, 45, 45, 32,100,117,109,
-    109,121, 32, 99,108, 97,115,115, 10,  9,  9,105,102, 32,110,
-    111,116, 32, 98, 32,116,104,101,110, 10,  9,  9,  9, 98, 44,
-    101, 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,
-    100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99,116,
-     37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93,
-     42, 41, 37,115, 42, 59, 34, 41, 32, 32, 32, 32, 45, 45, 32,
-    100,117,109,109,121, 32,115,116,114,117, 99,116, 10,  9,  9,
-      9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10,
-      9,  9,  9,  9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,
-    115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,
-    110,100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115,
-     37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93,
-     42, 41, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 40, 37, 98,
-    123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,  9,  9,
-      9,  9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110,
-     10,  9,  9,  9,  9,  9, 98, 44,101, 44,110, 97,109,101, 44,
-     98, 97,115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,
-    102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,
-    117, 99,116, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,
-    119, 64, 93, 42, 41, 37,115, 42, 40, 46, 45, 41, 37,115, 42,
-     40, 37, 98,123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41,
-     10,  9,  9,  9,  9,  9,105,102, 32,110,111,116, 32, 98, 32,
-    116,104,101,110, 10,  9,  9,  9,  9,  9,  9, 98, 44,101, 44,
-    110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 32,
-     61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,
-    115, 42,117,110,105,111,110, 37,115, 42, 40, 91, 95, 37,119,
-     93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 46, 45,
-     41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 37,
-    115, 42, 34, 41, 10,  9,  9,  9,  9,  9,  9,105,102, 32,110,
-    111,116, 32, 98, 32,116,104,101,110, 10,  9,  9,  9,  9,  9,
-      9,  9, 98, 97,115,101, 32, 61, 32, 39, 39, 10,  9,  9,  9,
-      9,  9,  9,  9, 98, 44,101, 44, 98,111,100,121, 44,110, 97,
-    109,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,
-     34, 94, 37,115, 42,116,121,112,101,100,101,102, 37,115, 37,
-    115, 42,115,116,114,117, 99,116, 37,115, 37,115, 42, 91, 95,
-     37,119, 93, 42, 37,115, 42, 40, 37, 98,123,125, 41, 37,115,
-     42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41,
-     37,115, 42, 59, 37,115, 42, 34, 41, 10,  9,  9,  9,  9,  9,
-      9,101,110,100, 10,  9,  9,  9,  9,  9,101,110,100, 10,  9,
-      9,  9,  9,101,110,100, 10,  9,  9,  9,101,110,100, 10,  9,
-      9,101,110,100, 10,  9,  9,105,102, 32, 98, 32,116,104,101,
-    110, 10,  9,  9,  9,105,102, 32, 98, 97,115,101, 32,126, 61,
-     32, 39, 39, 32,116,104,101,110, 10,  9,  9,  9,  9, 98, 97,
-    115,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117,
-     98, 40, 98, 97,115,101, 44, 32, 34, 94, 37,115, 42, 58, 37,
-    115, 42, 34, 44, 32, 34, 34, 41, 10,  9,  9,  9,  9, 98, 97,
-    115,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117,
-     98, 40, 98, 97,115,101, 44, 32, 34, 37,115, 42,112,117, 98,
-    108,105, 99, 37,115, 42, 34, 44, 32, 34, 34, 41, 10,  9,  9,
-      9,  9, 98, 97,115,101, 32, 61, 32,115,112,108,105,116, 40,
-     98, 97,115,101, 44, 32, 34, 44, 34, 41, 10,  9,  9,  9,  9,
-     45, 45,108,111, 99, 97,108, 32, 98, 44,101, 10,  9,  9,  9,
-      9, 45, 45, 98, 44,101, 44, 98, 97,115,101, 32, 61, 32,115,
-    116,114,102,105,110,100, 40, 98, 97,115,101, 44, 34, 46, 45,
-     40, 91, 95, 37,119, 93, 91, 95, 37,119, 60, 62, 44, 58, 93,
-     42, 41, 36, 34, 41, 10,  9,  9,  9,101,108,115,101, 10,  9,
-      9,  9,  9, 98, 97,115,101, 32, 61, 32,123,125, 10,  9,  9,
-      9,101,110,100, 10,  9,  9,  9, 95, 99,117,114,114, 95, 99,
-    111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,
-     98, 44,101, 41, 10,  9,  9,  9, 67,108, 97,115,115, 40,110,
-     97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 41, 10,
-      9,  9,  9,114,101,116,117,114,110, 32,115,116,114,115,117,
-     98, 40,115, 44,101, 43, 49, 41, 10,  9,  9,101,110,100, 10,
-      9,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116,
-    121,112,101,100,101,102, 10, 32,100,111, 10, 32, 32,108,111,
-     99, 97,108, 32, 98, 44,101, 44,116,121,112,101,115, 32, 61,
-     32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115,
-     42,116,121,112,101,100,101,102, 37,115, 37,115, 42, 40, 46,
-     45, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,
-    102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,
-    114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117,
-     98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 84,121,112,
-    101,100,101,102, 40,116,121,112,101,115, 41, 10, 32, 32, 32,
-    114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115,
-     44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,
-    100, 10, 10, 32, 45, 45, 32,116,114,121, 32,118, 97,114,105,
-     97, 98,108,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,
-    108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32,115,116,
-    114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,
-     95, 37,119, 93, 91, 95, 64, 37,115, 37,119, 37,100, 37, 42,
-     38, 58, 60, 62, 44, 93, 42, 91, 95, 37,119, 37,100, 93, 41,
-     37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,
-     98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114,
-     95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,
-    115, 44, 98, 44,101, 41, 10, 10,  9,108,111, 99, 97,108, 32,
-    108,105,115,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,
-    116,111,107,101,110,115, 40,100,101, 99,108, 44, 32, 34, 44,
-     34, 41, 10,  9, 86, 97,114,105, 97, 98,108,101, 40,108,105,
-    115,116, 91, 49, 93, 41, 10,  9,105,102, 32,108,105,115,116,
-     46,110, 32, 62, 32, 49, 32,116,104,101,110, 10,  9,  9,108,
-    111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112,101, 32, 61,
-     32,115,116,114,102,105,110,100, 40,108,105,115,116, 91, 49,
-     93, 44, 32, 34, 40, 46, 45, 41, 37,115, 43, 40, 91, 94, 37,
-    115, 93, 42, 41, 36, 34, 41, 59, 10, 10,  9,  9,108,111, 99,
-     97,108, 32,105, 32, 61, 50, 59, 10,  9,  9,119,104,105,108,
-    101, 32,108,105,115,116, 91,105, 93, 32,100,111, 10,  9,  9,
-      9, 86, 97,114,105, 97, 98,108,101, 40,116,121,112,101, 46,
-     46, 34, 32, 34, 46, 46,108,105,115,116, 91,105, 93, 41, 10,
-      9,  9,  9,105, 61,105, 43, 49, 10,  9,  9,101,110,100, 10,
-      9,101,110,100, 10, 32, 32, 32, 45, 45, 86, 97,114,105, 97,
-     98,108,101, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,
-    116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101,
-     43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10,
-     10,  9, 45, 45, 32,116,114,121, 32,115,116,114,105,110,103,
-     10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,
-    101, 44,100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,
-    100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93,
-     63, 91, 95, 37,115, 37,119, 37,100, 93, 45, 99,104, 97,114,
-     37,115, 43, 91, 95, 64, 37,119, 37,100, 93, 42, 37,115, 42,
-     37, 91, 37,115, 42, 37, 83, 43, 37,115, 42, 37, 93, 41, 37,
-    115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98,
-     32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95,
-     99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,
-     44, 98, 44,101, 41, 10, 32, 32, 32, 86, 97,114,105, 97, 98,
-    108,101, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116,
-    117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43,
-     49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10,
-     32, 45, 45, 32,116,114,121, 32, 97,114,114, 97,121, 10, 32,
-    100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,
-    100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,
-    115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 93,
-     91, 95, 64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 93, 42,
-     91, 93, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115,
-     42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110,
-     10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32,
-     61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41,
-     10, 32, 32, 32, 65,114,114, 97,121, 40,100,101, 99,108, 41,
-     10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114,115,
-    117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100,
-     10, 32,101,110,100, 10, 10, 32, 45, 45, 32,110,111, 32,109,
-     97,116, 99,104,105,110,103, 10, 32,105,102, 32,103,115,117,
-     98, 40,115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 34, 41,
-     32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 32, 32, 95,
-     99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 10, 32,
-     32,101,114,114,111,114, 40, 34, 35,112, 97,114,115,101, 32,
-    101,114,114,111,114, 34, 41, 10, 32,101,108,115,101, 10, 32,
-     32,114,101,116,117,114,110, 32, 34, 34, 10, 32,101,110,100,
-     10, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110,
-     32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
-     58,112, 97,114,115,101, 32, 40,115, 41, 10, 10,  9,115,101,
-    108,102, 46, 99,117,114,114, 95,109,101,109, 98,101,114, 95,
-     97, 99, 99,101,115,115, 32, 61, 32,110,105,108, 10, 10, 32,
-    119,104,105,108,101, 32,115, 32,126, 61, 32, 39, 39, 32,100,
-    111, 10, 32, 32,115, 32, 61, 32,115,101,108,102, 58,100,111,
-    112, 97,114,115,101, 40,115, 41, 10, 32, 32,109,101,116,104,
-    111,100,105,115,118,105,114,116,117, 97,108, 32, 61, 32,102,
-     97,108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,
-     10, 45, 45, 32,112,114,111,112,101,114,116,121, 32,116,121,
-    112,101,115, 10, 10,102,117,110, 99,116,105,111,110, 32,103,
-    101,116, 95,112,114,111,112,101,114,116,121, 95,116,121,112,
-    101, 40, 41, 10, 10,  9,114,101,116,117,114,110, 32, 99,108,
-     97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,
-    114,114, 58,103,101,116, 95,112,114,111,112,101,114,116,121,
-     95,116,121,112,101, 40, 41, 10,101,110,100, 10, 10,102,117,
-    110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,
-    116, 97,105,110,101,114, 58,115,101,116, 95,112,114,111,112,
-    101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101,
-     41, 10,  9,112,116,121,112,101, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,112,116,121,112,101, 44, 32,
-     34, 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10,  9,112,116,
-    121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,
-    117, 98, 40,112,116,121,112,101, 44, 32, 34, 37,115, 42, 36,
-     34, 44, 32, 34, 34, 41, 10, 10,  9,115,101,108,102, 46,112,
-    114,111,112,101,114,116,121, 95,116,121,112,101, 32, 61, 32,
-    112,116,121,112,101, 10,101,110,100, 10, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,
-    105,110,101,114, 58,103,101,116, 95,112,114,111,112,101,114,
-    116,121, 95,116,121,112,101, 40, 41, 10,  9,114,101,116,117,
-    114,110, 32,115,101,108,102, 46,112,114,111,112,101,114,116,
-    121, 95,116,121,112,101, 32,111,114, 32, 40,115,101,108,102,
-     46,112, 97,114,101,110,116, 32, 97,110,100, 32,115,101,108,
-    102, 46,112, 97,114,101,110,116, 58,103,101,116, 95,112,114,
-    111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 41, 32,
-    111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10,101,110,
-    100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/container.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,112, 97, 99,107, 97,
-    103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,
-    116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,
-    114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,
-    114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32,
-     74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100,
-     58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,
-    100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,
-    119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,
-    101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32,
-     97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,
-    116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119,
-     97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,
-    114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,
-    110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115,
-     44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,
-    116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,
-    105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,
-    105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101,
-     44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,
-    116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,
-    109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,
-    105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45,
-     32, 80, 97, 99,107, 97,103,101, 32, 99,108, 97,115,115, 10,
-     45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,116,
-    104,101, 32,119,104,111,108,101, 32,112, 97, 99,107, 97,103,
-    101, 32, 98,101,105,110,103, 32, 98,111,117,110,100, 46, 10,
-     45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110,
-    103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,116,
-    111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125,
-     32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101,
-     99,116,115, 32,105,110, 32,116,104,101, 32,112, 97, 99,107,
-     97,103,101, 46, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,
-    103,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,
-    112,101, 32, 61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10,
-    125, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 46,
-     95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115,
-     80, 97, 99,107, 97,103,101, 10,115,101,116,109,101,116, 97,
-    116, 97, 98,108,101, 40, 99,108, 97,115,115, 80, 97, 99,107,
-     97,103,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,
-    110,101,114, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,
-    109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110,
-     32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,
-    114,105,110,116, 32, 40, 41, 10, 32,112,114,105,110,116, 40,
-     34, 80, 97, 99,107, 97,103,101, 58, 32, 34, 46, 46,115,101,
-    108,102, 46,110, 97,109,101, 41, 10, 32,108,111, 99, 97,108,
-     32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,
-    102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,
-    105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41,
-     10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100,
-     10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,
-     99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114,
-    101,112,114,111, 99,101,115,115, 32, 40, 41, 10, 10, 32, 45,
-     45, 32, 97,118,111,105,100, 32,112,114,101,112,114,111, 99,
-    101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100,
-     32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97,
-    108, 32, 76, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46,
-     99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,
-    102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36,
-     37, 91, 34, 44, 34, 92, 49, 34, 41, 32, 45, 45, 32,100,101,
-     97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101,
-    100, 32,108,117, 97, 32, 99,111,100,101, 10, 32,115,101,108,
-    102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,
-    101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42,
-     37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101,
-    108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,
-    115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92,
-     49, 92, 50, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117,
-    110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105,
-    110,115,101,114,116, 40, 76, 44, 99, 41, 10, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,
-    116,117,114,110, 32, 34, 92,110, 35, 91, 34, 46, 46,103,101,
-    116,110, 40, 76, 41, 46, 46, 34, 93, 35, 34, 10, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110,
-    100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,
-    101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98,
-    101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,108,
-    111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10, 32,115,101,
-    108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,
-    115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115,
-     42, 37, 36, 37, 60, 34, 44, 34, 92, 51, 34, 41, 32, 45, 45,
-     32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101,
-    100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101,
-    108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,
-    115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115,
-     42, 37, 36, 37, 62, 34, 44, 34, 92, 52, 34, 41, 10, 32,115,
-    101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98,
-     40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98,
-     92, 51, 92, 52, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,
-    117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,
-    105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,
-    101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103,
-    101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,
-    110,100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,
-    114,101,112,114,111, 99,101,115,115,105,110,103, 32,101,109,
-     98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,
-    115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
-     98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110,
-     37,115, 42, 37, 36, 37,123, 34, 44, 34, 92, 53, 34, 41, 32,
-     45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109,
-     98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,
-    115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
-     98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110,
-     37,115, 42, 37, 36, 37,125, 34, 44, 34, 92, 54, 34, 41, 10,
-     32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,
-    117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40,
-     37, 98, 92, 53, 92, 54, 41, 34, 44, 32, 32, 32, 32, 32, 32,
-     32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32,114,101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46,
-     46,103,101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32,101,110,100, 41, 10, 10, 32, 45, 45,115,101,108,102, 46,
-     99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,
-    102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 35, 91,
-     94,100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34,
-     92,110, 92,110, 34, 41, 32, 45, 45, 32,101,108,105,109,105,
-    110, 97,116,101, 32,112,114,101,112,114,111, 99,101,115,115,
-    111,114, 32,100,105,114,101, 99,116,105,118,101,115, 32,116,
-    104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116,
-     32,119,105,116,104, 32, 39,100, 39, 10, 32,115,101,108,102,
-     46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,
-    108,102, 46, 99,111,100,101, 44, 34, 92,110, 91, 32, 92,116,
-     93, 42, 35, 91, 32, 92,116, 93, 42, 91, 94,100, 37, 60, 37,
-     91, 93, 34, 44, 32, 34, 92,110, 47, 47, 34, 41, 32, 45, 45,
-     32,101,108,105,109,105,110, 97,116,101, 32,112,114,101,112,
-    114,111, 99,101,115,115,111,114, 32,100,105,114,101, 99,116,
-    105,118,101,115, 32,116,104, 97,116, 32,100,111,110, 39,116,
-     32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39,
-     10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101,
-    112,114,111, 99,101,115,115,105,110,103, 32,118,101,114, 98,
-     97,116,105,109, 32,108,105,110,101,115, 10, 32,108,111, 99,
-     97,108, 32, 86, 32, 61, 32,123,125, 10, 32,115,101,108,102,
-     46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,
-    108,102, 46, 99,111,100,101, 44, 34, 92,110, 40, 37,115, 42,
-     37, 36, 91, 94, 37, 91, 37, 93, 93, 91, 94, 92,110, 93, 42,
-     41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,118, 41,
-     10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32,116,105,110,115,101,114,116, 40, 86, 44,118, 41,
-     10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 34,
-     46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35, 34, 10,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32,101,110,100, 41, 10, 10, 32, 45, 45, 32,112,101,114,102,
-    111,114,109, 32,103,108,111, 98, 97,108, 32,115,117, 98,115,
-    116,105,116,117,116,105,111,110, 10, 10, 32,115,101,108,102,
-     46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,
-    108,102, 46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92,
-    110, 93, 42, 41, 34, 44, 34, 34, 41, 32, 32, 32, 32, 32, 45,
-     45, 32,101,108,105,109,105,110, 97,116,101, 32, 67, 43, 43,
-     32, 99,111,109,109,101,110,116,115, 10, 32,115,101,108,102,
-     46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,
-    108,102, 46, 99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34,
-     92, 49, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101,
-     32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,
-    100,101, 44, 34, 37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10,
-     32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,
-    117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,
-     98, 92, 49, 92, 50, 34, 44, 34, 34, 41, 10, 32,115,101,108,
-    102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,
-    101,108,102, 46, 99,111,100,101, 44, 34, 92, 49, 34, 44, 34,
-     47, 37, 42, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,
-    101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,
-    111,100,101, 44, 34, 92, 50, 34, 44, 34, 37, 42, 47, 34, 41,
-     10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,
-    115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34,
-     37,115, 42, 64, 37,115, 42, 34, 44, 34, 64, 34, 41, 32, 45,
-     45, 32,101,108,105,109,105,110, 97,116,101, 32,115,112, 97,
-     99,101,115, 32, 98,101,115,105,100,101, 32, 64, 10, 32,115,
-    101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98,
-     40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,
-    105,110,108,105,110,101, 40, 37,115, 41, 34, 44, 34, 37, 49,
-     34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,
-     32, 39,105,110,108,105,110,101, 39, 32,107,101,121,119,111,
-    114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101,
-     32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,
-    100,101, 44, 34, 37,115, 63,101,120,116,101,114,110, 40, 37,
-    115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108,
-    105,109,105,110, 97,116,101, 32, 39,101,120,116,101,114,110,
-     39, 32,107,101,121,119,111,114,100, 10, 32, 45, 45,115,101,
-    108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,
-    115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,118,
-    105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37, 49,
-     34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,
-     32, 39,118,105,114,116,117, 97,108, 39, 32,107,101,121,119,
-    111,114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,
-    101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,
-    111,100,101, 44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34,
-     34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,
-     32, 39,112,117, 98,108,105, 99, 58, 39, 32,107,101,121,119,
-    111,114,100, 10, 32,115,101,108,102, 46, 99,111,100,101, 32,
-     61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,
-    101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100,
-     37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114,
-    100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115,
-    116,105,116,117,116,101, 32, 39,118,111,105,100, 42, 39, 10,
-     32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,
-    117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40,
-     91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37,
-     42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97,
-     32, 34, 41, 32, 45, 45, 32,115,117, 98,115,116,105,116,117,
-    116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108,
-    102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,
-    101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119,
-     95, 93, 41, 99,104, 97,114, 37,115, 42, 37, 42, 34, 44, 34,
-     37, 49, 95, 99,115,116,114,105,110,103, 32, 34, 41, 32, 32,
-     45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39,
-     99,104, 97,114, 42, 39, 10, 32,115,101,108,102, 46, 99,111,
-    100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,
-     99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,108,
-    117, 97, 95, 83,116, 97,116,101, 37,115, 42, 37, 42, 34, 44,
-     34, 37, 49, 95,108,115,116, 97,116,101, 32, 34, 41, 32, 32,
-     45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39,
-    108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 10, 32, 45,
-     45, 32,114,101,115,116,111,114,101, 32,101,109, 98,101,100,
-    100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,115,
-    101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98,
-     40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 37,
-     91, 40, 37,100, 43, 41, 37, 93, 37, 35, 34, 44,102,117,110,
-     99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117,
-    114,110, 32, 76, 91,116,111,110,117,109, 98,101,114, 40,110,
-     41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116,
-    111,114,101, 32,101,109, 98,101,100,100,101,100, 32, 67, 32,
-     99,111,100,101, 10, 32,115,101,108,102, 46, 99,111,100,101,
-     32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,
-    100,101, 44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62,
-     37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110,
-     41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32,114,101,116,117,114,110, 32, 67, 91,116,111,110,117,
-    109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45,
-     45, 32,114,101,115,116,111,114,101, 32,118,101,114, 98, 97,
-    116,105,109, 32,108,105,110,101,115, 10, 32,115,101,108,102,
-     46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,
-    108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,100, 43,
-     41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,
-    110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,
-    101,116,117,114,110, 32, 86, 91,116,111,110,117,109, 98,101,
-    114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-     32,101,110,100, 41, 10, 10, 32,115,101,108,102, 46, 99,111,
-    100,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117,
-     98, 40,115,101,108,102, 46, 99,111,100,101, 44, 32, 34, 92,
-    110, 37,115, 42, 37, 36, 40, 91, 94, 92,110, 93, 43, 41, 34,
-     44, 32,102,117,110, 99,116,105,111,110, 32, 40,108, 41, 10,
-      9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9, 86,101,114, 98,
-     97,116,105,109, 40,108, 46, 46, 34, 92,110, 34, 41, 10,  9,
-      9,  9,  9,  9,  9,  9,  9,  9,  9,  9,114,101,116,117,114,
-    110, 32, 34, 92,110, 34, 10,  9,  9,  9,  9,  9,  9,  9,  9,
-      9,  9, 32, 32,101,110,100, 41, 10,101,110,100, 10, 10, 45,
-     45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114,
-     98, 97,116,105,109, 10,102,117,110, 99,116,105,111,110, 32,
-     99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114,
-    101, 97,109, 98,108,101, 32, 40, 41, 10, 32,111,117,116,112,
-    117,116, 40, 39, 47, 42, 92,110, 39, 41, 10, 32,111,117,116,
-    112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110,
-    100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110,
-     97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116,
-    112,117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116,
-    101,100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108,
-    121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86,
-     69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46,
-     46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41,
-     10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,
-    110, 39, 41, 10, 10,  9,111,117,116,112,117,116, 40, 39, 35,
-    105,102,110,100,101,102, 32, 95, 95, 99,112,108,117,115,112,
-    108,117,115, 92,110, 39, 41, 10,  9,111,117,116,112,117,116,
-     40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,116,100,
-    108,105, 98, 46,104, 34, 92,110, 39, 41, 10,  9,111,117,116,
-    112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41,
-     10,  9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,
-    117,100,101, 32, 34,115,116,114,105,110,103, 46,104, 34, 92,
-    110, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,
-     35,105,110, 99,108,117,100,101, 32, 34,116,111,108,117, 97,
-     43, 43, 46,104, 34, 92,110, 92,110, 39, 41, 10, 10, 32,105,
-    102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,
-    104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47,
-     42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99,
-    116,105,111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,
-    105,110,116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,
-    101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,
-    110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,
-    111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,
-    116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100,
-     10, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,
-    104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111,
-     10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,101, 97,
-    109, 98,108,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43,
-     49, 10, 32,101,110,100, 10, 10,  9,105,102, 32,115,101,108,
-    102, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99,
-    116,105,111,110, 40, 95, 99,111,108,108,101, 99,116, 41, 32,
-    116,104,101,110, 10,  9,  9,111,117,116,112,117,116, 40, 39,
-     92,110, 39, 41, 10,  9,  9,111,117,116,112,117,116, 40, 39,
-     47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32,
-    114,101,108,101, 97,115,101, 32, 99,111,108,108,101, 99,116,
-    101,100, 32,111, 98,106,101, 99,116, 32,118,105, 97, 32,100,
-    101,115,116,114,117, 99,116,111,114, 32, 42, 47, 39, 41, 10,
-      9,  9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,
-    102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110,
-     39, 41, 10,  9,  9,102,111,114, 32,105, 44,118, 32,105,110,
-     32,112, 97,105,114,115, 40, 95, 99,111,108,108,101, 99,116,
-     41, 32,100,111, 10,  9,  9, 32,111,117,116,112,117,116, 40,
-     39, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 32, 39,
-     46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97,
-    116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10,
-      9,  9,  9,111,117,116,112,117,116, 40, 39,123, 39, 41, 10,
-      9,  9,  9,111,117,116,112,117,116, 40, 39, 32, 39, 46, 46,
-    105, 46, 46, 39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39,
-     46, 46,105, 46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95,
-    116,111,117,115,101,114,116,121,112,101, 40,116,111,108,117,
-     97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10,  9,  9,  9,
-    111,117,116,112,117,116, 40, 39,  9,100,101,108,101,116,101,
-     32,115,101,108,102, 59, 39, 41, 10,  9,  9,  9,111,117,116,
-    112,117,116, 40, 39,  9,114,101,116,117,114,110, 32, 48, 59,
-     39, 41, 10,  9,  9,  9,111,117,116,112,117,116, 40, 39,125,
-     39, 41, 10,  9,  9,101,110,100, 10,  9,  9,111,117,116,112,
-    117,116, 40, 39, 35,101,110,100,105,102, 92,110, 92,110, 39,
-     41, 10,  9,101,110,100, 10, 10, 32,111,117,116,112,117,116,
-     40, 39, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40,
-     39, 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111,
-     32,114,101,103,105,115,116,101,114, 32,116,121,112,101, 32,
-     42, 47, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,115,
-    116, 97,116,105, 99, 32,118,111,105,100, 32,116,111,108,117,
-     97, 95,114,101,103, 95,116,121,112,101,115, 32, 40,108,117,
-     97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95,
-     83, 41, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,123,
-     39, 41, 10, 32,102,111,114,101, 97, 99,104, 40, 95,117,115,
-    101,114,116,121,112,101, 44,102,117,110, 99,116,105,111,110,
-     40,110, 44,118, 41, 32,111,117,116,112,117,116, 40, 39, 32,
-    116,111,108,117, 97, 95,117,115,101,114,116,121,112,101, 40,
-    116,111,108,117, 97, 95, 83, 44, 34, 39, 44,118, 44, 39, 34,
-     41, 59, 39, 41, 32,101,110,100, 41, 10,  9,105,102, 32,102,
-    108, 97,103,115, 46,116, 32,116,104,101,110, 10,  9,  9,111,
-    117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32,
-     77,116,111,108,117, 97, 95,116,121,112,101,105,100, 92,110,
-     35,100,101,102,105,110,101, 32, 77,116,111,108,117, 97, 95,
-    116,121,112,101,105,100, 40, 76, 44, 84, 73, 44, 84, 41, 92,
-    110, 35,101,110,100,105,102, 92,110, 34, 41, 10,  9,  9,102,
-    111,114,101, 97, 99,104, 40, 95,117,115,101,114,116,121,112,
-    101, 44,102,117,110, 99,116,105,111,110, 40,110, 44,118, 41,
-     32,111,117,116,112,117,116, 40, 39, 32, 77,116,111,108,117,
-     97, 95,116,121,112,101,105,100, 40,116,111,108,117, 97, 95,
-     83, 44,116,121,112,101,105,100, 40, 39, 44,118, 44, 39, 41,
-     44, 32, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 32,101,
-    110,100, 41, 10,  9,101,110,100, 10, 32,111,117,116,112,117,
-    116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40,
-     39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32,114,
-    101,103,105,115,116,101,114, 32,112, 97, 99,107, 97,103,101,
-     10, 45, 45, 32,119,114,105,116,101, 32,112, 97, 99,107, 97,
-    103,101, 32,111,112,101,110, 32,102,117,110, 99,116,105,111,
-    110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 80, 97, 99,107, 97,103,101, 58,114,101,103,105,115,116,
-    101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61,
-     32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115,
-    104, 40,115,101,108,102, 41, 10, 32,111,117,116,112,117,116,
-     40,112,114,101, 46, 46, 34, 47, 42, 32, 79,112,101,110, 32,
-    102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10, 32,
-    111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79,
-     76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,116,111,108,
-    117, 97, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101,
-     46, 46, 34, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83,
-    116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34,
-     41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46,
-     34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114,
-    101, 46, 46, 34, 32,116,111,108,117, 97, 95,111,112,101,110,
-     40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,
-    117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,
-    108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 40,116,
-    111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116,
-    112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117,
-     97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95,
-     83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102, 58,104,
-     97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41, 10, 32,
-    111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,
-    111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,
-    101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41,
-     59, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10,
-     32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,
-    100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101,
-    103,105,115,116,101,114, 40,112,114,101, 46, 46, 34, 32, 32,
-     34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,
-    110,100, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46,
-     46, 34, 32,116,111,108,117, 97, 95,101,110,100,109,111,100,
-    117,108,101, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41,
-     10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,
-     32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10, 32,111,
-    117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 34, 41,
-     10, 10, 32,111,117,116,112,117,116, 40, 34, 92,110, 92,110,
-     34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102,
-     32,100,101,102,105,110,101,100, 40, 76, 85, 65, 95, 86, 69,
-     82, 83, 73, 79, 78, 95, 78, 85, 77, 41, 32, 38, 38, 32, 76,
-     85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 32,
-     62, 61, 32, 53, 48, 49, 92,110, 34, 41, 59, 10, 32,111,117,
-    116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85,
-     65, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112,
-    101,110, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101,
-     46, 46, 34, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42,
-     32,116,111,108,117, 97, 95, 83, 41, 32,123, 34, 41, 10, 32,
-    111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114,
-    101,116,117,114,110, 32,116,111,108,117, 97, 95, 34, 46, 46,
-    115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112,
-    101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10,
-     32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,125,
-     59, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,101,
-    110,100,105,102, 92,110, 92,110, 34, 41, 10, 10,  9,112,111,
-    112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,119,114,105,
-    116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10,
-    102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80,
-     97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40,
-     41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 92,110,
-     39, 41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76,
-    117, 97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46,
-    115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39,
-     41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71,
-    101,110,101,114, 97,116,101,100, 32, 97,117,116,111,109, 97,
-    116,105, 99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84,
-     79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39,
-     32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46,
-     39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40,
-     39, 42, 47, 92,110, 92,110, 39, 41, 10, 10, 32,105,102, 32,
-    110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101,
-    110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32,
-     69,120,112,111,114,116,101,100, 32,102,117,110, 99,116,105,
-    111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,112,117,
-    116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,
-    116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,101,108,
-    102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,110, 32,
-     40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,
-    117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,116,112,
-    117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101,
-    110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108,
-     32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117,
-    110, 99,116,105,111,110, 32, 95, 80, 97, 99,107, 97,103,101,
-     32, 40,115,101,108,102, 41, 10, 32,115,101,116,109,101,116,
-     97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97,
-    115,115, 80, 97, 99,107, 97,103,101, 41, 10, 32,114,101,116,
-    117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 45,
-     45, 32, 80, 97,114,115,101, 32, 67, 32,104,101, 97,100,101,
-    114, 32,102,105,108,101, 32,119,105,116,104, 32,116,111,108,
-    117, 97, 32,100,105,114,101, 99,116,105,118,101,115, 10, 45,
-     45, 32, 42, 42, 42, 32, 84,104, 97,110,107,115, 32,116,111,
-     32, 65,114,105,101,108, 32, 77, 97,110,122,117,114, 32,102,
-    111,114, 32,102,105,120,105,110,103, 32, 98,117,103,115, 32,
-    105,110, 32,110,101,115,116,101,100, 32,100,105,114,101, 99,
-    116,105,118,101,115, 32, 42, 42, 42, 10,102,117,110, 99,116,
-    105,111,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,
-    101, 40,102,110, 44,115, 41, 10,  9,108,111, 99, 97,108, 32,
-     99,111,100,101, 32, 61, 32, 39, 92,110, 36, 35,105,110, 99,
-    108,117,100,101, 32, 34, 39, 46, 46,102,110, 46, 46, 39, 34,
-     92,110, 39, 10,  9,115, 61, 32, 34, 92,110, 34, 32, 46, 46,
-     32,115, 32, 46, 46, 32, 34, 92,110, 34, 32, 45, 45, 32, 97,
-    100,100, 32, 98,108, 97,110,107, 32,108,105,110,101,115, 32,
-     97,115, 32,115,101,110,116,105,110,101,108,115, 10,  9,108,
-    111, 99, 97,108, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32,
-    115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40,
-     91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93,
-     91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91,
-     94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34,
-     41, 10,  9,119,104,105,108,101, 32,101, 32,100,111, 10,  9,
-      9,116, 32, 61, 32,115,116,114,108,111,119,101,114, 40,116,
-     41, 10,  9,  9,105,102, 32,116, 32, 61, 61, 32, 34, 98,101,
-    103,105,110, 34, 32,116,104,101,110, 10,  9,  9,  9, 95, 44,
-    101, 44, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115,
-     44, 34, 40, 46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91,
-     84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93,
-     91, 65, 97, 93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68,
-    100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10,
-      9,  9,  9,105,102, 32,110,111,116, 32,101, 32,116,104,101,
-    110, 10,  9,  9,  9, 32,116,111,108,117, 97, 95,101,114,114,
-    111,114, 40, 34, 85,110, 98, 97,108, 97,110, 99,101,100, 32,
-     39,116,111,108,117, 97, 95, 98,101,103,105,110, 39, 32,100,
-    105,114,101, 99,116,105,118,101, 32,105,110, 32,104,101, 97,
-    100,101,114, 32,102,105,108,101, 34, 41, 10,  9,  9,  9,101,
-    110,100, 10,  9,  9,101,110,100, 10,  9,  9, 99,111,100,101,
-     32, 61, 32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46,
-     32, 34, 92,110, 34, 10,  9, 32, 95, 44,101, 44, 99, 44,116,
-     32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34,
-     92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91,
-     79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93,
-     95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42,
-     92,110, 34, 44,101, 41, 10,  9,101,110,100, 10,  9,114,101,
-    116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 10, 10,
-     45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10,
-     45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32,
-    112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,116,
-    104,101, 32,102,105,108,101, 32,101,120,116,101,110,115,105,
-    111,110, 44, 32, 97,110,100, 32,116,104,101, 32,102,105,108,
-    101, 32,116,101,120,116, 46, 10,102,117,110, 99,116,105,111,
-    110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110, 97,109,101,
-     44,102,110, 41, 10, 32,108,111, 99, 97,108, 32,101,120,116,
-     32, 61, 32, 34,112,107,103, 34, 10, 10, 32, 45, 45, 32,111,
-    112,101,110, 32,105,110,112,117,116, 32,102,105,108,101, 44,
-     32,105,102, 32, 97,110,121, 10, 32,105,102, 32,102,110, 32,
-    116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,115,116,
-     44, 32,109,115,103, 32, 61, 32,114,101, 97,100,102,114,111,
-    109, 40,102,108, 97,103,115, 46,102, 41, 10, 32, 32,105,102,
-     32,110,111,116, 32,115,116, 32,116,104,101,110, 10, 32, 32,
-     32,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103,
-     41, 10, 32, 32,101,110,100, 10,  9,  9,108,111, 99, 97,108,
-     32, 95, 59, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32, 61,
-     32,115,116,114,102,105,110,100, 40,102,110, 44, 34, 46, 42,
-     37, 46, 40, 46, 42, 41, 36, 34, 41, 10, 32,101,110,100, 10,
-     32,108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,
-     92,110, 34, 32, 46, 46, 32,114,101, 97,100, 40, 39, 42, 97,
-     39, 41, 10,  9,105,102, 32,101,120,116, 32, 61, 61, 32, 39,
-    104, 39, 32,111,114, 32,101,120,116, 32, 61, 61, 32, 39,104,
-    112,112, 39, 32,116,104,101,110, 10,  9, 32, 99,111,100,101,
-     32, 61, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,101,
-     40,102,110, 44, 99,111,100,101, 41, 10,  9,101,110,100, 10,
-     10, 32, 45, 45, 32, 99,108,111,115,101, 32,102,105,108,101,
-     10, 32,105,102, 32,102,110, 32,116,104,101,110, 10, 32, 32,
-    114,101, 97,100,102,114,111,109, 40, 41, 10, 32,101,110,100,
-     10, 10, 32, 45, 45, 32,100,101, 97,108, 32,119,105,116,104,
-     32,105,110, 99,108,117,100,101, 32,100,105,114,101, 99,116,
-    105,118,101, 10, 32,108,111, 99, 97,108, 32,110,115,117, 98,
-    115,116, 10, 32,114,101,112,101, 97,116, 10, 32, 32, 99,111,
-    100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117,
-     98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,
-     40, 46, 41,102,105,108,101, 37,115, 42, 34, 40, 46, 45, 41,
-     34, 40, 91, 94, 92,110, 93, 42, 41, 92,110, 39, 44, 10,  9,
-      9,102,117,110, 99,116,105,111,110, 32, 40,107,105,110,100,
-     44,102,110, 44,101,120,116,114, 97, 41, 10,  9,  9,  9,108,
-    111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,101,120,116, 32,
-     61, 32,115,116,114,102,105,110,100, 40,102,110, 44, 34, 46,
-     42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10,  9,  9,  9,108,
-    111, 99, 97,108, 32,102,112, 44,109,115,103, 32, 61, 32,111,
-    112,101,110,102,105,108,101, 40,102,110, 44, 39,114, 39, 41,
-     10,  9,  9,  9,105,102, 32,110,111,116, 32,102,112, 32,116,
-    104,101,110, 10,  9,  9,  9,  9,101,114,114,111,114, 40, 39,
-     35, 39, 46, 46,109,115,103, 46, 46, 39, 58, 32, 39, 46, 46,
-    102,110, 41, 10,  9,  9,  9,101,110,100, 10,  9,  9,  9,108,
-    111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97,100, 40,102,
-    112, 44, 39, 42, 97, 39, 41, 10,  9,  9,  9, 99,108,111,115,
-    101,102,105,108,101, 40,102,112, 41, 10,  9,  9,  9,105,102,
-     32,107,105,110,100, 32, 61, 61, 32, 39, 99, 39, 32,111,114,
-     32,107,105,110,100, 32, 61, 61, 32, 39,104, 39, 32,116,104,
-    101,110, 10,  9,  9,  9,  9,114,101,116,117,114,110, 32,101,
-    120,116,114, 97, 99,116, 95, 99,111,100,101, 40,102,110, 44,
-    115, 41, 10,  9,  9,  9,101,108,115,101,105,102, 32,107,105,
-    110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10,
-      9,  9,  9,  9,114,101,116,117,114,110, 32, 34, 92,110, 92,
-    110, 34, 32, 46, 46, 32,115, 10,  9,  9,  9,101,108,115,101,
-    105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,
-    116,104,101,110, 10,  9,  9,  9,  9,114,101,116,117,114,110,
-     32, 34, 92,110, 36, 91, 45, 45, 35, 35, 34, 46, 46,102,110,
-     46, 46, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32,
-     34, 92,110, 36, 93, 92,110, 34, 10,  9,  9,  9,101,108,115,
-    101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,105, 39,
-     32,116,104,101,110, 10,  9,  9,  9,  9,108,111, 99, 97,108,
-     32,116, 32, 61, 32,123, 99,111,100,101, 61,115,125, 10,  9,
-      9,  9,  9,101,120,116,114, 97, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,101,120,116,114, 97, 44, 32,
-     34, 94, 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 34, 41,
-     10,  9,  9,  9,  9,108,111, 99, 97,108, 32,112, 97,114,115,
-     32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,
-    110,115, 40,101,120,116,114, 97, 44, 32, 34, 44, 34, 41, 10,
-      9,  9,  9,  9,105,110, 99,108,117,100,101, 95,102,105,108,
-    101, 95,104,111,111,107, 40,116, 44, 32,102,110, 44, 32,117,
-    110,112, 97, 99,107, 40,112, 97,114,115, 41, 41, 10,  9,  9,
-      9,  9,114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34,
-     32, 46, 46, 32,116, 46, 99,111,100,101, 10,  9,  9,  9,101,
-    108,115,101, 10,  9,  9,  9,  9,101,114,114,111,114, 40, 39,
-     35, 73,110,118, 97,108,105,100, 32,105,110, 99,108,117,100,
-    101, 32,100,105,114,101, 99,116,105,118,101, 32, 40,117,115,
-    101, 32, 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,
-    101, 44, 32, 36,108,102,105,108,101, 32,111,114, 32, 36,105,
-    102,105,108,101, 41, 39, 41, 10,  9,  9,  9,101,110,100, 10,
-      9,  9,101,110,100, 41, 10, 32,117,110,116,105,108, 32,110,
-    115,117, 98,115,116, 61, 61, 48, 10, 10, 32, 45, 45, 32,100,
-    101, 97,108, 32,119,105,116,104, 32,114,101,110, 97,109,105,
-    110,103, 32,100,105,114,101, 99,116,105,118,101, 10, 32,114,
-    101,112,101, 97,116, 32, 45, 45, 32, 73, 32,100,111,110, 39,
-    116, 32,107,110,111,119, 32,119,104,121, 32,116,104,105,115,
-     32,105,115, 32,110,101, 99,101,115, 97,114,121, 10,  9, 99,
-    111,100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,
-    117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37,
-     36,114,101,110, 97,109,105,110,103, 37,115, 42, 40, 46, 45,
-     41, 37,115, 42, 92,110, 39, 44, 32,102,117,110, 99,116,105,
-    111,110, 32, 40,114, 41, 32, 97,112,112,101,110,100,114,101,
-    110, 97,109,105,110,103, 40,114, 41, 32,114,101,116,117,114,
-    110, 32, 34, 92,110, 34, 32,101,110,100, 41, 10, 32,117,110,
-    116,105,108, 32,110,115,117, 98,115,116, 32, 61, 61, 32, 48,
-     10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 80,
-     97, 99,107, 97,103,101, 40, 95, 67,111,110,116, 97,105,110,
-    101,114,123,110, 97,109,101, 61,110, 97,109,101, 44, 32, 99,
-    111,100,101, 61, 99,111,100,101,125, 41, 10, 32,112,117,115,
-    104, 40,116, 41, 10, 32,112,114,101,112,114,111, 99,101,115,
-    115, 95,104,111,111,107, 40,116, 41, 10, 32,116, 58,112,114,
-    101,112,114,111, 99,101,115,115, 40, 41, 10, 32,112,114,101,
-    112, 97,114,115,101, 95,104,111,111,107, 40,116, 41, 10, 32,
-    116, 58,112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41,
-     10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110,
-     32,116, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/package.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,109,111,100,117,108,
-    101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,
-    116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114,
-     32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114,
-     97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,
-    117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58,
-     32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,
-    101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119,
-     97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,
-    100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,
-    110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116,
-     46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,
-    114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,
-    101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110,
-     32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44,
-     32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,
-    104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,
-    103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,
-    100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44,
-     32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,
-    101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,
-    101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105,
-     99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32,
-     77,111,100,117,108,101, 32, 99,108, 97,115,115, 10, 45, 45,
-     32, 82,101,112,114,101,115,101,110,116,115, 32,109,111,100,
-    117,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108,
-    108,111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,
-    114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32,
-     32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102,
-     32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101,
-     32,109,111,100,117,108,101, 46, 10, 99,108, 97,115,115, 77,
-    111,100,117,108,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,
-    115,116,121,112,101, 32, 61, 32, 39,109,111,100,117,108,101,
-     39, 10,125, 10, 99,108, 97,115,115, 77,111,100,117,108,101,
-     46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,
-    115, 77,111,100,117,108,101, 10,115,101,116,109,101,116, 97,
-    116, 97, 98,108,101, 40, 99,108, 97,115,115, 77,111,100,117,
-    108,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
-    101,114, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,
-    114, 32,109,111,100,117,108,101, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58,
-    114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10,
-     32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39,
-     39, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32,
-    111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,
-    108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117,
-     97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,110, 97,
-    109,101, 46, 46, 39, 34, 44, 39, 44,115,101,108,102, 58,104,
-     97,115,118, 97,114, 40, 41, 44, 39, 41, 59, 39, 41, 10, 32,
-    111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,
-    108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101,
-     40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,
-    108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41,
-     10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,
-    105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,
-     32, 32,115,101,108,102, 91,105, 93, 58,114,101,103,105,115,
-    116,101,114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32,
-     32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,
-    111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,
-    108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116,
-    111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,  9,112,111,112,
-     40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,
-    116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58,
-    112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,
-    111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 77,111,100,117,108,101,123, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,110, 97,109,101, 46, 46, 34, 39, 59, 34, 41, 10, 32,
-    108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,
-    101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,
-    115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105,
-    100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10,
-     32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-    125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10,
-     10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,
-    110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,
-    105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40,116, 41,
-     10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,
-    116, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10,
-     32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,
-    117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,
-    111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,
-    120,112,101, 99,116,115, 32,116,119,111, 32,115,116,114,105,
-    110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103,
-     32,116,104,101, 32,109,111,100,117,108,101, 32,110, 97,109,
-    101, 32, 97,110,100, 32, 98,111,100,121, 46, 10,102,117,110,
-     99,116,105,111,110, 32, 77,111,100,117,108,101, 32, 40,110,
-     44, 98, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,
-     95, 77,111,100,117,108,101, 40, 95, 67,111,110,116, 97,105,
-    110,101,114,123,110, 97,109,101, 61,110,125, 41, 10, 32,112,
-    117,115,104, 40,116, 41, 10, 32,116, 58,112, 97,114,115,101,
-     40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,
-    108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,
-    108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115,
-     10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110,
-     32,116, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/module.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,110, 97,109,101,115,
-    112, 97, 99,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,
-    114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,
-    109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101,
-     67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45,
-     45, 32, 74,117,108, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36,
-     73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32,
-     99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,
-    102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110,
-     32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,
-    116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121,
-     32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,
-    116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,
-    104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110,
-     32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,
-    105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32,
-     97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111,
-     98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,
-    111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110,
-     99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,
-    100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110,
-     99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,
-    105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45,
-     45, 32, 78, 97,109,101,115,112, 97, 99,101, 32, 99,108, 97,
-    115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,
-    115, 32, 97, 32,110, 97,109,101,115, 97,112, 99,101, 32,100,
-    101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83,
-    116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111,
-    119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45,
-     32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,108, 97,115,
-    115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32,123,105,
-    125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,
-    109, 98,101,114,115, 10, 99,108, 97,115,115, 78, 97,109,101,
-    115,112, 97, 99,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,
-    115,116,121,112,101, 32, 61, 32, 39,110, 97,109,101,115,112,
-     97, 99,101, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39,
-     39, 44, 10,125, 10, 99,108, 97,115,115, 78, 97,109,101,115,
-    112, 97, 99,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32,
-     99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 10,
-    115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108,
-     97,115,115, 78, 97,109,101,115,112, 97, 99,101, 44, 99,108,
-     97,115,115, 77,111,100,117,108,101, 41, 10, 10, 45, 45, 32,
-     80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,
-    110, 99,116,105,111,110, 32, 99,108, 97,115,115, 78, 97,109,
-    101,115,112, 97, 99,101, 58,112,114,105,110,116, 32, 40,105,
-    100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 78, 97,109,
-    101,115,112, 97, 99,101,123, 34, 41, 10, 32,112,114,105,110,
-    116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101,
-     32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,
-    101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108,
-     32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,
-    102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,
-    105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61,
-     32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,
-    116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,
-    108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73,
-    110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117,
-     99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95,
-     78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 32,
-    115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44,
-     99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 41,
-     10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,
-    116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,
-     67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32,
-     69,120,112,101, 99,116,115, 32,116,104,101, 32,110, 97,109,
-    101, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121, 32,
-    111,102, 32,116,104,101, 32,110, 97,109,101,115,112, 97, 99,
-    101, 46, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109,
-    101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10, 32,108,
-    111, 99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115,
-    112, 97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114,
-    123,110, 97,109,101, 61,110,125, 41, 10, 32,112,117,115,104,
-     40, 99, 41, 10, 32, 99, 58,112, 97,114,115,101, 40,115,116,
-    114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110,
-     40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109,
-    105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112,
-    111,112, 40, 41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/namespace.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,100,101,102,105,110,
-    101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,
-    116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114,
-     32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114,
-     97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,
-    117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58,
-     32,100,101,102,105,110,101, 46,108,117, 97, 44,118, 32, 49,
-     46, 50, 32, 49, 57, 57, 57, 47, 48, 55, 47, 50, 56, 32, 50,
-     50, 58, 50, 49, 58, 48, 56, 32, 99,101,108,101,115, 32, 69,
-    120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,
-    111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,
-    116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,
-    114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116,
-     32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,
-    105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,
-    119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,
-    101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32,
-     97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,
-    115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,
-    117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,
-    108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,
-    118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,
-    101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100,
-     97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,
-    101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,
-    102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45,
-     32, 68,101,102,105,110,101, 32, 99,108, 97,115,115, 10, 45,
-     45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32,
-    110,117,109,101,114,105, 99, 32, 99,111,110,115,116, 32,100,
-    101,102,105,110,105,116,105,111,110, 10, 45, 45, 32, 84,104,
-    101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,108,
-    100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10,
-     45, 45, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,111,110,
-    115,116, 97,110,116, 32,110, 97,109,101, 10, 99,108, 97,115,
-    115, 68,101,102,105,110,101, 32, 61, 32,123, 10, 32,110, 97,
-    109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115,
-    115, 68,101,102,105,110,101, 46, 95, 95,105,110,100,101,120,
-     32, 61, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 10,
-    115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108,
-     97,115,115, 68,101,102,105,110,101, 44, 99,108, 97,115,115,
-     70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101,
-    103,105,115,116,101,114, 32,100,101,102,105,110,101, 10,102,
-    117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101,
-    102,105,110,101, 58,114,101,103,105,115,116,101,114, 32, 40,
-    112,114,101, 41, 10,  9,105,102, 32,110,111,116, 32,115,101,
-    108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99,
-     95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10,
-      9,  9,114,101,116,117,114,110, 10,  9,101,110,100, 10, 10,
-     32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39,
-     39, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46,
-     39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116,
-     40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,
-    108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46,
-     46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59,
-     39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,
-    116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 58,
-    112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,
-    111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 68,101,102,105,110,101,123, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-    125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10,
-     10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,
-    111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,
-    116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116,
-     41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101,
-     40,116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41,
-     10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40,
-     41, 10, 10, 32,105,102, 32,116, 46,110, 97,109,101, 32, 61,
-     61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114,
-    111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,100,101,
-    102,105,110,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97,
-    112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,
-    110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,
-    115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,
-    101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,
-    101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101,
-     32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101, 10,
-    102,117,110, 99,116,105,111,110, 32, 68,101,102,105,110,101,
-     32, 40,110, 41, 10, 32,114,101,116,117,114,110, 32, 95, 68,
-    101,102,105,110,101,123, 10, 32, 32,110, 97,109,101, 32, 61,
-     32,110, 10, 32,125, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/define.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,101,110,117,109,101,
-    114, 97,116,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,
-    114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,
-    109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101,
-     67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45,
-     45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36,
-     73,100, 58, 32,101,110,117,109,101,114, 97,116,101, 46,108,
-    117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48,
-     49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 53, 32, 99,
-    101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32,
-     84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,
-    101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,
-    117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,
-    117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,
-    111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,
-    101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118,
-    105,100,101,100, 32,104,101,114,101,117,110,100,101,114, 32,
-    105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115,
-     34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45,
-     32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115,
-     32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,
-    116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110,
-    116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,
-    116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,
-    101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,
-    114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115,
-     46, 10, 10, 10, 45, 45, 32, 69,110,117,109,101,114, 97,116,
-    101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,
-    101,115,101,110,116,115, 32,101,110,117,109,101,114, 97,116,
-    105,111,110, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,
-    111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,114,
-    101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32,
-     32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32,
-     99,111,110,115,116, 97,110,116, 32,110, 97,109,101,115, 10,
-     99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 32,
-     61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,117,109,
-    101,114, 97,116,101, 46, 95, 95,105,110,100,101,120, 32, 61,
-     32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101,
-     10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,
-    108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 44, 99,
-    108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45,
-     45, 32,114,101,103,105,115,116,101,114, 32,101,110,117,109,
-    101,114, 97,116,105,111,110, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,
-    101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101,
-     41, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114,
-     32, 39, 39, 10, 32,108,111, 99, 97,108, 32,110,115,112, 97,
-     99,101, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97,
-     99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
-    101,114, 46, 99,117,114,114, 41, 10, 32,108,111, 99, 97,108,
-     32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,
-    102, 91,105, 93, 32,100,111, 10, 32, 32,111,117,116,112,117,
-    116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,
-    111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, 83,
-     44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101,
-    115, 91,105, 93, 46, 46, 39, 34, 44, 39, 46, 46,110,115,112,
-     97, 99,101, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 39,
-     41, 59, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10,
-     32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,
-    105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 69,110,117,109,101,
-    114, 97,116,101, 58,112,114,105,110,116, 32, 40,105,100,101,
-    110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,
-    116, 40,105,100,101,110,116, 46, 46, 34, 69,110,117,109,101,
-    114, 97,116,101,123, 34, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61,
-     32, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10,
-     32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,
-    108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32, 39, 34, 46, 46,115,101,108,102, 91,105, 93, 46, 46, 34,
-     39, 40, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101,
-    115, 91,105, 93, 46, 46, 34, 41, 44, 34, 41, 10, 32, 32,105,
-     32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46,
-     46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45,
-     32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,
-    114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110,
-     32, 95, 69,110,117,109,101,114, 97,116,101, 32, 40,116, 44,
-    118, 97,114,110, 97,109,101, 41, 10, 32,115,101,116,109,101,
-    116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115,
-     69,110,117,109,101,114, 97,116,101, 41, 10, 32, 97,112,112,
-    101,110,100, 40,116, 41, 10, 32, 97,112,112,101,110,100,101,
-    110,117,109, 40,116, 41, 10,  9, 32,105,102, 32,118, 97,114,
-    110, 97,109,101, 32, 97,110,100, 32,118, 97,114,110, 97,109,
-    101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10,  9,  9,
-    105,102, 32,116, 46,110, 97,109,101, 32,126, 61, 32, 34, 34,
-     32,116,104,101,110, 10,  9,  9,  9, 86, 97,114,105, 97, 98,
-    108,101, 40,116, 46,110, 97,109,101, 46, 46, 34, 32, 34, 46,
-     46,118, 97,114,110, 97,109,101, 41, 10,  9,  9,101,108,115,
-    101, 10,  9,  9,  9,108,111, 99, 97,108, 32,110,115, 32, 61,
-     32,103,101,116, 99,117,114,114,110, 97,109,101,115,112, 97,
-     99,101, 40, 41, 10,  9,  9,  9,119, 97,114,110,105,110,103,
-     40, 34, 86, 97,114,105, 97, 98,108,101, 32, 34, 46, 46,110,
-    115, 46, 46,118, 97,114,110, 97,109,101, 46, 46, 34, 32,111,
-    102, 32,116,121,112,101, 32, 60, 97,110,111,110,121,109,111,
-    117,115, 32,101,110,117,109, 62, 32,105,115, 32,100,101, 99,
-    108, 97,114,101,100, 32, 97,115, 32,114,101, 97,100, 45,111,
-    110,108,121, 34, 41, 10,  9,  9,  9, 86, 97,114,105, 97, 98,
-    108,101, 40, 34,116,111,108,117, 97, 95,114,101, 97,100,111,
-    110,108,121, 32,105,110,116, 32, 34, 46, 46,118, 97,114,110,
-     97,109,101, 41, 10,  9,  9,101,110,100, 10,  9,101,110,100,
-     10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10,
-     45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10,
-     45, 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,
-    114,105,110,103, 32,114,101,112,114,101,115,101,110,116,105,
-    110,103, 32,116,104,101, 32,101,110,117,109,101,114, 97,116,
-    101, 32, 98,111,100,121, 10,102,117,110, 99,116,105,111,110,
-     32, 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98,
-     44,118, 97,114,110, 97,109,101, 41, 10,  9, 98, 32, 61, 32,
-    115,116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32,
-     34, 44, 91, 37,115, 92,110, 93, 42,125, 34, 44, 32, 34, 92,
-    110,125, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,
-    116,101, 32,108, 97,115,116, 32, 39, 44, 39, 10, 32,108,111,
-     99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,
-    116,114,115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39,
-     44, 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,
-    101, 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108,
-     32,105, 32, 61, 32, 49, 10, 32,108,111, 99, 97,108, 32,101,
-     32, 61, 32,123,110, 61, 48,125, 10, 32,119,104,105,108,101,
-     32,116, 91,105, 93, 32,100,111, 10, 32, 32,108,111, 99, 97,
-    108, 32,116,116, 32, 61, 32,115,112,108,105,116, 40,116, 91,
-    105, 93, 44, 39, 61, 39, 41, 32, 32, 45, 45, 32,100,105,115,
-     99, 97,114,100, 32,105,110,105,116,105, 97,108, 32,118, 97,
-    108,117,101, 10, 32, 32,101, 46,110, 32, 61, 32,101, 46,110,
-     32, 43, 32, 49, 10, 32, 32,101, 91,101, 46,110, 93, 32, 61,
-     32,116,116, 91, 49, 93, 10, 32, 32,105, 32, 61, 32,105, 43,
-     49, 10, 32,101,110,100, 10, 32, 45, 45, 32,115,101,116, 32,
-    108,117, 97, 32,110, 97,109,101,115, 10, 32,105, 32, 32, 61,
-     32, 49, 10, 32,101, 46,108,110, 97,109,101,115, 32, 61, 32,
-    123,125, 10, 32,108,111, 99, 97,108, 32,110,115, 32, 61, 32,
-    103,101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,
-    101, 40, 41, 10, 32,119,104,105,108,101, 32,101, 91,105, 93,
-     32,100,111, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61,
-     32,115,112,108,105,116, 40,101, 91,105, 93, 44, 39, 64, 39,
-     41, 10, 32, 32,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93,
-     10,  9,  9,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,
-    116,104,101,110, 10,  9,  9, 32,116, 91, 50, 93, 32, 61, 32,
-     97,112,112,108,121,114,101,110, 97,109,105,110,103, 40,116,
-     91, 49, 93, 41, 10,  9,  9,101,110,100, 10, 32, 32,101, 46,
-    108,110, 97,109,101,115, 91,105, 93, 32, 61, 32,116, 91, 50,
-     93, 32,111,114, 32,116, 91, 49, 93, 10, 32, 32, 95,103,108,
-    111, 98, 97,108, 95,101,110,117,109,115, 91, 32,110,115, 46,
-     46,101, 91,105, 93, 32, 93, 32, 61, 32, 40,110,115, 46, 46,
-    101, 91,105, 93, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49,
-     10, 32,101,110,100, 10,  9,101, 46,110, 97,109,101, 32, 61,
-     32,110, 10,  9,105,102, 32,110, 32,126, 61, 32, 34, 34, 32,
-    116,104,101,110, 10,  9,  9, 84,121,112,101,100,101,102, 40,
-     34,105,110,116, 32, 34, 46, 46,110, 41, 10,  9,101,110,100,
-     10, 32,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,
-    114, 97,116,101, 40,101, 44, 32,118, 97,114,110, 97,109,101,
-     41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/enumerate.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,100,101, 99,108, 97,
-    114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45,
-     32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,
-    100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32,
-     84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111,
-     10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45,
-     32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,
-    115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,
-    115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99,
-     97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101,
-     32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,
-    102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,
-    111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101,
-    100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32,
-    111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98,
-     97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,
-    101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111,
-     32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,
-    112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110,
-     97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,
-    117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104,
-     97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,
-    111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10,
-     10, 45, 45, 32, 68,101, 99,108, 97,114, 97,116,105,111,110,
-     32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,
-    115,101,110,116,115, 32,118, 97,114,105, 97, 98,108,101, 44,
-     32,102,117,110, 99,116,105,111,110, 44, 32,111,114, 32, 97,
-    114,103,117,109,101,110,116, 32,100,101, 99,108, 97,114, 97,
-    116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115,
-     32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32,
-    102,105,101,108,100,115, 58, 10, 45, 45, 32, 32,109,111,100,
-     32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,
-    101,114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,
-    116,121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61,
-     32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102,
-     32,114,101,112,114,101,115,101,110,116,105,110,103, 32, 97,
-     32,112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,
-    101,102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,
-    109,101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,100,
-    105,109, 32, 32, 61, 32,100,105,109,101,110,115,105,111,110,
-     44, 32,105,102, 32, 97, 32,118,101, 99,116,111,114, 10, 45,
-     45, 32, 32,100,101,102, 32, 32, 61, 32,100,101,102, 97,117,
-    108,116, 32,118, 97,108,117,101, 44, 32,105,102, 32, 97,110,
-    121, 32, 40,111,110,108,121, 32,102,111,114, 32, 97,114,103,
-    117,109,101,110,116,115, 41, 10, 45, 45, 32, 32,114,101,116,
-     32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44,
-     32,105,102, 32,118, 97,108,117,101, 32,105,115, 32,116,111,
-     32, 98,101, 32,114,101,116,117,114,110,101,100, 32, 40,111,
-    110,108,121, 32,102,111,114, 32, 97,114,103,117,109,101,110,
-    116,115, 41, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114,
-     97,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32,
-     61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39,
-     39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32,
-    110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32,100,105,109,
-     32, 61, 32, 39, 39, 44, 10, 32,114,101,116, 32, 61, 32, 39,
-     39, 44, 10, 32,100,101,102, 32, 61, 32, 39, 39, 10,125, 10,
-     99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,
-    110, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,
-    115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 10,115,
-    101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,
-    115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 44, 99,
-    108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45,
-     45, 32, 67,114,101, 97,116,101, 32, 97,110, 32,117,110,105,
-    113,117,101, 32,118, 97,114,105, 97, 98,108,101, 32,110, 97,
-    109,101, 10,102,117,110, 99,116,105,111,110, 32, 99,114,101,
-     97,116,101, 95,118, 97,114,110, 97,109,101, 32, 40, 41, 10,
-     32,105,102, 32,110,111,116, 32, 95,118, 97,114,110,117,109,
-     98,101,114, 32,116,104,101,110, 32, 95,118, 97,114,110,117,
-    109, 98,101,114, 32, 61, 32, 48, 32,101,110,100, 10, 32, 95,
-    118, 97,114,110,117,109, 98,101,114, 32, 61, 32, 95,118, 97,
-    114,110,117,109, 98,101,114, 32, 43, 32, 49, 10, 32,114,101,
-    116,117,114,110, 32, 34,116,111,108,117, 97, 95,118, 97,114,
-     95, 34, 46, 46, 95,118, 97,114,110,117,109, 98,101,114, 10,
-    101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100,
-    101, 99,108, 97,114, 97,116,105,111,110, 32,110, 97,109,101,
-     10, 45, 45, 32, 73,116, 32, 97,108,115,111, 32,105,100,101,
-    110,116,105,102,105,101,115, 32,100,101,102, 97,117,108,116,
-     32,118, 97,108,117,101,115, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,
-    105,111,110, 58, 99,104,101, 99,107,110, 97,109,101, 32, 40,
-     41, 10, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,115,
-    101,108,102, 46,110, 97,109,101, 44, 49, 44, 49, 41, 32, 61,
-     61, 32, 39, 91, 39, 32, 97,110,100, 32,110,111,116, 32,102,
-    105,110,100,116,121,112,101, 40,115,101,108,102, 46,116,121,
-    112,101, 41, 32,116,104,101,110, 10, 32, 32,115,101,108,102,
-     46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,116,121,
-    112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32,
-     32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,
-    116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37,
-    115, 42, 39, 41, 10, 32, 32,115,101,108,102, 46,116,121,112,
-    101, 32, 61, 32,109, 91,109, 46,110, 93, 10, 32, 32,115,101,
-    108,102, 46,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116,
-     40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 10, 32,101,110,
-    100, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,
-    112,108,105,116, 40,115,101,108,102, 46,110, 97,109,101, 44,
-     39, 61, 39, 41, 10, 32,105,102, 32,116, 46,110, 61, 61, 50,
-     32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97,
-    109,101, 32, 61, 32,116, 91, 49, 93, 10, 32, 32,115,101,108,
-    102, 46,100,101,102, 32, 61, 32,102,105,110,100, 95,101,110,
-    117,109, 95,118, 97,114, 40,116, 91,116, 46,110, 93, 41, 10,
-     32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 44,
-    101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,
-    101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40, 46, 45,
-     41, 37, 93, 34, 41, 10, 32,105,102, 32, 98, 32,116,104,101,
-    110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61,
-     32,115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97,
-    109,101, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32,115,101,108,
-    102, 46,100,105,109, 32, 61, 32,102,105,110,100, 95,101,110,
-    117,109, 95,118, 97,114, 40,100, 41, 10, 32,101,110,100, 10,
-     10, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101,
-     32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102,
-     46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39,
-     32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32,
-     61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101,
-    108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116,
-    101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32,101,108,
-    115,101,105,102, 32,115,101,108,102, 46,107,105,110,100, 61,
-     61, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32,105,
-    102, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 39,
-     32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126,
-     61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,115,101,108,
-    102, 46,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116,
-    121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10,
-     32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,
-     99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40,
-     41, 10, 32, 32,101,108,115,101,105,102, 32,102,105,110,100,
-    116,121,112,101, 40,115,101,108,102, 46,110, 97,109,101, 41,
-     32,116,104,101,110, 10, 32, 32, 32,105,102, 32,115,101,108,
-    102, 46,116,121,112,101, 61, 61, 39, 39, 32,116,104,101,110,
-     32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101,
-    108,102, 46,110, 97,109,101, 10, 32, 32, 32,101,108,115,101,
-     32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101,
-    108,102, 46,116,121,112,101, 46, 46, 39, 32, 39, 46, 46,115,
-    101,108,102, 46,110, 97,109,101, 32,101,110,100, 10, 32, 32,
-     32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,
-    101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10,
-     32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45,
-     32, 97,100,106,117,115,116, 32,116,121,112,101, 32,111,102,
-     32,115,116,114,105,110,103, 10, 32,105,102, 32,115,101,108,
-    102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114,
-     39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,
-    126, 61, 32, 39, 39, 32,116,104,101,110, 10,  9, 32,115,101,
-    108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114,
-     42, 39, 10, 32,101,110,100, 10, 10,  9,105,102, 32,115,101,
-    108,102, 46,107,105,110,100, 32, 97,110,100, 32,115,101,108,
-    102, 46,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39,
-     32,116,104,101,110, 10,  9,  9,115,101,108,102, 46,110, 97,
-    109,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117,
-     98, 40,115,101,108,102, 46,110, 97,109,101, 44, 32, 34, 58,
-     46, 42, 36, 34, 44, 32, 34, 34, 41, 32, 45, 45, 32, 63, 63,
-     63, 10,  9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32,
-     67,104,101, 99,107, 32,100,101, 99,108, 97,114, 97,116,105,
-    111,110, 32,116,121,112,101, 10, 45, 45, 32, 83,117, 98,115,
-    116,105,116,117,116,101,115, 32,116,121,112,101,100,101,102,
-     39,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-     97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,
-     99,104,101, 99,107,116,121,112,101, 32, 40, 41, 10, 10, 32,
-     45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,116,104,101,
-    114,101, 32,105,115, 32, 97, 32,112,111,105,110,116,101,114,
-     32,116,111, 32, 98, 97,115,105, 99, 32,116,121,112,101, 10,
-     32,108,111, 99, 97,108, 32, 98, 97,115,105, 99, 32, 61, 32,
-    105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,
-    112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,107,105,
-    110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32, 97,110,
-    100, 32, 98, 97,115,105, 99, 61, 61, 39,110,117,109, 98,101,
-    114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,
-    105,110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34,
-     37, 42, 34, 41, 32,116,104,101,110, 10, 32,  9,115,101,108,
-    102, 46,116,121,112,101, 32, 61, 32, 39, 95,117,115,101,114,
-    100, 97,116, 97, 39, 10, 32,  9,115,101,108,102, 46,112,116,
-    114, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 32,105,102,
-     32, 98, 97,115,105, 99, 32, 97,110,100, 32,115,101,108,102,
-     46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 10, 32,
-     32,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108,
-    102, 46,112,116,114, 10, 32, 32,115,101,108,102, 46,112,116,
-    114, 32, 61, 32,110,105,108, 10, 32, 32,105,102, 32,105,115,
-     98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101,
-     41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116,
-    104,101,110, 10, 32, 32,  9,115,101,108,102, 46,114,101,116,
-    117,114,110, 95,117,115,101,114,100, 97,116, 97, 32, 61, 32,
-    116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100,
-     10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,
-    116,104,101,114,101, 32,105,115, 32, 97,114,114, 97,121, 32,
-    116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 10,
-     32,105,102, 32,115,101,108,102, 46,100,105,109,126, 61, 39,
-     39, 32, 97,110,100, 32,115,101,108,102, 46,114,101,116,126,
-     61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,
-    111,114, 40, 39, 35,105,110,118, 97,108,105,100, 32,112, 97,
-    114, 97,109,101,116,101,114, 58, 32, 99, 97,110,110,111,116,
-     32,114,101,116,117,114,110, 32, 97,110, 32, 97,114,114, 97,
-    121, 32,111,102, 32,118, 97,108,117,101,115, 39, 41, 10, 32,
-    101,110,100, 10, 32, 45, 45, 32,114,101,115,116,111,114,101,
-     32, 39,118,111,105,100, 42, 39, 32, 97,110,100, 32, 39,115,
-    116,114,105,110,103, 42, 39, 10, 32,105,102, 32,115,101,108,
-    102, 46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101,
-    114,100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108,
-    102, 46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42,
-     39, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46,
-    116,121,112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105,
-    110,103, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116,
-    121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32,
-    101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,112,
-    101, 32, 61, 61, 32, 39, 95,108,115,116, 97,116,101, 39, 32,
-    116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32,
-     61, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10,
-     32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,115,111,108,
-    118,101, 32,116,121,112,101,115, 32,105,110,115,105,100,101,
-     32,116,104,101, 32,116,101,109,112,108, 97,116,101,115, 10,
-     32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,116,
-    104,101,110, 10,  9, 32,115,101,108,102, 46,116,121,112,101,
-     32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112,
-    108, 97,116,101, 95,116,121,112,101,115, 40,115,101,108,102,
-     46,116,121,112,101, 41, 10, 32,101,110,100, 10, 10, 45, 45,
-     10, 45, 45, 32, 45, 45, 32,105,102, 32,114,101,116,117,114,
-    110,105,110,103, 32,118, 97,108,117,101, 44, 32, 97,117,116,
-    111,109, 97,116,105, 99, 97,108,108,121, 32,115,101,116, 32,
-    100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 45,
-     45, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126,
-     61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,
-    101,102, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 45,
-     45, 32, 32,115,101,108,102, 46,100,101,102, 32, 61, 32, 39,
-     48, 39, 10, 45, 45, 32,101,110,100, 10, 45, 45, 10, 10,101,
-    110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101,
-    115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,
-    116,121,112,101,115, 40,116,121,112,101, 41, 10, 10,  9,105,
-    102, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41,
-     32,116,104,101,110, 10,  9,  9,114,101,116,117,114,110, 32,
-    116,121,112,101, 10,  9,101,110,100, 10,  9,108,111, 99, 97,
-    108, 32, 98, 44, 95, 44,109, 32, 61, 32,115,116,114,105,110,
-    103, 46,102,105,110,100, 40,116,121,112,101, 44, 32, 34, 40,
-     37, 98, 60, 62, 41, 34, 41, 10,  9,105,102, 32, 98, 32,116,
-    104,101,110, 10, 10,  9,  9,109, 32, 61, 32,115,112,108,105,
-    116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,105,
-    110,103, 46,115,117, 98, 40,109, 44, 32, 50, 44, 32, 45, 50,
-     41, 44, 32, 34, 44, 34, 41, 10,  9,  9,102,111,114, 32,105,
-     61, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40,
-    109, 41, 32,100,111, 10,  9,  9,  9,109, 91,105, 93, 32, 61,
-     32,115,116,114,105,110,103, 46,103,115,117, 98, 40,109, 91,
-    105, 93, 44, 34, 37,115, 42, 40, 91, 37, 42, 38, 93, 41, 34,
-     44, 32, 34, 37, 49, 34, 41, 10,  9,  9,  9,109, 91,105, 93,
-     32, 61, 32,102,105,110,100,116,121,112,101, 40,109, 91,105,
-     93, 41, 32,111,114, 32,109, 91,105, 93, 10,  9,  9,  9,109,
-     91,105, 93, 32, 61, 32,114,101,115,111,108,118,101, 95,116,
-    101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40,109,
-     91,105, 93, 41, 10,  9,  9,101,110,100, 10, 10,  9,  9,108,
-    111, 99, 97,108, 32, 98, 44,105, 10,  9,  9,116,121,112,101,
-     44, 98, 44,105, 32, 61, 32, 98,114,101, 97,107, 95,116,101,
-    109,112,108, 97,116,101, 40,116,121,112,101, 41, 10,  9,  9,
-    108,111, 99, 97,108, 32,116,101,109,112,108, 97,116,101, 95,
-    112, 97,114,116, 32, 61, 32, 34, 60, 34, 46, 46,115,116,114,
-    105,110,103, 46,103,115,117, 98, 40, 99,111,110, 99, 97,116,
-     40,109, 44, 32, 49, 44, 32,109, 46,110, 41, 44, 32, 34, 32,
-     34, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10,  9,  9,
-    116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, 95,
-    116,101,109,112,108, 97,116,101, 40,116,121,112,101, 44, 32,
-     98, 44, 32,116,101,109,112,108, 97,116,101, 95,112, 97,114,
-    116, 41, 10,  9,  9,116,121,112,101, 32, 61, 32,115,116,114,
-    105,110,103, 46,103,115,117, 98, 40,116,121,112,101, 44, 32,
-     34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10,  9,101,
-    110,100, 10,  9,114,101,116,117,114,110, 32,116,121,112,101,
-     10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,
-     98,114,101, 97,107, 95,116,101,109,112,108, 97,116,101, 40,
-    115, 41, 10,  9,108,111, 99, 97,108, 32, 98, 44,101, 44,116,
-    105,109,112,108, 32, 61, 32,115,116,114,105,110,103, 46,102,
-    105,110,100, 40,115, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34,
-     41, 10,  9,105,102, 32,116,105,109,112,108, 32,116,104,101,
-    110, 10,  9,  9,115, 32, 61, 32,115,116,114,105,110,103, 46,
-    103,115,117, 98, 40,115, 44, 32, 34, 37, 98, 60, 62, 34, 44,
-     32, 34, 34, 41, 10,  9,  9,114,101,116,117,114,110, 32,115,
-     44, 32, 98, 44, 32,116,105,109,112,108, 10,  9,101,108,115,
-    101, 10,  9,  9,114,101,116,117,114,110, 32,115, 44, 32, 48,
-     44, 32,110,105,108, 10,  9,101,110,100, 10,101,110,100, 10,
-     10,102,117,110, 99,116,105,111,110, 32,114,101, 98,117,105,
-    108,100, 95,116,101,109,112,108, 97,116,101, 40,115, 44, 32,
-     98, 44, 32,116,105,109,112,108, 41, 10, 10,  9,105,102, 32,
-     98, 32, 61, 61, 32, 48, 32,116,104,101,110, 10,  9,  9,114,
-    101,116,117,114,110, 32,115, 10,  9,101,110,100, 10, 10,  9,
-    114,101,116,117,114,110, 32,115,116,114,105,110,103, 46,115,
-    117, 98, 40,115, 44, 32, 49, 44, 32, 98, 45, 49, 41, 46, 46,
-    116,105,109,112,108, 46, 46,115,116,114,105,110,103, 46,115,
-    117, 98, 40,115, 44, 32, 98, 44, 32, 45, 49, 41, 10,101,110,
-    100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,
-    104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-     97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,
-    112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,
-    111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 68,101, 99,108, 97,114, 97,116,105,111,
-    110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34,
-     46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44,
-     34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116,
-     46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,
-    115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,
-    101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    100,105,109, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
-     46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,101,
-    102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,
-    101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,
-    116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101,116, 32,
-     32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116,
-     46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,
-    115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101,
-     99,107, 32,105,102, 32, 97,114,114, 97,121, 32,111,102, 32,
-    118, 97,108,117,101,115, 32, 97,114,101, 32,114,101,116,117,
-    114,110,101,100, 32,116,111, 32, 76,117, 97, 10,102,117,110,
-     99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108,
-     97,114, 97,116,105,111,110, 58,114,101,113,117,105,114,101,
-     99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10,
-     32,105,102, 32,115,101,108,102, 46,109,111,100, 32,126, 61,
-     32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 10,  9, 32,
-     32, 32, 32,115,101,108,102, 46,100,105,109, 32, 97,110,100,
-     32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39,
-     32, 97,110,100, 10,  9,  9,  9,  9, 32,110,111,116, 32,105,
-    115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,
-    101, 41, 32, 97,110,100, 10,  9,  9,  9,  9, 32,115,101,108,
-    102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,
-    110, 10,  9,  9,108,111, 99, 97,108, 32,116,121,112,101, 32,
-     61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,
-    101, 44, 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34,
-     44, 34, 34, 41, 10,  9,  9,116, 91,116,121,112,101, 93, 32,
-     61, 32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,
-    116, 95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,
-    109,112,108, 97,116,101, 40,116,121,112,101, 41, 10,  9,  9,
-    114,101,116,117,114,110, 32,116,114,117,101, 10,  9,101,110,
-    100, 10,  9,114,101,116,117,114,110, 32,102, 97,108,115,101,
-     10,101,110,100, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,
-    101, 32,116, 97,103, 10,102,117,110, 99,116,105,111,110, 32,
-     99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,
-    110, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 10,
-      9,115,101,108,102, 46,116,121,112,101, 32, 61, 32,116,121,
-    112,101,118, 97,114, 40,115,101,108,102, 46,116,121,112,101,
-     41, 10,  9,105,102, 32,115,116,114,102,105,110,100, 40,115,
-    101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39,
-     41, 32,116,104,101,110, 10,  9,  9,115,101,108,102, 46,116,
-    121,112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46,
-     46,115,101,108,102, 46,116,121,112,101, 10,  9,  9,115,101,
-    108,102, 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,
-    101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116, 37,
-    115, 42, 39, 44, 39, 39, 41, 10,  9,101,110,100, 10,101,110,
-    100, 10, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116,
-    121,112,101, 32, 99,104,101, 99,107,105,110,103, 10,102,117,
-    110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,
-    108, 97,114, 97,116,105,111,110, 58,111,117,116, 99,104,101,
-     99,107,116,121,112,101, 32, 40,110, 97,114,103, 41, 10, 32,
-    108,111, 99, 97,108, 32,100,101,102, 10, 32,108,111, 99, 97,
-    108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,
-    101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,
-    101,108,102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,
-    110, 10, 32, 32,100,101,102, 32, 61, 32, 49, 10, 32,101,108,
-    115,101, 10, 32, 32,100,101,102, 32, 61, 32, 48, 10, 32,101,
-    110,100, 10, 32,105,102, 32,115,101,108,102, 46,100,105,109,
-     32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,  9, 45, 45,
-    105,102, 32,116, 61, 61, 39,115,116,114,105,110,103, 39, 32,
-    116,104,101,110, 10,  9, 45, 45,  9,114,101,116,117,114,110,
-     32, 39,116,111,108,117, 97, 95,105,115,115,116,114,105,110,
-    103, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44,
-     39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,
-    101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,
-    114, 41, 39, 10,  9, 45, 45,101,108,115,101, 10,  9,114,101,
-    116,117,114,110, 32, 39,116,111,108,117, 97, 95,105,115,116,
-     97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 46,
-     46,110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,
-    117, 97, 95,101,114,114, 41, 39, 10, 32,  9, 45, 45,101,110,
-    100, 10, 32,101,108,115,101,105,102, 32,116, 32,116,104,101,
-    110, 10,  9,114,101,116,117,114,110, 32, 39,116,111,108,117,
-     97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,
-    117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39,
-     44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,
-    117, 97, 95,101,114,114, 41, 39, 10, 32,101,108,115,101, 10,
-     32, 32,114,101,116,117,114,110, 32, 39,116,111,108,117, 97,
-     95,105,115,117,115,101,114,116,121,112,101, 40,116,111,108,
-    117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39,
-     44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46,
-     46, 39, 34, 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,
-    116,111,108,117, 97, 95,101,114,114, 41, 39, 10, 32,101,110,
-    100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110,
-     32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,
-    111,110, 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,
-    116,105,111,110, 32, 40,110, 97,114,103, 44, 32, 99,112,108,
-    117,115,112,108,117,115, 41, 10, 32,108,111, 99, 97,108, 32,
-     97,114,114, 97,121, 32, 61, 32,115,101,108,102, 46,100,105,
-    109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,
-    117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109, 41,
-     61, 61,110,105,108, 10,  9,108,111, 99, 97,108, 32,108,105,
-    110,101, 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,
-    112,116,114, 32, 61, 32, 39, 39, 10,  9,108,111, 99, 97,108,
-     32,109,111,100, 10,  9,108,111, 99, 97,108, 32,116,121,112,
-    101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 32,
-    105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32,
-     39, 39, 32,116,104,101,110, 10,  9, 32,116,121,112,101, 32,
-     61, 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,
-    101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 44, 39, 39,
-     41, 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,
-    115, 32, 99,111,110,115,116, 32,109,111,100,105,102,105,101,
-    114, 32,102,111,114, 32, 97,114,114, 97,121,115, 10, 32,101,
-    110,100, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114,
-    126, 61, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115,
-     98, 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,
-    110, 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100,
-     10, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,
-    112, 97,114, 97,109, 40,108,105,110,101, 44, 34, 32, 34, 44,
-    115,101,108,102, 46,109,111,100, 44,116,121,112,101, 44,112,
-    116,114, 41, 10, 32,105,102, 32, 97,114,114, 97,121, 32,116,
-    104,101,110, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111,
-    110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44,
-     39, 42, 39, 41, 10, 32,101,110,100, 10, 32,108,105,110,101,
-     32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,
-    108,105,110,101, 44,115,101,108,102, 46,110, 97,109,101, 41,
-     10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126,
-     61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,105,102, 32,
-    116,111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,
-    105,109, 41,126, 61,110,105,108, 32,116,104,101,110, 10, 32,
-     32, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,
-    112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 91, 39, 44,
-    115,101,108,102, 46,100,105,109, 44, 39, 93, 59, 39, 41, 10,
-     32, 32,101,108,115,101, 10,  9,105,102, 32, 99,112,108,117,
-    115,112,108,117,115, 32,116,104,101,110, 10,  9,  9,108,105,
-    110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,
-    109, 40,108,105,110,101, 44, 39, 32, 61, 32,110,101,119, 39,
-     44,116,121,112,101, 44,112,116,114, 44, 39, 91, 39, 46, 46,
-    115,101,108,102, 46,100,105,109, 46, 46, 39, 93, 59, 39, 41,
-     10,  9,101,108,115,101, 10,  9,  9,108,105,110,101, 32, 61,
-     32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,
-    110,101, 44, 39, 32, 61, 32, 40, 39, 44,116,121,112,101, 44,
-    112,116,114, 44, 39, 42, 41, 39, 44, 10,  9,  9, 39,109, 97,
-    108,108,111, 99, 40, 40, 39, 44,115,101,108,102, 46,100,105,
-    109, 44, 39, 41, 42,115,105,122,101,111,102, 40, 39, 44,116,
-    121,112,101, 44,112,116,114, 44, 39, 41, 41, 59, 39, 41, 10,
-      9,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,108,115,
-    101, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,105,
-    115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10, 32, 32,
-    108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,
-    114, 97,109, 40,108,105,110,101, 44, 39, 32, 61, 32, 39, 41,
-     10, 32, 32,105,102, 32,116, 32, 61, 61, 32, 39,115,116, 97,
-    116,101, 39, 32,116,104,101,110, 10, 32, 32,  9,108,105,110,
-    101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109,
-     40,108,105,110,101, 44, 32, 39,116,111,108,117, 97, 95, 83,
-     59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32,  9, 45,
-     45,112,114,105,110,116, 40, 34,116, 32,105,115, 32, 34, 46,
-     46,116,111,115,116,114,105,110,103, 40,116, 41, 46, 46, 34,
-     44, 32,112,116,114, 32,105,115, 32, 34, 46, 46,116,111,115,
-    116,114,105,110,103, 40,115,101,108,102, 46,112,116,114, 41,
-     41, 10, 32, 32,  9,105,102, 32,116, 32, 61, 61, 32, 39,110,
-    117,109, 98,101,114, 39, 32, 97,110,100, 32,115,116,114,105,
-    110,103, 46,102,105,110,100, 40,115,101,108,102, 46,112,116,
-    114, 44, 32, 34, 37, 42, 34, 41, 32,116,104,101,110, 10, 32,
-     32,  9,  9,116, 32, 61, 32, 39,117,115,101,114,100, 97,116,
-     97, 39, 10, 32, 32,  9,101,110,100, 10,  9,105,102, 32,110,
-    111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39,
-     39, 32,116,104,101,110, 32,108,105,110,101, 32, 61, 32, 99,
-    111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101,
-     44, 39, 42, 39, 41, 32,101,110,100, 10,  9,108,105,110,101,
-     32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,
-    108,105,110,101, 44, 39, 40, 40, 39, 44,115,101,108,102, 46,
-    109,111,100, 44,116,121,112,101, 41, 10,  9,105,102, 32,110,
-    111,116, 32,116, 32,116,104,101,110, 10,  9,  9,108,105,110,
-    101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109,
-     40,108,105,110,101, 44, 39, 42, 39, 41, 10,  9,101,110,100,
-     10,  9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,
-    112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 41, 32, 39,
-     41, 10,  9,  9,  9,105,102, 32,105,115,101,110,117,109, 40,
-    116,121,112,101, 41, 32,116,104,101,110, 10,  9,  9,  9,108,
-    105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114,
-     97,109, 40,108,105,110,101, 44, 39, 40,105,110,116, 41, 32,
-     39, 41, 10,  9,  9,  9,101,110,100, 10,  9,108,111, 99, 97,
-    108, 32,100,101,102, 32, 61, 32, 48, 10,  9,105,102, 32,115,
-    101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,116,
-    104,101,110, 10,  9,  9,100,101,102, 32, 61, 32,115,101,108,
-    102, 46,100,101,102, 10,  9,  9,105,102, 32, 40,112,116,114,
-     32, 61, 61, 32, 39, 39, 32,111,114, 32,115,101,108,102, 46,
-    112,116,114, 32, 61, 61, 32, 39, 38, 39, 41, 32, 97,110,100,
-     32,110,111,116, 32,116, 32,116,104,101,110, 10,  9,  9,  9,
-    100,101,102, 32, 61, 32, 34, 40,118,111,105,100, 42, 41, 38,
-     40, 99,111,110,115,116, 32, 34, 46, 46,116,121,112,101, 46,
-     46, 34, 41, 34, 46, 46,100,101,102, 10,  9,  9,101,110,100,
-     10,  9,101,110,100, 10,  9,105,102, 32,116, 32,116,104,101,
-    110, 10,  9,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,
-    116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39,116,111,
-    108,117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,
-    108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,
-     39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10,  9,101,
-    108,115,101, 10,  9,108,105,110,101, 32, 61, 32, 99,111,110,
-     99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39,
-    116,111,108,117, 97, 95,116,111,117,115,101,114,116,121,112,
-    101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,
-    103, 44, 39, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39,
-     41, 10,  9,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,
-    110,100, 10,  9,114,101,116,117,114,110, 32,108,105,110,101,
-     10,101,110,100, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114,
-    101, 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,
-    114, 97,116,105,111,110, 58,100,101, 99,108, 97,114,101, 32,
-     40,110, 97,114,103, 41, 10, 32,105,102, 32,115,101,108,102,
-     46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,
-    116,111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,
-    105,109, 41, 61, 61,110,105,108, 32,116,104,101,110, 10,  9,
-     32,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102,
-     32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39,
-     41, 10,  9,  9,111,117,116,112,117,116, 40,115,101,108,102,
-     58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105,
-    111,110, 40,110, 97,114,103, 44,116,114,117,101, 41, 41, 10,
-      9,  9,111,117,116,112,117,116, 40, 39, 35,101,108,115,101,
-     92,110, 39, 41, 10,  9,  9,111,117,116,112,117,116, 40,115,
-    101,108,102, 58, 98,117,105,108,100,100,101, 99,108, 97,114,
-     97,116,105,111,110, 40,110, 97,114,103, 44,102, 97,108,115,
-    101, 41, 41, 10,  9, 32,111,117,116,112,117,116, 40, 39, 35,
-    101,110,100,105,102, 92,110, 39, 41, 10,  9,101,108,115,101,
-     10,  9,  9,111,117,116,112,117,116, 40,115,101,108,102, 58,
-     98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105,111,
-    110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, 10,
-      9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 71,101,
-    116, 32,112, 97,114, 97,109,101,116,101,114, 32,118, 97,108,
-    117,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,103,
-    101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10,
-     32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61,
-     32, 39, 39, 32,116,104,101,110, 10,  9, 32,108,111, 99, 97,
-    108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,
-    101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116,
-     32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 32, 32,123, 39, 41, 10,  9, 32,111,117,116,112,117,
-    116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85,
-     65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32,
-     32,108,111, 99, 97,108, 32,100,101,102, 59, 32,105,102, 32,
-    115,101,108,102, 46,100,101,102,126, 61, 39, 39, 32,116,104,
-    101,110, 32,100,101,102, 61, 49, 32,101,108,115,101, 32,100,
-    101,102, 61, 48, 32,101,110,100, 10,  9,  9,108,111, 99, 97,
-    108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,
-    121,112,101, 41, 10,  9,  9,105,102, 32, 40,116, 41, 32,116,
-    104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,
-     32, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,
-    115, 39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,
-    111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39,
-     44, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39,
-     44,100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,
-    114,114, 41, 41, 39, 41, 10,  9,  9,101,108,115,101, 10, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105,102,
-     32, 40, 33,116,111,108,117, 97, 95,105,115,117,115,101,114,
-    116,121,112,101, 97,114,114, 97,121, 40,116,111,108,117, 97,
-     95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 34, 39, 44,
-    116,121,112,101, 44, 39, 34, 44, 39, 44,115,101,108,102, 46,
-    100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, 38,
-    116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10,  9,
-      9,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39,
-     32, 32, 32, 32,103,111,116,111, 32,116,111,108,117, 97, 95,
-    108,101,114,114,111,114, 59, 39, 41, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32, 32,101,108,115,101, 92,110, 39,
-     41, 10,  9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,
-    100,105,102, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,
-    116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32, 32, 32,105,110,116, 32,105, 59,
-     39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,
-     32, 32,102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46,
-     46,115,101,108,102, 46,100,105,109, 46, 46, 39, 59,105, 43,
-     43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 32,
-     61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41,
-     10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32,
-     39, 39, 10, 32, 32,105,102, 32,115,101,108,102, 46,112,116,
-    114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32,
-     61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32, 32, 39, 44,115,101,108,102, 46,
-    110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41,
-     10, 32, 32,105,102, 32,110,111,116, 32,116, 32, 97,110,100,
-     32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,
-    117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10,
-     32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,116,
-    121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32,116,
-     32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116,
-     40, 39, 42, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32,111,
-    117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32,108,
-    111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, 32,
-    105,102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, 32,
-     39, 39, 32,116,104,101,110, 32,100,101,102, 32, 61, 32,115,
-    101,108,102, 46,100,101,102, 32,101,110,100, 10, 32, 32,105,
-    102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,
-    112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,
-    101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117,
-     97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43,
-     49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10,
-     32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,
-    116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,101,108,
-    100,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97,
-     95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49,
-     44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32,
-     32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39,
-     32, 32, 32,125, 39, 41, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101,110,
-    100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97,109,
-    101,116,101,114, 32,118, 97,108,117,101, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,
-    114, 97,116,105,111,110, 58,115,101,116, 97,114,114, 97,121,
-     32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,110,111,116,
-     32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,116,
-    121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41,
-     32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126,
-     61, 32, 39, 39, 32,116,104,101,110, 10,  9, 32,108,111, 99,
-     97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,
-    115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,
-    116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112,117,
-    116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,111,117,116,112,
-    117,116, 40, 39, 32, 32, 32,105,110,116, 32,105, 59, 39, 41,
-     10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,102,
-    111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,
-    108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39,
-     41, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32,
-     61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41,
-     10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, 32,
-     32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,
-    108,117, 97, 95,112,117,115,104,102,105,101,108,100, 39, 46,
-     46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39,
-     44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40, 39, 44,
-     99,116, 44, 39, 41, 39, 44,115,101,108,102, 46,110, 97,109,
-    101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10, 32, 32,101,108,
-    115,101, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46,112,
-    116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32,
-     32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,
-    123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116,
-     40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,
-    115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,
-    111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,
-    100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,
-    110,101,119, 39, 44,116,121,112,101, 44, 39, 40, 39, 44,115,
-    101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 41, 59,
-     39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40,
-     39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,
-    102,105,101,108,100,117,115,101,114,116,121,112,101, 95, 97,
-    110,100, 95,116, 97,107,101,111,119,110,101,114,115,104,105,
-    112, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,
-    103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111,
-     98,106, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59,
-     39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40,
-     39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32,
-     32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,
-    105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61,
-     32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,
-    117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 44,
-    115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44,
-    115,105,122,101,111,102, 40, 39, 44,116,121,112,101, 44, 39,
-     41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,
-    117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,
-    117,115,104,102,105,101,108,100,117,115,101,114,116,121,112,
-    101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,
-    103, 44, 39, 44,105, 43, 49, 44,116,111,108,117, 97, 95,111,
-     98,106, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59,
-     39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40,
-     39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,125, 39,
-     41, 10, 32, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,
-    117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97,
-     95,112,117,115,104,102,105,101,108,100,117,115,101,114,116,
-    121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110,
-     97,114,103, 44, 39, 44,105, 43, 49, 44, 40,118,111,105,100,
-     42, 41, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39,
-     91,105, 93, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41,
-     59, 39, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,
-    100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125,
-     39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45,
-     32, 70,114,101,101, 32,100,121,110, 97,109,105, 99, 97,108,
-    108,121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,
-    114, 97,121, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-     97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,
-    102,114,101,101, 97,114,114, 97,121, 32, 40, 41, 10, 32,105,
-    102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39,
-     39, 32, 97,110,100, 32,116,111,110,117,109, 98,101,114, 40,
-    115,101,108,102, 46,100,105,109, 41, 61, 61,110,105,108, 32,
-    116,104,101,110, 10,  9, 32,111,117,116,112,117,116, 40, 39,
-     35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,
-    108,117,115, 92,110, 39, 41, 10,  9,  9,111,117,116,112,117,
-    116, 40, 39, 32, 32,100,101,108,101,116,101, 32, 91, 93, 39,
-     44,115,101,108,102, 46,110, 97,109,101, 44, 39, 59, 39, 41,
-     10,  9, 32,111,117,116,112,117,116, 40, 39, 35,101,108,115,
-    101, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,
-     39, 32, 32,102,114,101,101, 40, 39, 44,115,101,108,102, 46,
-    110, 97,109,101, 44, 39, 41, 59, 39, 41, 10,  9, 32,111,117,
-    116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39,
-     41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32,
-     80, 97,115,115, 32,112, 97,114, 97,109,101,116,101,114, 10,
-    102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,
-    101, 99,108, 97,114, 97,116,105,111,110, 58,112, 97,115,115,
-    112, 97,114, 32, 40, 41, 10, 32,105,102, 32,115,101,108,102,
-     46,112,116,114, 61, 61, 39, 38, 39, 32, 97,110,100, 32,110,
-    111,116, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102,
-     46,116,121,112,101, 41, 32,116,104,101,110, 10, 32, 32,111,
-    117,116,112,117,116, 40, 39, 42, 39, 46, 46,115,101,108,102,
-     46,110, 97,109,101, 41, 10, 32,101,108,115,101,105,102, 32,
-    115,101,108,102, 46,114,101,116, 61, 61, 39, 42, 39, 32,116,
-    104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 38,
-     39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 32,
-    101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40,115,
-    101,108,102, 46,110, 97,109,101, 41, 10, 32,101,110,100, 10,
-    101,110,100, 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,
-    112, 97,114, 97,109,101,116,101,114, 32,118, 97,108,117,101,
-     10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
-     68,101, 99,108, 97,114, 97,116,105,111,110, 58,114,101,116,
-    118, 97,108,117,101, 32, 40, 41, 10, 32,105,102, 32,115,101,
-    108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,
-    101,110, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116,
-     32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102,
-     46,116,121,112,101, 41, 10, 32, 32,105,102, 32,116, 32, 97,
-    110,100, 32,116,126, 61, 39, 39, 32,116,104,101,110, 10, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,
-    108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39,
-     40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44,
-     39, 41, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46,
-     46, 39, 41, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,
-    108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,
-    101, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100,
-     42, 41, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46,
-     46, 39, 44, 34, 39, 44,115,101,108,102, 46,116,121,112,101,
-     44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,
-     32,114,101,116,117,114,110, 32, 49, 10, 32,101,110,100, 10,
-     32,114,101,116,117,114,110, 32, 48, 10,101,110,100, 10, 10,
-     45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,
-    115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,
-    111,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,
-     32, 40,116, 41, 10, 10, 32,115,101,116,109,101,116, 97,116,
-     97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,101, 99,
-    108, 97,114, 97,116,105,111,110, 41, 10, 32,116, 58, 98,117,
-    105,108,100,110, 97,109,101,115, 40, 41, 10, 32,116, 58, 99,
-    104,101, 99,107,110, 97,109,101, 40, 41, 10, 32,116, 58, 99,
-    104,101, 99,107,116,121,112,101, 40, 41, 10, 32,108,111, 99,
-     97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,
-    101, 40,116, 46,116,121,112,101, 41, 32,111,114, 32,116, 46,
-    116,121,112,101, 10, 32,105,102, 32,110,111,116, 32,105,115,
-    101,110,117,109, 40,102,116, 41, 32,116,104,101,110, 10,  9,
-    116, 46,109,111,100, 44, 32,116, 46,116,121,112,101, 32, 61,
-     32, 97,112,112,108,121,116,121,112,101,100,101,102, 40,116,
-     46,109,111,100, 44, 32,102,116, 41, 10, 32,101,110,100, 10,
-     10, 32,105,102, 32,116, 46,107,105,110,100, 61, 61, 34,118,
-     97,114, 34, 32, 97,110,100, 32, 40,115,116,114,105,110,103,
-     46,102,105,110,100, 40,116, 46,109,111,100, 44, 32, 34,116,
-    111,108,117, 97, 95,112,114,111,112,101,114,116,121, 37,115,
-     34, 41, 32,111,114, 32,115,116,114,105,110,103, 46,102,105,
-    110,100, 40,116, 46,109,111,100, 44, 32, 34,116,111,108,117,
-     97, 95,112,114,111,112,101,114,116,121, 36, 34, 41, 41, 32,
-    116,104,101,110, 10, 32,  9,116, 46,109,111,100, 32, 61, 32,
-    115,116,114,105,110,103, 46,103,115,117, 98, 40,116, 46,109,
-    111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,
-    101,114,116,121, 34, 44, 32, 34,116,111,108,117, 97, 95,112,
-    114,111,112,101,114,116,121, 95, 95, 34, 46, 46,103,101,116,
-     95,112,114,111,112,101,114,116,121, 95,116,121,112,101, 40,
-     41, 41, 10, 32,101,110,100, 10, 10, 32,114,101,116,117,114,
-    110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,
-    115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,
-    101, 99,116,115, 32,116,104,101, 32,115,116,114,105,110,103,
-     32,100,101, 99,108, 97,114, 97,116,105,111,110, 46, 10, 45,
-     45, 32, 84,104,101, 32,107,105,110,100, 32,111,102, 32,100,
-    101, 99,108, 97,114, 97,116,105,111,110, 32, 99, 97,110, 32,
-     98,101, 32, 34,118, 97,114, 34, 32,111,114, 32, 34,102,117,
-    110, 99, 34, 46, 10,102,117,110, 99,116,105,111,110, 32, 68,
-    101, 99,108, 97,114, 97,116,105,111,110, 32, 40,115, 44,107,
-    105,110,100, 44,105,115, 95,112, 97,114, 97,109,101,116,101,
-    114, 41, 10, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97,
-    116,101, 32,115,112, 97, 99,101,115, 32,105,102, 32,100,101,
-    102, 97,117,108,116, 32,118, 97,108,117,101, 32,105,115, 32,
-    112,114,111,118,105,100,101,100, 10, 32,115, 32, 61, 32,103,
-    115,117, 98, 40,115, 44, 34, 37,115, 42, 61, 37,115, 42, 34,
-     44, 34, 61, 34, 41, 10, 32,115, 32, 61, 32,103,115,117, 98,
-     40,115, 44, 32, 34, 37,115, 42, 60, 34, 44, 32, 34, 60, 34,
-     41, 10, 10, 32,108,111, 99, 97,108, 32,100,101,102, 98, 44,
-    116,109,112,100,101,102, 10, 32,100,101,102, 98, 44, 95, 44,
-    116,109,112,100,101,102, 32, 61, 32,115,116,114,105,110,103,
-     46,102,105,110,100, 40,115, 44, 32, 34, 40, 61, 46, 42, 41,
-     36, 34, 41, 10, 32,105,102, 32,100,101,102, 98, 32,116,104,
-    101,110, 10, 32,  9,115, 32, 61, 32,115,116,114,105,110,103,
-     46,103,115,117, 98, 40,115, 44, 32, 34, 61, 46, 42, 36, 34,
-     44, 32, 34, 34, 41, 10, 32,101,108,115,101, 10, 32,  9,116,
-    109,112,100,101,102, 32, 61, 32, 39, 39, 10, 32,101,110,100,
-     10, 32,105,102, 32,107,105,110,100, 32, 61, 61, 32, 34,118,
-     97,114, 34, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,
-    104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,
-    118,111,105,100, 10, 32, 32,105,102, 32,115, 32, 61, 61, 32,
-     39, 39, 32,111,114, 32,115, 32, 61, 61, 32, 39,118,111,105,
-    100, 39, 32,116,104,101,110, 10, 32, 32, 32,114,101,116,117,
-    114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,
-    123,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 39, 44,
-     32,107,105,110,100, 32, 61, 32,107,105,110,100, 44, 32,105,
-    115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,
-    115, 95,112, 97,114, 97,109,101,116,101,114,125, 10, 32, 32,
-    101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,
-    104,101, 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,
-    109,111,100, 32,116,121,112,101, 42, 38, 32,110, 97,109,101,
-     10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,
-    105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39,
-     37, 42, 37,115, 42, 38, 39, 41, 10, 32,105,102, 32,116, 46,
-    110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,105,
-    102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99,
-     39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114,
-     40, 34, 35,105,110,118, 97,108,105,100, 32,102,117,110, 99,
-    116,105,111,110, 32,114,101,116,117,114,110, 32,116,121,112,
-    101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101,110,100, 10,
-     32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,
-    112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115,
-     42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61,
-     32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115,
-     40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,
-    114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,
-    116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61,
-     32,116, 91, 50, 93, 46, 46,116,109,112,100,101,102, 44, 10,
-     32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32,
-     32, 32,114,101,116, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32,
-     32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,
-    108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109,
-     46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41,
-     44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,109, 91,109,
-     46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,
-    111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49,
-     41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,
-    116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,
-    116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,
-    107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10,
-     32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,
-    111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 42, 42,
-     32,110, 97,109,101, 10, 32,116, 32, 61, 32,115,112,108,105,
-    116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 37,
-     42, 37,115, 42, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,
-    110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,105,
-    102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99,
-     39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114,
-     40, 34, 35,105,110,118, 97,108,105,100, 32,102,117,110, 99,
-    116,105,111,110, 32,114,101,116,117,114,110, 32,116,121,112,
-    101, 58, 32, 34, 46, 46,115, 41, 10, 32, 32,101,110,100, 10,
-     32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,
-    112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115,
-     42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61,
-     32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115,
-     40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,
-    114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,
-    116,105,111,110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61,
-     32,116, 91, 50, 93, 46, 46,116,109,112,100,101,102, 44, 10,
-     32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 32,
-     32, 32,114,101,116, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32,
-     32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,
-    108,100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109,
-     46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41,
-     44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,109, 91,109,
-     46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,
-    111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49,
-     41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,
-    116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,
-    116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,
-    107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10,
-     32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,
-    111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 38, 32,
-    110, 97,109,101, 10, 32,116, 32, 61, 32,115,112,108,105,116,
-     95, 99, 95,116,111,107,101,110,115, 40,115, 44, 39, 38, 39,
-     41, 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,
-    116,104,101,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,
-    109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44,
-     39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,
-    108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,
-    111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43,
-     39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101,
-     99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110,
-     97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,
-    100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39,
-     38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, 61,
-     32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, 97,
-    116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, 32,
-    116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112,101,
-     32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32,109,
-    111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49,
-     44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,
-    112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, 95,
-    112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,107,
-    105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, 10,
-     32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107,
-     32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, 32,
-    116,121,112,101, 42, 32,110, 97,109,101, 10, 32,108,111, 99,
-     97,108, 32,115, 49, 32, 61, 32,103,115,117, 98, 40,115, 44,
-     34, 40, 37, 98, 92, 91, 92, 93, 41, 34, 44,102,117,110, 99,
-    116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,110,
-     32,103,115,117, 98, 40,110, 44, 39, 37, 42, 39, 44, 39, 92,
-     49, 39, 41, 32,101,110,100, 41, 10, 32,116, 32, 61, 32,115,
-    112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115,
-     49, 44, 39, 37, 42, 39, 41, 10, 32,105,102, 32,116, 46,110,
-     32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32,116, 91,
-     50, 93, 32, 61, 32,103,115,117, 98, 40,116, 91, 50, 93, 44,
-     39, 92, 49, 39, 44, 39, 37, 42, 39, 41, 32, 45, 45, 32,114,
-    101,115,116,111,114,101, 32, 42, 32,105,110, 32,100,105,109,
-    101,110,115,105,111,110, 32,101,120,112,114,101,115,115,105,
-    111,110, 10, 32, 32, 45, 45,108,111, 99, 97,108, 32,109, 32,
-     61, 32,115,112,108,105,116, 40,116, 91, 49, 93, 44, 39, 37,
-    115, 37,115, 42, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,
-    109, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,
-    101,110,115, 40,116, 91, 49, 93, 44, 39, 37,115, 43, 39, 41,
-     10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108,
-     97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,
-    101, 32, 61, 32,116, 91, 50, 93, 46, 46,116,109,112,100,101,
-    102, 44, 10, 32, 32, 32,112,116,114, 32, 61, 32, 39, 42, 39,
-     44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,109, 91,109,
-     46,110, 93, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32,
-     61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108,
-     97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44,
-     32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,109,111,100,
-     32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109,
-     46,110, 45, 49, 41, 32, 32, 32, 44, 10, 32, 32, 32,105,115,
-     95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115,
-     95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32,
-    107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125,
-     10, 32,101,110,100, 10, 10, 32,105,102, 32,107,105,110,100,
-     32, 61, 61, 32, 39,118, 97,114, 39, 32,116,104,101,110, 10,
-     32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,
-    102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 32,
-    110, 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,
-    108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10,
-     32, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,
-    111,107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10,
-     32, 32,108,111, 99, 97,108, 32,118, 10, 32, 32,105,102, 32,
-    102,105,110,100,116,121,112,101, 40,116, 91,116, 46,110, 93,
-     41, 32,116,104,101,110, 32,118, 32, 61, 32, 99,114,101, 97,
-    116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 32,101,108,
-    115,101, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 59, 32,
-    116, 46,110, 32, 61, 32,116, 46,110, 45, 49, 32,101,110,100,
-     10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108,
-     97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,
-    101, 32, 61, 32,118, 46, 46,116,109,112,100,101,102, 44, 10,
-     32, 32, 32, 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,
-    117,105,108,100, 95,116,101,109,112,108, 97,116,101, 40,116,
-     91,116, 46,110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,
-    108, 41, 44, 10, 32, 32, 32,116,121,112,101, 32, 61, 32,116,
-     91,116, 46,110, 93, 44, 10, 32, 32, 32,109,111,100, 32, 61,
-     32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110,
-     45, 49, 41, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,
-    109,101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,
-    109,101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32,
-     61, 32,107,105,110,100, 10, 32, 32,125, 10, 10, 32,101,108,
-    115,101, 32, 45, 45, 32,107,105,110,100, 32, 61, 61, 32, 34,
-    102,117,110, 99, 34, 10, 10, 32, 32, 45, 45, 32, 99,104,101,
-     99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,
-    100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45,
-     45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37,
-    115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112,
-    108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44,
-     39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,
-    118, 32, 61, 32,116, 91,116, 46,110, 93, 32, 32, 45, 45, 32,
-    108, 97,115,116, 32,119,111,114,100, 32,105,115, 32,116,104,
-    101, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101,
-     10, 32, 32,108,111, 99, 97,108, 32,116,112, 44,109,100, 10,
-     32, 32,105,102, 32,116, 46,110, 62, 49, 32,116,104,101,110,
-     10, 32, 32, 32,116,112, 32, 61, 32,116, 91,116, 46,110, 45,
-     49, 93, 10, 32, 32, 32,109,100, 32, 61, 32, 99,111,110, 99,
-     97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10, 32,
-     32,101,110,100, 10, 32, 32, 45, 45,105,102, 32,116,112, 32,
-    116,104,101,110, 32,116,112, 32, 61, 32,114,101, 98,117,105,
-    108,100, 95,116,101,109,112,108, 97,116,101, 40,116,112, 44,
-     32,116, 98, 44, 32,116,105,109,112,108, 41, 32,101,110,100,
-     10, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108,
-     97,114, 97,116,105,111,110,123, 10, 32, 32, 32,110, 97,109,
-    101, 32, 61, 32,118, 44, 10, 32, 32, 32,116,121,112,101, 32,
-     61, 32,116,112, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32,
-    109,100, 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,
-    101,116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,
-    101,116,101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61,
-     32,107,105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10,
-     10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/declaration.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,118, 97,114,105, 97,
-     98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,
-    105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109,
-     97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67,
-     71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45,
-     32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,
-    100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,
-    111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,
-    116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,
-    114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116,
-     32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,
-    105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,
-    119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,
-    101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32,
-     97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,
-    115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,
-    117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,
-    108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,
-    118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,
-    101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100,
-     97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,
-    101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,
-    102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45,
-     32, 86, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115,
-     10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,
-     97, 32,101,120,116,101,114,110, 32,118, 97,114,105, 97, 98,
-    108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32,
-    109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97,
-    115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97,
-    108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,101,
-    110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97,
-    116,105,111,110, 46, 10, 99,108, 97,115,115, 86, 97,114,105,
-     97, 98,108,101, 32, 61, 32,123, 10, 32, 95,103,101,116, 32,
-     61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112,
-    101,100, 32,103,101,116, 32,102,117,110, 99,116,105,111,110,
-    115, 10, 32, 95,115,101,116, 32, 61, 32,123,125, 44, 32, 32,
-     32, 45, 45, 32,109, 97,112,112,101,100, 32,115,101,116, 32,
-    102,117,110, 99,116,105,111,110,115, 10,125, 10, 99,108, 97,
-    115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,110,
-    100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,105,
-     97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97, 98,
-    108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,
-    101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,
-    105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,
-    109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110,
-     32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,
-    112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,
-    111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,
-    101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
-     46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,
-    109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110,
-     97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,105,102, 32,
-    115,101,108,102, 46,100,105,109, 32,116,104,101,110, 32,112,
-    114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,
-    105,109, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,
-    105,109, 46, 46, 34, 39, 44, 34, 41, 32,101,110,100, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
-     46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101,
-    116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,
-    101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,
-    116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,
-    108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 71,
-    101,110,101,114, 97,116,101,115, 32, 67, 32,102,117,110, 99,
-    116,105,111,110, 32,110, 97,109,101, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,
-    108,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,112,
-    114,101,102,105,120, 41, 10, 32,108,111, 99, 97,108, 32,112,
-     97,114,101,110,116, 32, 61, 32, 34, 34, 10, 32,108,111, 99,
-     97,108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34,
-     34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32,
-     34, 34, 10, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32,
-    115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41,
-     32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,101,
-    115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,102,
-     58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32,105,102,
-     32,112, 32,116,104,101,110, 10, 32,  9,105,102, 32,115,101,
-    108,102, 46,112, 97,114,101,110,116, 46, 99,108, 97,115,115,
-    116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39,
-     32,116,104,101,110, 10,  9,  9,112, 97,114,101,110,116, 32,
-     61, 32, 34, 95, 34, 32, 46, 46, 32,115,101,108,102, 46,112,
-     97,114,101,110,116, 46,116,121,112,101, 10,  9,101,108,115,
-    101, 10,  9, 32, 32,112, 97,114,101,110,116, 32, 61, 32, 34,
-     95, 34, 32, 46, 46, 32,112, 10,  9,101,110,100, 10, 32,101,
-    110,100, 10, 10, 32,105,102, 32,115,116,114,102,105,110,100,
-     40,115,101,108,102, 46,109,111,100, 44, 34, 40,117,110,115,
-    105,103,110,101,100, 41, 34, 41, 32,116,104,101,110, 10, 32,
-     32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117,
-    110,115,105,103,110,101,100, 34, 10, 32,101,110,100, 10, 10,
-     32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61,
-     32, 34, 42, 34, 32,116,104,101,110, 32,112,116,114, 32, 61,
-     32, 34, 95,112,116,114, 34, 10, 32,101,108,115,101,105,102,
-     32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 38,
-     34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95,
-    114,101,102, 34, 10, 32,101,110,100, 10, 10, 32,108,111, 99,
-     97,108, 32,110, 97,109,101, 32, 61, 32, 32,112,114,101,102,
-    105,120, 32, 46, 46, 32,112, 97,114,101,110,116, 32, 46, 46,
-     32,117,110,115,105,103,110,101,100, 32, 46, 46, 32, 34, 95,
-     34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46,
-    108,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110,
-     97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32,
-     46, 46, 32,112,116,114, 10, 10,  9,110, 97,109,101, 32, 61,
-     32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101,
-     40,110, 97,109,101, 41, 10, 32,114,101,116,117,114,110, 32,
-    110, 97,109,101, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99,
-    104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97,
-     32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,
-    108,101, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40,
-     41, 10, 32,114,101,116,117,114,110, 32,116,114,117,101, 10,
-    101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,118, 97,114,
-    105, 97, 98,108,101, 32,118, 97,108,117,101, 10,102,117,110,
-     99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105,
-     97, 98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40,
-     99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 32,112,
-    114,111,112, 95,103,101,116, 41, 10, 10,  9,108,111, 99, 97,
-    108, 32,110, 97,109,101, 10,  9,105,102, 32,112,114,111,112,
-     95,103,101,116, 32,116,104,101,110, 10, 10,  9,  9,110, 97,
-    109,101, 32, 61, 32,112,114,111,112, 95,103,101,116, 46, 46,
-     34, 40, 41, 34, 10,  9,101,108,115,101, 10,  9,  9,110, 97,
-    109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10,
-      9,101,110,100, 10, 10,  9,105,102, 32, 99,108, 97,115,115,
-     32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,
-    110, 10,  9, 32,114,101,116,117,114,110, 32,115,101,108,102,
-     46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39,
-     58, 58, 39, 46, 46,110, 97,109,101, 10,  9,101,108,115,101,
-    105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,  9,
-     32,114,101,116,117,114,110, 32, 39,115,101,108,102, 45, 62,
-     39, 46, 46,110, 97,109,101, 10,  9,101,108,115,101, 10,  9,
-     32,114,101,116,117,114,110, 32,110, 97,109,101, 10,  9,101,
-    110,100, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,
-    118, 97,114,105, 97, 98,108,101, 32,112,111,105,110,116,101,
-    114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101,
-     58,103,101,116,112,111,105,110,116,101,114,118, 97,108,117,
-    101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99,
-     41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100,
-     32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,
-    114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39,
-     58, 58,112, 39, 10, 32,101,108,115,101,105,102, 32, 99,108,
-     97,115,115, 32,116,104,101,110, 10, 32, 32,114,101,116,117,
-    114,110, 32, 39,115,101,108,102, 45, 62,112, 39, 10, 32,101,
-    108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 39,112,
-     39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32,
-     87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,102,
-    117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,105,
-    111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,
-    101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 10, 32,
-    108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,
-    101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10,
-      9,108,111, 99, 97,108, 32,112,114,111,112, 95,103,101,116,
-     44,112,114,111,112, 95,115,101,116, 10,  9,105,102, 32,115,
-    116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102,
-     46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,112,114,
-    111,112,101,114,116,121, 39, 41, 32,116,104,101,110, 10, 10,
-      9,  9, 95, 44, 95, 44,116,121,112,101, 32, 61, 32,115,116,
-    114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,
-    109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,
-    112,101,114,116,121, 95, 95, 40, 91, 94, 37,115, 93, 42, 41,
-     34, 41, 10,  9,  9,116,121,112,101, 32, 61, 32,116,121,112,
-    101, 32,111,114, 32, 34,100,101,102, 97,117,108,116, 34, 10,
-      9,  9,112,114,111,112, 95,103,101,116, 44,112,114,111,112,
-     95,115,101,116, 32, 61, 32,103,101,116, 95,112,114,111,112,
-    101,114,116,121, 95,109,101,116,104,111,100,115, 40,116,121,
-    112,101, 44, 32,115,101,108,102, 46,110, 97,109,101, 41, 10,
-      9,  9,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,
-    114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46,
-    109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111,
-    112,101,114,116,121, 91, 94, 37,115, 93, 42, 34, 44, 32, 34,
-     34, 41, 10,  9,101,110,100, 10, 10, 32, 45, 45, 32,103,101,
-    116, 32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10,
-     32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,
-     32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,
-    116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,
-    108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108,
-     97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42,
-     47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,
-    112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110,
-     99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,
-    109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, 10,
-     32,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 32,
-     61, 32,115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,
-    101, 40, 34,116,111,108,117, 97, 95,103,101,116, 34, 41, 10,
-     32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,
-    102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69,
-     95, 34, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,
-    109,101, 41, 10, 32,111,117,116,112,117,116, 40, 34, 92,110,
-    115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,
-    102, 46, 99,103,101,116,110, 97,109,101, 44, 34, 40,108,117,
-     97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95,
-     83, 41, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34,123,
-     34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97,114,101,
-     32,115,101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99,
-     97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,
-    115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102,105,110,
-    100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115,
-     42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,105,102,
-     32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,
-    105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32,
-    111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102,
-     46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42,
-     39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,
-    111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102,
-     46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42,
-     41, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,
-    116,111,108,117, 97, 95,116,111,117,115,101,114,116,121,112,
-    101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59,
-     39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, 97,116,
-    105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, 44,115,
-    101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,102,105,
-    110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,
-    115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46,
-     42, 41, 39, 41, 10, 32,101,110,100, 10, 10, 10, 32, 45, 45,
-     32, 99,104,101, 99,107, 32,115,101,108,102, 32,118, 97,108,
-    117,101, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,
-    100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,
-    104,101,110, 10,  9, 32,111,117,116,112,117,116, 40, 39, 35,
-    105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69,
-     76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,
-    102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,
-    116,111,108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,
-    100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32, 97,
-     99, 99,101,115,115,105,110,103, 32,118, 97,114,105, 97, 98,
-    108,101, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,
-    109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59,
-     39, 41, 59, 10,  9,  9,111,117,116,112,117,116, 40, 39, 35,
-    101,110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10,
-     10, 32, 45, 45, 32,114,101,116,117,114,110, 32,118, 97,108,
-    117,101, 10, 32,105,102, 32,115,116,114,105,110,103, 46,102,
-    105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, 39,
-    116,111,108,117, 97, 95,105,110,104,101,114,105,116,115, 39,
-     41, 32,116,104,101,110, 10, 32,  9,111,117,116,112,117,116,
-     40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,
-    115,112,108,117,115, 92,110, 39, 41, 10,  9,111,117,116,112,
-    117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,112,117,115,
-    104,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97,
-     95, 83, 44, 40,118,111,105,100, 42, 41,115,116, 97,116,105,
-     99, 95, 99, 97,115,116, 60, 39, 46, 46,115,101,108,102, 46,
-    116,121,112,101, 46, 46, 39, 42, 62, 40,115,101,108,102, 41,
-     44, 32, 34, 39, 44,115,101,108,102, 46,116,121,112,101, 44,
-     39, 34, 41, 59, 39, 41, 10,  9,111,117,116,112,117,116, 40,
-     39, 35,101,108,115,101, 92,110, 39, 41, 10,  9,111,117,116,
-    112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,112,117,
-    115,104,117,115,101,114,116,121,112,101, 40,116,111,108,117,
-     97, 95, 83, 44, 40,118,111,105,100, 42, 41, 40, 40, 39, 46,
-     46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 42, 41,
-    115,101,108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,
-    116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,  9,111,117,
-    116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39,
-     41, 10, 32,101,108,115,101, 10,  9,108,111, 99, 97,108, 32,
-    116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,
-    115,101,108,102, 46,116,121,112,101, 41, 10,  9,105,102, 32,
-    116, 32,116,104,101,110, 10,  9,  9,111,117,116,112,117,116,
-     40, 39, 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39,
-     46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44,
-     40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102,
-     58,103,101,116,118, 97,108,117,101, 40, 99,108, 97,115,115,
-     44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,
-    116, 41, 46, 46, 39, 41, 59, 39, 41, 10,  9,101,108,115,101,
-     10,  9,  9,116, 32, 61, 32,115,101,108,102, 46,116,121,112,
-    101, 10,  9,  9,105,102, 32,115,101,108,102, 46,112,116,114,
-     32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101,108,102,
-     46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110,
-     10,  9,  9,  9,111,117,116,112,117,116, 40, 39, 32, 32,116,
-    111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,
-    112,101, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,
-    100, 42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,
-    118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,
-    116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, 46, 46,
-     39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10,  9,
-      9,101,108,115,101, 10,  9,  9,  9,111,117,116,112,117,116,
-     40, 39, 32, 32,116,111,108,117, 97, 95,112,117,115,104,117,
-    115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83,
-     44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108,102,
-     58,103,101,116,118, 97,108,117,101, 40, 99,108, 97,115,115,
-     44,115,116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,
-    116, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59,
-     39, 41, 10,  9,  9,101,110,100, 10,  9,101,110,100, 10, 32,
-    101,110,100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,
-    101,116,117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,
-    112,117,116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,
-    116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,
-    110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65,
-     66, 76, 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116,
-     40, 39, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116,
-     32,102,117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,
-    105,102, 32,110,111,116, 32, 40,115,116,114,102,105,110,100,
-     40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,
-    115,116, 37,115, 43, 39, 41, 32,111,114, 32,115,116,114,105,
-    110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109,111,
-    100, 44, 32, 39,116,111,108,117, 97, 95,114,101, 97,100,111,
-    110,108,121, 39, 41, 32,111,114, 32,115,116,114,105,110,103,
-     46,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44,
-     32, 39,116,111,108,117, 97, 95,105,110,104,101,114,105,116,
-    115, 39, 41, 41, 32, 32,116,104,101,110, 10, 32, 32,105,102,
-     32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32,
-    111,117,116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,
-    102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102,
-     46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,
-    115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34,
-     41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,
-    112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110,
-     99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,
-    109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,110,100,
-     10, 32, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109,
-    101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,110,
-     97,109,101, 40, 34,116,111,108,117, 97, 95,115,101,116, 34,
-     41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 35,105,102,
-    110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65,
-     66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,115,101,
-    116,110, 97,109,101, 41, 10, 32, 32,111,117,116,112,117,116,
-     40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34,
-     44,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 44,
-     34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,
-    108,117, 97, 95, 83, 41, 34, 41, 10, 32, 32,111,117,116,112,
-    117,116, 40, 34,123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,
-    101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,102,
-     32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,105,102, 32,
-     99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105,
-     99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,
-    111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102,
-     46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42,
-     39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,
-     32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,108,
-    102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, 39,
-     42, 41, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116,
-     40, 39,116,111,108,117, 97, 95,116,111,117,115,101,114,116,
-    121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48,
-     41, 59, 39, 41, 10, 32, 32, 32, 45, 45, 32, 99,104,101, 99,
-    107, 32,115,101,108,102, 32,118, 97,108,117,101, 10,  9,  9,
-    101,110,100, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,
-    116,121,112,101,115, 10,  9,  9,111,117,116,112,117,116, 40,
-     39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95,
-     82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,  9,  9,111,
-    117,116,112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95,
-     69,114,114,111,114, 32,116,111,108,117, 97, 95,101,114,114,
-     59, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,
-     97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108,
-     32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116,
-     40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,
-    116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,
-    117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,100, 32, 92,
-     39,115,101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101,
-    115,115,105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32,
-     92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46,
-     46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59,
-     10, 32, 32,101,108,115,101,105,102, 32,115,116, 97,116,105,
-     99, 32,116,104,101,110, 10, 32, 32, 32, 95, 44, 95, 44,115,
-    101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,102,105,
-    110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, 37,
-    115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46,
-     42, 41, 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45,
-     45, 32, 99,104,101, 99,107, 32,118, 97,114,105, 97, 98,108,
-    101, 32,116,121,112,101, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 32, 32,105,102, 32, 40, 33, 39, 46, 46,115,101,108,
-    102, 58,111,117,116, 99,104,101, 99,107,116,121,112,101, 40,
-     50, 41, 46, 46, 39, 41, 39, 41, 10, 32, 32,111,117,116,112,
-    117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,
-    114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,
-    105,110,118, 97,108,105,100, 32,116,121,112,101, 32,105,110,
-     32,118, 97,114,105, 97, 98,108,101, 32, 97,115,115,105,103,
-    110,109,101,110,116, 46, 34, 44, 38,116,111,108,117, 97, 95,
-    101,114,114, 41, 59, 39, 41, 10,  9,  9,111,117,116,112,117,
-    116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10,
-     32, 32, 45, 45, 32, 97,115,115,105,103,110, 32,118, 97,108,
-    117,101, 10,  9,  9,108,111, 99, 97,108, 32,100,101,102, 32,
-     61, 32, 48, 10,  9,  9,105,102, 32,115,101,108,102, 46,100,
-    101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,
-    101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,
-    110,100, 10,  9,  9,105,102, 32,115,101,108,102, 46,116,121,
-    112,101, 32, 61, 61, 32, 39, 99,104, 97,114, 42, 39, 32, 97,
-    110,100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32,
-     39, 39, 32,116,104,101,110, 32, 45, 45, 32,105,115, 32,115,
-    116,114,105,110,103, 10,  9,  9, 32,111,117,116,112,117,116,
-     40, 39, 32,115,116,114,110, 99,112,121, 40, 39, 41, 10,  9,
-      9,  9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,
-    115,116, 97,116,105, 99, 32,116,104,101,110, 10,  9,  9,  9,
-      9,111,117,116,112,117,116, 40,115,101,108,102, 46,112, 97,
-    114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39,
-     46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10,  9,  9,
-      9,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,
-    104,101,110, 10,  9,  9,  9,  9,111,117,116,112,117,116, 40,
-     39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,
-    110, 97,109,101, 41, 10,  9,  9,  9,101,108,115,101, 10,  9,
-      9,  9,  9,111,117,116,112,117,116, 40,115,101,108,102, 46,
-    110, 97,109,101, 41, 10,  9,  9,  9,101,110,100, 10,  9,  9,
-      9,111,117,116,112,117,116, 40, 39, 44,116,111,108,117, 97,
-     95,116,111,115,116,114,105,110,103, 40,116,111,108,117, 97,
-     95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 44, 39,
-     44,115,101,108,102, 46,100,105,109, 44, 39, 45, 49, 41, 59,
-     39, 41, 10,  9,  9,101,108,115,101, 10,  9,  9,  9,108,111,
-     99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10,  9,  9,
-      9,105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39,
-     39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42,
-     39, 32,101,110,100, 10,  9,  9,  9,111,117,116,112,117,116,
-     40, 39, 32, 39, 41, 10,  9,  9,  9,108,111, 99, 97,108, 32,
-    110, 97,109,101, 32, 61, 32,112,114,111,112, 95,115,101,116,
-     32,111,114, 32,115,101,108,102, 46,110, 97,109,101, 10,  9,
-      9,  9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,
-    115,116, 97,116,105, 99, 32,116,104,101,110, 10,  9,  9,  9,
-      9,111,117,116,112,117,116, 40,115,101,108,102, 46,112, 97,
-    114,101,110,116, 46,116,121,112,101, 46, 46, 39, 58, 58, 39,
-     46, 46,110, 97,109,101, 41, 10,  9,  9,  9,101,108,115,101,
-    105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,  9,
-      9,  9,  9,111,117,116,112,117,116, 40, 39,115,101,108,102,
-     45, 62, 39, 46, 46,110, 97,109,101, 41, 10,  9,  9,  9,101,
-    108,115,101, 10,  9,  9,  9,  9,111,117,116,112,117,116, 40,
-    110, 97,109,101, 41, 10,  9,  9,  9,101,110,100, 10,  9,  9,
-      9,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,
-    115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10,
-      9,  9,  9,105,102, 32,112,114,111,112, 95,115,101,116, 32,
-    116,104,101,110, 10,  9,  9,  9,  9,111,117,116,112,117,116,
-     40, 39, 40, 39, 41, 10,  9,  9,  9,101,108,115,101, 10,  9,
-      9,  9,  9,111,117,116,112,117,116, 40, 39, 32, 61, 32, 39,
-     41, 10,  9,  9,  9,101,110,100, 10,  9,  9,  9,105,102, 32,
-    110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61,
-     39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40,
-     39, 42, 39, 41, 32,101,110,100, 10,  9,  9,  9,111,117,116,
-    112,117,116, 40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,
-    111,100, 44,115,101,108,102, 46,116,121,112,101, 41, 10,  9,
-      9,  9,105,102, 32,110,111,116, 32,116, 32,116,104,101,110,
-     10,  9,  9,  9,  9,111,117,116,112,117,116, 40, 39, 42, 39,
-     41, 10,  9,  9,  9,101,110,100, 10,  9,  9,  9,111,117,116,
-    112,117,116, 40, 39, 41, 32, 39, 41, 10,  9,  9,  9,105,102,
-     32,116, 32,116,104,101,110, 10,  9,  9,  9,  9,105,102, 32,
-    105,115,101,110,117,109, 40,115,101,108,102, 46,116,121,112,
-    101, 41, 32,116,104,101,110, 10,  9,  9,  9,  9,  9,111,117,
-    116,112,117,116, 40, 39, 40,105,110,116, 41, 32, 39, 41, 10,
-      9,  9,  9,  9,101,110,100, 10,  9,  9,  9,  9,111,117,116,
-    112,117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46,
-     46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44,
-     39, 44,100,101,102, 44, 39, 41, 41, 39, 41, 10,  9,  9,  9,
-    101,108,115,101, 10,  9,  9,  9,  9,111,117,116,112,117,116,
-     40, 39,116,111,108,117, 97, 95,116,111,117,115,101,114,116,
-    121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39,
-     44,100,101,102, 44, 39, 41, 41, 39, 41, 10,  9,  9,  9,101,
-    110,100, 10,  9,  9,  9,105,102, 32,112,114,111,112, 95,115,
-    101,116, 32,116,104,101,110, 10,  9,  9,  9,  9,111,117,116,
-    112,117,116, 40, 34, 41, 34, 41, 10,  9,  9,  9,101,110,100,
-     10,  9,  9,  9,111,117,116,112,117,116, 40, 34, 59, 34, 41,
-     10,  9,  9,101,110,100, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10,
-     32, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,
-     32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102,
-     32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85,
-     65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,
-     32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,
-    101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,
-    108,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,
-    101, 41, 10, 10,  9,105,102, 32,110,111,116, 32,115,101,108,
-    102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95,
-     97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10,  9,
-      9,114,101,116,117,114,110, 10,  9,101,110,100, 10, 32,112,
-    114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10,
-     32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61,
-     32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40,
-     41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,
-    101,115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,
-    102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,105,102,
-     32,110,111,116, 32,112, 97,114,101,110,116, 32,116,104,101,
-    110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 86, 97,114,
-    105, 97, 98,108,101, 46, 95,119, 97,114,110,105,110,103, 61,
-     61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,119, 97,
-    114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32,
-    118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111,
-     98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101,
-     32,112,101,114,102,111,114,109, 97,110, 99,101, 34, 41, 10,
-     32, 32, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,
-    101, 46, 95,119, 97,114,110,105,110,103, 32, 61, 32, 49, 10,
-     32, 32,101,110,100, 10, 32,101,110,100, 10, 32,105,102, 32,
-    115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116,
-    104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114,
-    101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,105, 97,
-     98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46,
-     46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34,
-     44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97,
-    109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99,
-    115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,
-     32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40,
-    112,114,101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,
-    105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34,
-     39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46,
-     39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,
-    110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39,
-     41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32,
-     73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,
-    117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32,
-     95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10, 32,
-    115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44,
-     99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10,
-     32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,
-    117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,
-    111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,
-    120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103,
-     32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116,
-    104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99,
-    108, 97,114, 97,116,105,111,110, 46, 10,102,117,110, 99,116,
-    105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115,
-     41, 10, 32,114,101,116,117,114,110, 32, 95, 86, 97,114,105,
-     97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105,
-    111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110,
-    100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/variable.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32, 97,114,114, 97,121,
-     32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,
-    101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32,
-     67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,
-    102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,
-    108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32,
-     97,114,114, 97,121, 46,108,117, 97, 44,118, 32, 49, 46, 49,
-     32, 50, 48, 48, 48, 47, 49, 49, 47, 48, 54, 32, 50, 50, 58,
-     48, 51, 58, 53, 55, 32, 99,101,108,101,115, 32, 69,120,112,
-     32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,
-    101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119,
-     97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,
-    100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,
-    110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116,
-     46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,
-    114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,
-    101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110,
-     32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44,
-     32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,
-    104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,
-    103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,
-    100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44,
-     32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,
-    101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,
-    101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105,
-     99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 65,
-    114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,
-    101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116,
-    101,114,110, 32, 97,114,114, 97,121, 32,118, 97,114,105, 97,
-     98,108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99,
-     32,109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108,
-     97,115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32,
-     97,108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,
-    101,110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114,
-     97,116,105,111,110, 46, 10, 99,108, 97,115,115, 65,114,114,
-     97,121, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 65,
-    114,114, 97,121, 46, 95, 95,105,110,100,101,120, 32, 61, 32,
-     99,108, 97,115,115, 65,114,114, 97,121, 10,115,101,116,109,
-    101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 65,
-    114,114, 97,121, 44, 99,108, 97,115,115, 68,101, 99,108, 97,
-    114, 97,116,105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,
-    110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,
-    112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,
-    111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 65,114,114, 97,121,123, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
-     46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,
-    112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,
-    121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,
-    110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114,
-     32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,
-    114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116,
-     40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32,
-     61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101,
-     46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61,
-     32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46,
-     34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,
-    101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39,
-     34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39,
-     44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,
-    116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46,
-     46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,
-    100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,
-    105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108,
-    101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 65,114,114, 97,121, 58,105,115,118, 97,114,105, 97, 98,
-    108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116,
-    114,117,101, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101,
-    116, 32,118, 97,114,105, 97, 98,108,101, 32,118, 97,108,117,
-    101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 65,114,114, 97,121, 58,103,101,116,118, 97,108,117,101,
-     32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41,
-     10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,
-    115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,114,
-    101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58,
-     58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46,
-     39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39,
-     10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,
-    116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 39,
-    115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110,
-     97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,
-    100,101,120, 93, 39, 10, 32,101,108,115,101, 10, 32, 32,114,
-    101,116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101,
-     46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120,
-     93, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45,
-     32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,
-    102,117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,
-    115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,108,111, 99,
-     97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102,
-     58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32, 45, 45,
-     32,103,101,116, 32,102,117,110, 99,116,105,111,110, 32, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,
-    101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42,
-     32,103,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34,
-     44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102,
-     32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44,
-     34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,
-    111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32,
-    102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102,
-     46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,
-    110,100, 10, 32,115,101,108,102, 46, 99,103,101,116,110, 97,
-    109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,
-    110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116,
-     34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102,
-    110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65,
-     66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101,
-    116,110, 97,109,101, 41, 10, 32,111,117,116,112,117,116, 40,
-     34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44,
-    115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 44, 34,
-     40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,
-    117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116,
-     40, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34,
-     32,105,110,116, 32,116,111,108,117, 97, 95,105,110,100,101,
-    120, 59, 34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97,
-    114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101,
-     32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44,
-     95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102,
-    105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94,
-     37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32,
-    105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116,
-     97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,
-    108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44,
-     39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10, 32, 32,
-    111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117,
-    115,104,115,116,114,105,110,103, 40,116,111,108,117, 97, 95,
-     83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10, 32,
-     32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114,
-     97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49,
-     41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,
-     32,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117,
-    116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112,
-     97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32,
-     39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,108,117,
-     97, 95,116,111,117,115,101,114,100, 97,116, 97, 40,116,111,
-    108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32,101,
-    108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,
-    101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,
-    111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,
-    108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,
-    116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10,
-     32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107,
-     32,105,110,100,101,120, 10,  9,111,117,116,112,117,116, 40,
-     39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95,
-     82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,  9,111,117,
-    116,112,117,116, 40, 39, 32,123, 39, 41, 10,  9,111,117,116,
-    112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114,
-    114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39,
-     41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102,
-     32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,109, 98,
-    101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44,
-     38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10,
-     32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,
-    117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95,
-     83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121,
-    112,101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100,
-    101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95,
-    101,114,114, 41, 59, 39, 41, 10,  9,111,117,116,112,117,116,
-     40, 39, 32,125, 39, 41, 10,  9,111,117,116,112,117,116, 40,
-     39, 35,101,110,100,105,102, 92,110, 39, 41, 10,  9,105,102,
-     32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101,
-    110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116,
-    105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111,
-    108,117, 97, 53, 32, 63, 10,  9,  9,111,117,116,112,117,116,
-     40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32,
-     61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,
-    110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44,
-     50, 44, 48, 41, 45, 49, 59, 39, 41, 10,  9,101,108,115,101,
-     10,  9,  9,111,117,116,112,117,116, 40, 39, 32,116,111,108,
-    117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116,
-     41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114,
-     40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39,
-     41, 10,  9,101,110,100, 10,  9,111,117,116,112,117,116, 40,
-     39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95,
-     82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,  9,105,102,
-     32,115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115,
-    101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,
-    104,101,110, 10,  9, 32, 32,111,117,116,112,117,116, 40, 39,
-     32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101,
-    120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110,
-    100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,
-    109, 46, 46, 39, 41, 39, 41, 10,  9,101,108,115,101, 10,  9,
-     32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,
-    116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 41, 39,
-     41, 10,  9,101,110,100, 10, 32,111,117,116,112,117,116, 40,
-     39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,
-    116,111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,
-    105,110,100,101,120,105,110,103, 32,111,117,116, 32,111,102,
-     32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59,
-     39, 41, 10,  9,111,117,116,112,117,116, 40, 39, 35,101,110,
-    100,105,102, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,114,101,
-    116,117,114,110, 32,118, 97,108,117,101, 10, 32,108,111, 99,
-     97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,
-    105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32,
-    105,102, 32,116, 32,116,104,101,110, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,
-    104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95,
-     83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,
-    108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108, 97,
-    115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 41, 59,
-     39, 41, 10, 32,101,108,115,101, 10,  9,  9,116, 32, 61, 32,
-    115,101,108,102, 46,116,121,112,101, 10, 32, 32,105,102, 32,
-    115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39,
-     32,111,114, 32,115,101,108,102, 46,112,116,114, 32, 61, 61,
-     32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,
-    104,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97,
-     95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,115,
-    101,108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108,
-     97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 44,
-     34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,
-    108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39,
-     32,116,111,108,117, 97, 95,112,117,115,104,117,115,101,114,
-    116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 40,118,
-    111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101,
-    116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116,
-     97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39,
-     34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,110,
-    100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116,
-    117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117,
-    116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40,
-     39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100,
-    101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76,
-     69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,
-     92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102,
-    117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-     45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102,
-     32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101,
-    108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39,
-     41, 32,116,104,101,110, 10, 32, 32,105,102, 32, 99,108, 97,
-    115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,
-    117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,
-    116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,
-    101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44,
-     99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,
-    101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40,
-     34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111,
-    110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34,
-     32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,
-    101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32,
-    115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40,
-     34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10, 32, 32,
-    111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102,
-     32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95,
-     34, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109,
-    101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110,
-    115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,
-    102, 46, 99,115,101,116,110, 97,109,101, 44, 34, 40,108,117,
-     97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95,
-     83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34,
-    123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97,
-    114,101, 32,105,110,100,101,120, 10, 32, 32,111,117,116,112,
-    117,116, 40, 39, 32,105,110,116, 32,116,111,108,117, 97, 95,
-    105,110,100,101,120, 59, 39, 41, 10, 10, 32, 32, 45, 45, 32,
-    100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,
-    102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,108,111,
-     99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32,
-     61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,
-    109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105,
-     99, 41, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115,
-     32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,
-    108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,
-    116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101,
-    110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,
-    108,102, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116,
-     40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105,
-    110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101,
-    108,102, 34, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,
-    117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116,
-     40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10,
-     32, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108,
-    102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,
-    116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,
-    110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10,
-     32, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95,
-    116,111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117,
-     97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108,
-    115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,
-    110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,
-    111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101,
-    108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,
-    116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10,
-     32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101,
-     99,107, 32,105,110,100,101,120, 10,  9, 32,111,117,116,112,
-    117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76,
-     85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,
-      9, 32,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,
-      9, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108,
-    117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,
-    101,114,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,
-    105,115,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95,
-     83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114,
-    114, 41, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,
-     39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114,
-     40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118,
-     97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114,
-    114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44,
-     38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10,
-      9,  9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,
-      9,  9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,
-    102, 92,110, 39, 41, 10, 10,  9,105,102, 32,102,108, 97,103,
-    115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32,
-    102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,
-    116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32,
-     63, 10,  9,  9,111,117,116,112,117,116, 40, 39, 32,116,111,
-    108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,
-    116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,
-    114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45,
-     49, 59, 39, 41, 10,  9,101,108,115,101, 10,  9,  9,111,117,
-    116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110,
-    100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117,
-     97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117,
-     97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10,  9,101,110,
-    100, 10, 10,  9, 32,111,117,116,112,117,116, 40, 39, 35,105,
-    102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76,
-     69, 65, 83, 69, 92,110, 39, 41, 10,  9,105,102, 32,115,101,
-    108,102, 46,100,105,109, 32, 97,110,100, 32,115,101,108,102,
-     46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110,
-     10,  9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102,
-     32, 40,116,111,108,117, 97, 95,105,110,100,101,120, 60, 48,
-     32,124,124, 32,116,111,108,117, 97, 95,105,110,100,101,120,
-     62, 61, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46,
-     39, 41, 39, 41, 10,  9,101,108,115,101, 10,  9, 32, 32,111,
-    117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,
-    117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10,  9,
-    101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,
-     32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,
-    108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,110,
-    100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114,
-     97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41,
-     10,  9,  9,111,117,116,112,117,116, 40, 39, 35,101,110,100,
-    105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115,
-    115,105,103,110, 32,118, 97,108,117,101, 10, 32, 32,108,111,
-     99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32,
-    105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39,
-     32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39,
-     32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39,
-     32, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,
-     97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110,
-     10, 32, 32, 32,111,117,116,112,117,116, 40, 99,108, 97,115,
-    115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110,
-     97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,
-    100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101,105,102,
-     32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32,
-    111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39,
-     46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,
-    116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10,
-     32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,
-    116, 40,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,
-    116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10,
-     32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32,116,
-     32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102,
-     46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111,
-    116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39,
-     32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42,
-     39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116,
-     40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,
-    115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102,
-     32,110,111,116, 32,116, 32,116,104,101,110, 10, 32, 32, 32,
-    111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101,
-    110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 41, 32,
-     39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 32,
-     61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100,
-    101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,
-    101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,
-    110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10,
-     32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117,
-     97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117,
-     97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41,
-     59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,
-    117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,
-    117,115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95,
-     83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39,
-     41, 10, 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,
-    116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41,
-     10, 32, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10,
-     32, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,
-    102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76,
-     85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10,
-     32, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,
-     32,101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121,
-     58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41,
-     10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32,
-     39, 39, 10, 32,105,102, 32,115,101,108,102, 46, 99,115,101,
-    116,110, 97,109,101, 32,116,104,101,110, 10, 32, 32,111,117,
-    116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117,
-     97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83,
-     44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101,
-     46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,
-    101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,
-    108,102, 46, 99,115,101,116,110, 97,109,101, 46, 46, 39, 41,
-     59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,
-    112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97,
-     95, 97,114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44,
-     34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46,
-     46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,
-    116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59,
-     39, 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45,
-     32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,
-    114,117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110,
-     32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10, 32,115,101,
-    116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108,
-     97,115,115, 65,114,114, 97,121, 41, 10, 32, 97,112,112,101,
-    110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116,
-     10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,
-    117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,
-    115, 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,
-    101,115,101,110,116,105,110,103, 32,116,104,101, 32,118, 97,
-    114,105, 97, 98,108,101, 32,100,101, 99,108, 97,114, 97,116,
-    105,111,110, 46, 10,102,117,110, 99,116,105,111,110, 32, 65,
-    114,114, 97,121, 32, 40,115, 41, 10, 32,114,101,116,117,114,
-    110, 32, 95, 65,114,114, 97,121, 32, 40, 68,101, 99,108, 97,
-    114, 97,116,105,111,110, 40,115, 44, 39,118, 97,114, 39, 41,
-     41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/array.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,
-    105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109,
-     97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67,
-     71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45,
-     32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,
-    100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,
-    111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,
-    116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,
-    114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116,
-     32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,
-    105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,
-    119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,
-    101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32,
-     97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,
-    115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,
-    117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,
-    108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,
-    118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,
-    101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100,
-     97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,
-    101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,
-    102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45,
-     45, 32, 70,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115,
-     32, 97, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32,
-     97, 32, 99,108, 97,115,115, 32,109,101,116,104,111,100, 46,
-     10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,
-    110,103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,
-    116,111,114,101,100, 58, 10, 45, 45, 32, 32,109,111,100, 32,
-     32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,101,
-    114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,116,
-    121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32,
-     34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32,
-    114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32,
-    112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,101,
-    102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,109,
-    101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,108,110,
-     97,109,101, 32, 61, 32,108,117, 97, 32,110, 97,109,101, 10,
-     45, 45, 32, 32, 97,114,103,115, 32, 32, 61, 32,108,105,115,
-    116, 32,111,102, 32, 97,114,103,117,109,101,110,116, 32,100,
-    101, 99,108, 97,114, 97,116,105,111,110,115, 10, 45, 45, 32,
-     32, 99,111,110,115,116, 32, 61, 32,105,102, 32,105,116, 32,
-    105,115, 32, 97, 32,109,101,116,104,111,100, 32,114,101, 99,
-    101,105,118,105,110,103, 32, 97, 32, 99,111,110,115,116, 32,
-     34,116,104,105,115, 34, 46, 10, 99,108, 97,115,115, 70,117,
-    110, 99,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100,
-     32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32,
-     39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10,
-     32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32, 97,114,
-    103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 32, 99,111,
-    110,115,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,
-    115,115, 70,117,110, 99,116,105,111,110, 46, 95, 95,105,110,
-    100,101,120, 32, 61, 32, 99,108, 97,115,115, 70,117,110, 99,
-    116,105,111,110, 10,115,101,116,109,101,116, 97,116, 97, 98,
-    108,101, 40, 99,108, 97,115,115, 70,117,110, 99,116,105,111,
-    110, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41,
-     10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97,
-    103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 70,117,110, 99,116,105,111,110, 58,100,101, 99,108,
-    116,121,112,101, 32, 40, 41, 10, 32,115,101,108,102, 46,116,
-    121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,
-    101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,
-    116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100,
-     44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10,
-      9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39,
-     99,111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116,
-    121,112,101, 10,  9,  9,115,101,108,102, 46,109,111,100, 32,
-     61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100,
-     44, 39, 99,111,110,115,116, 39, 44, 39, 39, 41, 10,  9,101,
-    110,100, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,
-    119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115,
-     91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97,
-    114,103,115, 91,105, 93, 58,100,101, 99,108,116,121,112,101,
-     40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,
-    110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 87,114,105,
-    116,101, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99,
-    116,105,111,110, 10, 45, 45, 32, 79,117,116,112,117,116,115,
-     32, 67, 47, 67, 43, 43, 32, 98,105,110,100,105,110,103, 32,
-    102,117,110, 99,116,105,111,110, 46, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,
-    111,110, 58,115,117,112, 99,111,100,101, 32, 40,108,111, 99,
-     97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 41,
-     10, 10, 32,108,111, 99, 97,108, 32,111,118,101,114,108,111,
-     97,100, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108,
-    102, 46, 99,110, 97,109,101, 44, 45, 50, 44, 45, 49, 41, 32,
-     45, 32, 49, 32, 32, 45, 45, 32,105,110,100,105, 99, 97,116,
-    101, 32,111,118,101,114,108,111, 97,100,101,100, 32,102,117,
-    110, 99, 10, 32,108,111, 99, 97,108, 32,110,114,101,116, 32,
-     61, 32, 48, 32, 32, 32, 32, 32, 32, 45, 45, 32,110,117,109,
-     98,101,114, 32,111,102, 32,114,101,116,117,114,110,101,100,
-     32,118, 97,108,117,101,115, 10, 32,108,111, 99, 97,108, 32,
-     99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110,
-     99,108, 97,115,115, 40, 41, 10, 32,108,111, 99, 97,108, 32,
-     95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,
-    114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44,
-     39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41,
-     10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110,
-     10, 10, 32,  9,105,102, 32,115,101,108,102, 46,110, 97,109,
-    101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32,
-    115,101,108,102, 46,112, 97,114,101,110,116, 46,102,108, 97,
-    103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108,
-     32,116,104,101,110, 10, 32,  9,  9, 45, 45, 32,110,111, 32,
-     99,111,110,115,116,114,117, 99,116,111,114, 32,102,111,114,
-     32, 99,108, 97,115,115,101,115, 32,119,105,116,104, 32,112,
-    117,114,101, 32,118,105,114,116,117, 97,108, 32,109,101,116,
-    104,111,100,115, 10, 32,  9,  9,114,101,116,117,114,110, 10,
-     32,  9,101,110,100, 10, 10, 32,  9,105,102, 32,108,111, 99,
-     97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,
-    116,104,101,110, 10,  9,  9,111,117,116,112,117,116, 40, 34,
-     47, 42, 32,109,101,116,104,111,100, 58, 32,110,101,119, 95,
-    108,111, 99, 97,108, 32,111,102, 32, 99,108, 97,115,115, 32,
-     34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10,
-      9,101,108,115,101, 10,  9,  9,111,117,116,112,117,116, 40,
-     34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,101,
-    108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108,
-     97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42,
-     47, 34, 41, 10,  9,101,110,100, 10, 32,101,108,115,101, 10,
-     32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,102,117,
-    110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110,
-     97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100,
-     10, 10, 32,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,
-    115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 32,
-     32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,
-    102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69,
-     95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46,
-     46, 34, 95,108,111, 99, 97,108, 34, 41, 10, 32, 32,111,117,
-    116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,
-    105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,109,101,
-     46, 46, 34, 95,108,111, 99, 97,108, 34, 44, 34, 40,108,117,
-     97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95,
-     83, 41, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117,
-    116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84,
-     79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46,
-     46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 32, 32,
-    111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105,
-     99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,
-    109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42,
-     32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,110,
-    100, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,
-     10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101,
-    115, 10,  9,105,102, 32,111,118,101,114,108,111, 97,100, 32,
-     60, 32, 48, 32,116,104,101,110, 10,  9, 32,111,117,116,112,
-    117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76,
-     85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,
-      9,101,110,100, 10,  9,111,117,116,112,117,116, 40, 39, 32,
-    116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,
-    117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112,
-    117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 32,
-     45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32,
-    108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32,
-     99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103,
-     61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,
-    101,110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,
-    104,101,110, 10,  9,  9,108,111, 99, 97,108, 32,102,117,110,
-     99, 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,
-    101,114,116,121,112,101, 39, 10,  9,  9,108,111, 99, 97,108,
-     32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97,
-    114,101,110,116, 46,116,121,112,101, 10,  9,  9,105,102, 32,
-    115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119,
-     39, 32,111,114, 32,115,116, 97,116,105, 99,126, 61,110,105,
-    108, 32,116,104,101,110, 10,  9,  9,  9,102,117,110, 99, 32,
-     61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101,114,
-    116, 97, 98,108,101, 39, 10,  9,  9,  9,116,121,112,101, 32,
-     61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,
-    121,112,101, 10,  9,  9,101,110,100, 10,  9,  9,105,102, 32,
-    115,101,108,102, 46, 99,111,110,115,116, 32,126, 61, 32, 39,
-     39, 32,116,104,101,110, 10,  9,  9,  9,116,121,112,101, 32,
-     61, 32, 34, 99,111,110,115,116, 32, 34, 46, 46,116,121,112,
-    101, 10,  9,  9,101,110,100, 10,  9,  9,111,117,116,112,117,
-    116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,102,117,110,
-     99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44,
-     34, 39, 46, 46,116,121,112,101, 46, 46, 39, 34, 44, 48, 44,
-     38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92,
-    110, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32, 99,104,
-    101, 99,107, 32, 97,114,103,115, 10, 32,105,102, 32,115,101,
-    108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101,
-     32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110,
-     10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,
-    119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115,
-     91,105, 93, 32,100,111, 10, 32, 32, 32,108,111, 99, 97,108,
-     32, 98,116,121,112,101, 32, 61, 32,105,115, 98, 97,115,105,
-     99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46,
-    116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 98,116,121,
-    112,101, 32,126, 61, 32, 39,118, 97,108,117,101, 39, 32, 97,
-    110,100, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116,
-     97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,111,
-    117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46,
-     46,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,111,
-    117,116, 99,104,101, 99,107,116,121,112,101, 40,110, 97,114,
-    103, 41, 46, 46, 39, 32,124,124, 92,110, 39, 41, 10, 32, 32,
-     32,101,110,100, 10, 32, 32, 32,105,102, 32, 98,116,121,112,
-    101, 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,
-    101,110, 10,  9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110,
-     97,114,103, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,
-     32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10,
-     32,101,110,100, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,
-    101,110,100, 32,111,102, 32,108,105,115,116, 10, 32,111,117,
-    116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111,108,
-    117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108,117,
-     97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44,
-     38,116,111,108,117, 97, 95,101,114,114, 41, 92,110, 32, 41,
-     39, 41, 10,  9,111,117,116,112,117,116, 40, 39, 32, 32,103,
-    111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,
-    114, 59, 39, 41, 10, 10, 32,111,117,116,112,117,116, 40, 39,
-     32,101,108,115,101, 92,110, 39, 41, 10,  9,105,102, 32,111,
-    118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,
-    110, 10,  9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,
-    100,105,102, 92,110, 39, 41, 10,  9,101,110,100, 10,  9,111,
-    117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, 10, 32, 45,
-     45, 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44,
-     32,105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,
-    111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,
-    108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61,
-     50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,
-    110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,
-    100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,
-    101,119, 39, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61,
-     61,110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111,
-    110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116,
-     46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102,
-     32, 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,
-     39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,
-    115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,
-    101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,111,117,116,112,
-    117,116, 40, 39,116,111,108,117, 97, 95,116,111,117,115,101,
-    114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49,
-     44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,
-    115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95,
-     44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,
-    116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100,
-     44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,
-    115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 32,
-     45, 45, 32,100,101, 99,108, 97,114,101, 32,112, 97,114, 97,
-    109,101,116,101,114,115, 10, 32,105,102, 32,115,101,108,102,
-     46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126,
-     61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32,
-     32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,
-    105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105,
-     93, 32,100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,
-    103,115, 91,105, 93, 58,100,101, 99,108, 97,114,101, 40,110,
-     97,114,103, 41, 10, 32, 32, 32,105,102, 32,105,115, 98, 97,
-    115,105, 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105,
-     93, 46,116,121,112,101, 41, 32,126, 61, 32, 34,115,116, 97,
-    116,101, 34, 32,116,104,101,110, 10,  9, 32, 32, 32,110, 97,
-    114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,
-    101,110,100, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10,
-     32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45,
-     32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32,105,102,
-     32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102,
-     46,110, 97,109,101,126, 61, 39,110,101,119, 39, 32, 97,110,
-    100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,
-    104,101,110, 10,  9, 32,111,117,116,112,117,116, 40, 39, 35,
-    105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69,
-     76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,
-    102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,
-    116,111,108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,
-    100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,102,
-    117,110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,
-    108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78,
-     85, 76, 76, 41, 59, 39, 41, 59, 10,  9, 32,111,117,116,112,
-    117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,
-     32,101,110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32, 97,
-    114,114, 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,
-    108,117,101,115, 10, 32,105,102, 32, 99,108, 97,115,115, 32,
-    116,104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,
-    101, 32,110, 97,114,103, 61, 49, 32,101,110,100, 10, 32,105,
-    102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,
-    116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,
-    116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61,
-     49, 10, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46,
-     97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,
-    101,108,102, 46, 97,114,103,115, 91,105, 93, 58,103,101,116,
-     97,114,114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32,
-    110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32,
-     32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100,
-     10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,111,
-    117,116, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,
-    100, 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,
-    108,117, 97, 95,111,117,116,115,105,100,101, 34, 41, 10, 32,
-     45, 45, 32, 99, 97,108,108, 32,102,117,110, 99,116,105,111,
-    110, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100,
-     32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,100,101,
-    108,101,116,101, 39, 32,116,104,101,110, 10, 32, 32,111,117,
-    116,112,117,116, 40, 39, 32, 32,100,101,108,101,116,101, 32,
-    115,101,108,102, 59, 39, 41, 10, 32,101,108,115,101,105,102,
-     32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102,
-     46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97,
-    116,111,114, 38, 91, 93, 39, 32,116,104,101,110, 10, 32, 32,
-    105,102, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,
-    104,101,110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112,
-     97,116,105, 98,105,108,105,116,121, 32,119,105,116,104, 32,
-    116,111,108,117, 97, 53, 32, 63, 10,  9,111,117,116,112,117,
-    116, 40, 39, 32, 32,115,101,108,102, 45, 62,111,112,101,114,
-     97,116,111,114, 91, 93, 40, 39, 44,115,101,108,102, 46, 97,
-    114,103,115, 91, 49, 93, 46,110, 97,109,101, 44, 39, 45, 49,
-     41, 32, 61, 32, 39, 44,115,101,108,102, 46, 97,114,103,115,
-     91, 50, 93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32,
-     32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112,117,
-    116, 40, 39, 32, 32,115,101,108,102, 45, 62,111,112,101,114,
-     97,116,111,114, 91, 93, 40, 39, 44,115,101,108,102, 46, 97,
-    114,103,115, 91, 49, 93, 46,110, 97,109,101, 44, 39, 41, 32,
-     61, 32, 39, 44,115,101,108,102, 46, 97,114,103,115, 91, 50,
-     93, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10, 32, 32,101,
-    110,100, 10, 32,101,108,115,101, 10, 32, 32,111,117,116,112,
-    117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,105,102, 32,
-    115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39,
-     32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32,
-    126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10,
-     32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,
-    115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116,
-    121,112,101, 44,115,101,108,102, 46,112,116,114, 44, 39,116,
-    111,108,117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 40, 39, 44,115,101,
-    108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,
-    101, 44,115,101,108,102, 46,112,116,114, 44, 39, 41, 32, 39,
-     41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32, 39, 41, 10, 32, 32,101,110,100,
-     10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100,
-     32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,
-    119, 39, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,
-    117,116, 40, 39,110,101,119, 39, 44,115,101,108,102, 46,116,
-    121,112,101, 44, 39, 40, 39, 41, 10, 32, 32,101,108,115,101,
-    105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116,
-     97,116,105, 99, 32,116,104,101,110, 10,  9,105,102, 32,111,
-    117,116, 32,116,104,101,110, 10,  9,  9,111,117,116,112,117,
-    116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39,
-     41, 10,  9,101,108,115,101, 10,  9,  9,111,117,116,112,117,
-    116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,
-    115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10,
-      9,101,110,100, 10, 32, 32,101,108,115,101,105,102, 32, 99,
-    108, 97,115,115, 32,116,104,101,110, 10,  9,105,102, 32,111,
-    117,116, 32,116,104,101,110, 10,  9,  9,111,117,116,112,117,
-    116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39,
-     41, 10,  9,101,108,115,101, 10,  9, 32, 32,105,102, 32,115,
-    101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116,
-    111,114, 32,116,104,101,110, 10,  9, 32, 32,  9,111,117,116,
-    112,117,116, 40, 39,115,116, 97,116,105, 99, 95, 99, 97,115,
-    116, 60, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,
-    108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116,
-    114, 44, 39, 62, 40, 42,115,101,108,102, 39, 41, 10,  9, 32,
-     32,101,108,115,101, 10,  9,  9,111,117,116,112,117,116, 40,
-     39,115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,
-    110, 97,109,101, 44, 39, 40, 39, 41, 10,  9, 32, 32,101,110,
-    100, 10,  9,101,110,100, 10, 32, 32,101,108,115,101, 10, 32,
-     32, 32,111,117,116,112,117,116, 40,115,101,108,102, 46,110,
-     97,109,101, 44, 39, 40, 39, 41, 10, 32, 32,101,110,100, 10,
-     10, 32, 32,105,102, 32,111,117,116, 32, 97,110,100, 32,110,
-    111,116, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10,
-     32, 32,  9,111,117,116,112,117,116, 40, 39,115,101,108,102,
-     39, 41, 10,  9,105,102, 32,115,101,108,102, 46, 97,114,103,
-    115, 91, 49, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,
-    114,103,115, 91, 49, 93, 46,110, 97,109,101, 32,126, 61, 32,
-     39, 39, 32,116,104,101,110, 10,  9,  9,111,117,116,112,117,
-    116, 40, 39, 44, 39, 41, 10,  9,101,110,100, 10, 32, 32,101,
-    110,100, 10, 32, 32, 45, 45, 32,119,114,105,116,101, 32,112,
-     97,114, 97,109,101,116,101,114,115, 10, 32, 32,108,111, 99,
-     97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,
-    115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111,
-     10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105,
-     93, 58,112, 97,115,115,112, 97,114, 40, 41, 10, 32, 32, 32,
-    105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,105,102, 32,115,
-    101,108,102, 46, 97,114,103,115, 91,105, 93, 32,116,104,101,
-    110, 10, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 44,
-     39, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100,
-     10, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,
-    100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32,
-     39,111,112,101,114, 97,116,111,114, 91, 93, 39, 32, 97,110,
-    100, 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,
-    101,110, 10,  9,111,117,116,112,117,116, 40, 39, 45, 49, 41,
-     59, 39, 41, 10, 32, 32,101,108,115,101, 10,  9,111,117,116,
-    112,117,116, 40, 39, 41, 59, 39, 41, 10, 32, 32,101,110,100,
-     10, 10, 32, 32, 45, 45, 32,114,101,116,117,114,110, 32,118,
-     97,108,117,101,115, 10, 32, 32,105,102, 32,115,101,108,102,
-     46,116,121,112,101, 32,126, 61, 32, 39, 39, 32, 97,110,100,
-     32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,
-    118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,110,
-    114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32, 49, 10,
-     32, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61,
-     32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,
-    121,112,101, 41, 10, 32, 32, 32,105,102, 32,116, 32,116,104,
-    101,110, 10, 32, 32, 32,  9,105,102, 32,115,101,108,102, 46,
-     99, 97,115,116, 95,111,112,101,114, 97,116,111,114, 32, 97,
-    110,100, 32, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,
-    117,115,104, 91,116, 93, 32,116,104,101,110, 10,  9,  9,111,
-    117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44, 95, 98, 97,
-    115,105, 99, 95,114, 97,119, 95,112,117,115,104, 91,116, 93,
-     44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,
-    116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59,
-     39, 41, 10, 32, 32, 32,  9,101,108,115,101, 10,  9, 32, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,
-    108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39,
-     40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44,
-     39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41,
-     10,  9,101,110,100, 10, 32, 32, 32,101,108,115,101, 10,  9,
-      9,  9, 32,116, 32, 61, 32,115,101,108,102, 46,116,121,112,
-    101, 10,  9,  9,  9, 32,110,101,119, 95,116, 32, 61, 32,115,
-    116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34,
-     99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10,
-     32, 32, 32, 32,105,102, 32,115,101,108,102, 46,112,116,114,
-     32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,123, 39,
-     41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39,
-     35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,
-    108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117,
-    116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42,
-     32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,110,101,
-    119, 39, 44,110,101,119, 95,116, 44, 39, 40,116,111,108,117,
-     97, 95,114,101,116, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,
-    111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,
-    117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,101,
-     95, 97,110,100, 95,116, 97,107,101,111,119,110,101,114,115,
-    104,105,112, 40,116,111,108,117, 97, 95, 83, 44,116,111,108,
-    117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41,
-     59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116,
-     40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,
-    111,105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32,
-     61, 32,116,111,108,117, 97, 95, 99,111,112,121, 40,116,111,
-    108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,
-    111,108,117, 97, 95,114,101,116, 44,115,105,122,101,111,102,
-     40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32, 32,
-     32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,
-    111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,
-    112,101, 95, 97,110,100, 95,116, 97,107,101,111,119,110,101,
-    114,115,104,105,112, 40,116,111,108,117, 97, 95, 83, 44,116,
-    111,108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39,
-     34, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,
-    117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,
-     32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,
-     32,125, 39, 41, 10, 32, 32, 32, 32,101,108,115,101,105,102,
-     32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38,
-     39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,
-    112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,
-    117,115,104,117,115,101,114,116,121,112,101, 40,116,111,108,
-    117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,
-    108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34,
-     41, 59, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, 10, 32,
-     32, 32, 32,  9,105,102, 32,108,111, 99, 97,108, 95, 99,111,
-    110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10,
-      9, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,
-    111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,
-    112,101, 95, 97,110,100, 95,116, 97,107,101,111,119,110,101,
-    114,115,104,105,112, 40,116,111,108,117, 97, 95, 83, 44, 40,
-    118,111,105,100, 32, 42, 41,116,111,108,117, 97, 95,114,101,
-    116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 32,
-     32, 32, 32,  9,101,108,115,101, 10,  9,  9, 32, 32, 32, 32,
-     32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,
-    117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,101,
-     40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42,
-     41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116,
-     44, 39, 34, 41, 59, 39, 41, 10,  9, 32, 32, 32, 32,101,110,
-    100, 10, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32,101,110,
-    100, 10, 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108,
-     32,105, 61, 49, 10, 32, 32,119,104,105,108,101, 32,115,101,
-    108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32,
-     32, 32,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43,
-     32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,114,
-    101,116,118, 97,108,117,101, 40, 41, 10, 32, 32, 32,105, 32,
-     61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, 32,111,
-    117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, 10, 32,
-     32, 45, 45, 32,115,101,116, 32, 97,114,114, 97,121, 32,101,
-    108,101,109,101,110,116, 32,118, 97,108,117,101,115, 10, 32,
-     32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 32,
-    110, 97,114,103, 61, 50, 32,101,108,115,101, 32,110, 97,114,
-    103, 61, 49, 32,101,110,100, 10, 32, 32,105,102, 32,115,101,
-    108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101,
-     32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110,
-     10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,
-     32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,
-    103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,
-    108,102, 46, 97,114,103,115, 91,105, 93, 58,115,101,116, 97,
-    114,114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32, 32,
-    110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32,
-     32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32,101,
-    110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,
-    102,114,101,101, 32,100,121,110, 97,109,105, 99, 97,108,108,
-    121, 32, 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114,
-     97,121, 10, 32, 32,105,102, 32,115,101,108,102, 46, 97,114,
-    103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, 39,
-    118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32, 32,108,
-    111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, 32,119,104,105,
-    108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93,
-     32,100,111, 10, 32, 32, 32, 32,115,101,108,102, 46, 97,114,
-    103,115, 91,105, 93, 58,102,114,101,101, 97,114,114, 97,121,
-     40, 41, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10,
-     32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32,101,
-    110,100, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32,125,
-     39, 41, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,
-    116,117,114,110, 32, 39, 46, 46,110,114,101,116, 46, 46, 39,
-     59, 39, 41, 10, 10, 32, 45, 45, 32, 99, 97,108,108, 32,111,
-    118,101,114,108,111, 97,100,101,100, 32,102,117,110, 99,116,
-    105,111,110, 32,111,114, 32,103,101,110,101,114, 97,116,101,
-     32,101,114,114,111,114, 10,  9,105,102, 32,111,118,101,114,
-    108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10, 10,
-      9,  9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,
-    101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83,
-     69, 92,110, 39, 41, 10,  9,  9,111,117,116,112,117,116, 40,
-     39,116,111,108,117, 97, 95,108,101,114,114,111,114, 58, 92,
-    110, 39, 41, 10,  9,  9,111,117,116,112,117,116, 40, 39, 32,
-    116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111,108,
-    117, 97, 95, 83, 44, 34, 35,102,101,114,114,111,114, 32,105,
-    110, 32,102,117,110, 99,116,105,111,110, 32, 92, 39, 39, 46,
-     46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 92,
-     39, 46, 34, 44, 38,116,111,108,117, 97, 95,101,114,114, 41,
-     59, 39, 41, 10,  9,  9,111,117,116,112,117,116, 40, 39, 32,
-    114,101,116,117,114,110, 32, 48, 59, 39, 41, 10,  9,  9,111,
-    117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110,
-     39, 41, 10,  9,101,108,115,101, 10,  9,  9,108,111, 99, 97,
-    108, 32, 95,108,111, 99, 97,108, 32, 61, 32, 34, 34, 10,  9,
-      9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,116,
-    114,117, 99,116,111,114, 32,116,104,101,110, 10,  9,  9,  9,
-     95,108,111, 99, 97,108, 32, 61, 32, 34, 95,108,111, 99, 97,
-    108, 34, 10,  9,  9,101,110,100, 10,  9,  9,111,117,116,112,
-    117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114,111,
-    114, 58, 92,110, 39, 41, 10,  9,  9,111,117,116,112,117,116,
-     40, 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,115,116,
-    114,115,117, 98, 40,115,101,108,102, 46, 99,110, 97,109,101,
-     44, 49, 44, 45, 51, 41, 46, 46,102,111,114,109, 97,116, 40,
-     34, 37, 48, 50,100, 34, 44,111,118,101,114,108,111, 97,100,
-     41, 46, 46, 95,108,111, 99, 97,108, 46, 46, 39, 40,116,111,
-    108,117, 97, 95, 83, 41, 59, 39, 41, 10,  9,101,110,100, 10,
-     32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32,111,
-    117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47,
-     47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95,
-     68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32,111,117,
-    116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10,  9, 45, 45,
-     32,114,101, 99,117,114,115,105,118,101, 32, 99, 97,108,108,
-     32,116,111, 32,119,114,105,116,101, 32,108,111, 99, 97,108,
-     32, 99,111,110,115,116,114,117, 99,116,111,114, 10,  9,105,
-    102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,
-    102, 46,110, 97,109,101, 61, 61, 39,110,101,119, 39, 32, 97,
-    110,100, 32,110,111,116, 32,108,111, 99, 97,108, 95, 99,111,
-    110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10,
-     10,  9,  9,115,101,108,102, 58,115,117,112, 99,111,100,101,
-     40, 49, 41, 10,  9,101,110,100, 10, 10,101,110,100, 10, 10,
-     10, 45, 45, 32,114,101,103,105,115,116,101,114, 32,102,117,
-    110, 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110,
-     32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,
-    114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10,
-     10,  9,105,102, 32,110,111,116, 32,115,101,108,102, 58, 99,
-    104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,
-    101,115,115, 40, 41, 32,116,104,101,110, 10,  9,  9,114,101,
-    116,117,114,110, 10,  9,101,110,100, 10, 10, 32,  9,105,102,
-     32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39,
-    110,101,119, 39, 32, 97,110,100, 32,115,101,108,102, 46,112,
-     97,114,101,110,116, 46,102,108, 97,103,115, 46,112,117,114,
-    101, 95,118,105,114,116,117, 97,108, 32,116,104,101,110, 10,
-     32,  9,  9, 45, 45, 32,110,111, 32, 99,111,110,115,116,114,
-    117, 99,116,111,114, 32,102,111,114, 32, 99,108, 97,115,115,
-    101,115, 32,119,105,116,104, 32,112,117,114,101, 32,118,105,
-    114,116,117, 97,108, 32,109,101,116,104,111,100,115, 10, 32,
-      9,  9,114,101,116,117,114,110, 10, 32,  9,101,110,100, 10,
-     10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,
-    116,111,108,117, 97, 95,102,117,110, 99,116,105,111,110, 40,
-    116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,
-    102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,
-    115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 41, 59,
-     39, 41, 10, 32, 32,105,102, 32,115,101,108,102, 46,110, 97,
-    109,101, 32, 61, 61, 32, 39,110,101,119, 39, 32,116,104,101,
-    110, 10,  9, 32, 32,111,117,116,112,117,116, 40,112,114,101,
-     46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116,105,
-    111,110, 40,116,111,108,117, 97, 95, 83, 44, 34,110,101,119,
-     95,108,111, 99, 97,108, 34, 44, 39, 46, 46,115,101,108,102,
-     46, 99,110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108,
-     41, 59, 39, 41, 10,  9, 32, 32,111,117,116,112,117,116, 40,
-    112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110,
-     99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34,
-     46, 99, 97,108,108, 34, 44, 39, 46, 46,115,101,108,102, 46,
-     99,110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 41,
-     59, 39, 41, 10,  9, 32, 32, 45, 45,111,117,116,112,117,116,
-     40, 39, 32,116,111,108,117, 97, 95,115,101,116, 95, 99, 97,
-    108,108, 95,101,118,101,110,116, 40,116,111,108,117, 97, 95,
-     83, 44, 39, 46, 46,115,101,108,102, 46, 99,110, 97,109,101,
-     46, 46, 39, 95,108,111, 99, 97,108, 44, 32, 34, 39, 46, 46,
-    115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,
-    101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, 32,101,110,100,
-     10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,
-    109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110,
-     32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 58,
-    112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,
-    111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 70,117,110, 99,116,105,111,110,123, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,
-    101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
-     46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,
-    109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110,
-     97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,
-    110,116, 40,105,100,101,110,116, 46, 46, 34, 32,108,110, 97,
-    109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,
-    110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,
-    105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,111,
-    110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,
-     99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,
-    114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 99,
-    110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
-     46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-    108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32,108,111,
-     99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,
-    115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111,
-     10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93,
-     58,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, 32,
-    105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,116,
-     40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125,
-     34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10,
-     45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, 32,
-    114,101,116,117,114,110,115, 32, 97,110, 32,111, 98,106,101,
-     99,116, 32, 98,121, 32,118, 97,108,117,101, 10,102,117,110,
-     99,116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,
-    116,105,111,110, 58,114,101,113,117,105,114,101, 99,111,108,
-    108,101, 99,116,105,111,110, 32, 40,116, 41, 10,  9,108,111,
-     99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10,  9,
-    105,102, 32,115,101,108,102, 46,116,121,112,101, 32,126, 61,
-     32, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98,
-     97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41,
-     32, 97,110,100, 32,115,101,108,102, 46,112,116,114, 61, 61,
-     39, 39, 32,116,104,101,110, 10,  9,  9,108,111, 99, 97,108,
-     32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,
-    108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,110,
-    115,116, 37,115, 43, 34, 44, 34, 34, 41, 10,  9, 32,116, 91,
-    116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95,
-     99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108,
-    101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,116,121,
-    112,101, 41, 10,  9, 32,114, 32, 61, 32,116,114,117,101, 10,
-      9,101,110,100, 10,  9,108,111, 99, 97,108, 32,105, 61, 49,
-     10,  9,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,
-    103,115, 91,105, 93, 32,100,111, 10,  9,  9,114, 32, 61, 32,
-    115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,114,101,
-    113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110,
-     40,116, 41, 32,111,114, 32,114, 10,  9,  9,105, 32, 61, 32,
-    105, 43, 49, 10,  9,101,110,100, 10,  9,114,101,116,117,114,
-    110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,100,101,116,
-    101,114,109,105,110,101, 32,108,117, 97, 32,102,117,110, 99,
-    116,105,111,110, 32,110, 97,109,101, 32,111,118,101,114,108,
-    111, 97,100, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
-     97,115,115, 70,117,110, 99,116,105,111,110, 58,111,118,101,
-    114,108,111, 97,100, 32, 40, 41, 10, 32,114,101,116,117,114,
-    110, 32,115,101,108,102, 46,112, 97,114,101,110,116, 58,111,
-    118,101,114,108,111, 97,100, 40,115,101,108,102, 46,108,110,
-     97,109,101, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,
-    116,105,111,110, 32,112, 97,114, 97,109, 95,111, 98,106,101,
-     99,116, 40,112, 97,114, 41, 32, 45, 45, 32,114,101,116,117,
-    114,110,115, 32,116,114,117,101, 32,105,102, 32,116,104,101,
-     32,112, 97,114, 97,109,101,116,101,114, 32,104, 97,115, 32,
-     97,110, 32,111, 98,106,101, 99,116, 32, 97,115, 32,105,116,
-    115, 32,100,101,102, 97,117,108,116, 32,118, 97,108,117,101,
-     10, 10,  9,105,102, 32,110,111,116, 32,115,116,114,105,110,
-    103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 39,
-     41, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,102,
-     97,108,115,101, 32,101,110,100, 32, 45, 45, 32,105,116, 32,
-    104, 97,115, 32,110,111, 32,100,101,102, 97,117,108,116, 32,
-    118, 97,108,117,101, 10, 10,  9,108,111, 99, 97,108, 32, 95,
-     44, 95, 44,100,101,102, 32, 61, 32,115,116,114,105,110,103,
-     46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 61, 40, 46,
-     42, 41, 36, 34, 41, 10, 10,  9,105,102, 32,115,116,114,105,
-    110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34,124,
-     34, 41, 32,116,104,101,110, 32, 45, 45, 32, 97, 32,108,105,
-    115,116, 32,111,102, 32,102,108, 97,103,115, 10, 10,  9,  9,
-    114,101,116,117,114,110, 32,116,114,117,101, 10,  9,101,110,
-    100, 10, 10,  9,105,102, 32,115,116,114,105,110,103, 46,102,
-    105,110,100, 40,112, 97,114, 44, 32, 34, 37, 42, 34, 41, 32,
-    116,104,101,110, 32, 45, 45, 32,105,116, 39,115, 32, 97, 32,
-    112,111,105,110,116,101,114, 32,119,105,116,104, 32, 97, 32,
-    100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 10,
-      9,  9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,
-    100, 40,112, 97,114, 44, 32, 39, 61, 37,115, 42,110,101,119,
-     39, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39,115,
-     32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116,104,
-     32, 97,110, 32,105,110,115,116, 97,110, 99,101, 32, 97,115,
-     32,100,101,102, 97,117,108,116, 32,112, 97,114, 97,109,101,
-    116,101,114, 46, 46, 32,105,115, 32,116,104, 97,116, 32,118,
-     97,108,105,100, 63, 10,  9,  9,  9,114,101,116,117,114,110,
-     32,116,114,117,101, 10,  9,  9,101,110,100, 10,  9,  9,114,
-    101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32,
-    100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32,105,
-    115, 32, 39, 78, 85, 76, 76, 39, 32,111,114, 32,115,111,109,
-    101,116,104,105,110,103, 10,  9,101,110,100, 10, 10, 10,  9,
-    105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,
-    112, 97,114, 44, 32, 34, 91, 37, 40, 38, 93, 34, 41, 32,116,
-    104,101,110, 10,  9,  9,114,101,116,117,114,110, 32,116,114,
-    117,101, 10,  9,101,110,100, 32, 45, 45, 32,100,101,102, 97,
-    117,108,116, 32,118, 97,108,117,101, 32,105,115, 32, 97, 32,
-     99,111,110,115,116,114,117, 99,116,111,114, 32, 99, 97,108,
-    108, 32, 40,109,111,115,116, 32,108,105,107,101,108,121, 32,
-    102,111,114, 32, 97, 32, 99,111,110,115,116, 32,114,101,102,
-    101,114,101,110, 99,101, 41, 10, 10,  9, 45, 45,105,102, 32,
-    115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114,
-     44, 32, 34, 38, 34, 41, 32,116,104,101,110, 10, 10,  9, 45,
-     45,  9,105,102, 32,115,116,114,105,110,103, 46,102,105,110,
-    100, 40,100,101,102, 44, 32, 34, 58, 34, 41, 32,111,114, 32,
-    115,116,114,105,110,103, 46,102,105,110,100, 40,100,101,102,
-     44, 32, 34, 94, 37,115, 42,110,101,119, 37,115, 43, 34, 41,
-     32,116,104,101,110, 10, 10,  9, 45, 45,  9,  9, 45, 45, 32,
-    105,116, 39,115, 32, 97, 32,114,101,102,101,114,101,110, 99,
-    101, 32,119,105,116,104, 32,100,101,102, 97,117,108,116, 32,
-    116,111, 32,115,111,109,101,116,104,105,110,103, 32,108,105,
-    107,101, 32, 67,108, 97,115,115, 58, 58,109,101,109, 98,101,
-    114, 44, 32,111,114, 32, 39,110,101,119, 32, 67,108, 97,115,
-    115, 39, 10,  9, 45, 45,  9,  9,114,101,116,117,114,110, 32,
-    116,114,117,101, 10,  9, 45, 45,  9,101,110,100, 10,  9, 45,
-     45,101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,102,
-     97,108,115,101, 32, 45, 45, 32, 63, 10,101,110,100, 10, 10,
-    102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95,
-    108, 97,115,116, 95, 97,114,103, 40, 97,108,108, 95, 97,114,
-    103,115, 44, 32,108, 97,115,116, 95, 97,114,103, 41, 32, 45,
-     45, 32,115,116,114,105,112,115, 32,116,104,101, 32,100,101,
-    102, 97,117,108,116, 32,118, 97,108,117,101, 32,102,114,111,
-    109, 32,116,104,101, 32,108, 97,115,116, 32, 97,114,103,117,
-    109,101,110,116, 10, 10,  9,108,111, 99, 97,108, 32, 95, 44,
-     95, 44,115, 95, 97,114,103, 32, 61, 32,115,116,114,105,110,
-    103, 46,102,105,110,100, 40,108, 97,115,116, 95, 97,114,103,
-     44, 32, 34, 94, 40, 91, 94, 61, 93, 43, 41, 34, 41, 10,  9,
-    108, 97,115,116, 95, 97,114,103, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,108, 97,115,116, 95, 97,114,
-    103, 44, 32, 34, 40, 91, 37, 37, 37, 40, 37, 41, 93, 41, 34,
-     44, 32, 34, 37, 37, 37, 49, 34, 41, 59, 10,  9, 97,108,108,
-     95, 97,114,103,115, 32, 61, 32,115,116,114,105,110,103, 46,
-    103,115,117, 98, 40, 97,108,108, 95, 97,114,103,115, 44, 32,
-     34, 37,115, 42, 44, 37,115, 42, 34, 46, 46,108, 97,115,116,
-     95, 97,114,103, 46, 46, 34, 37,115, 42, 37, 41, 37,115, 42,
-     36, 34, 44, 32, 34, 41, 34, 41, 10,  9,114,101,116,117,114,
-    110, 32, 97,108,108, 95, 97,114,103,115, 44, 32,115, 95, 97,
-    114,103, 10,101,110,100, 10, 10, 10, 10, 45, 45, 32, 73,110,
-    116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,
-    116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 70,
-    117,110, 99,116,105,111,110, 32, 40,116, 41, 10, 32,115,101,
-    116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108,
-     97,115,115, 70,117,110, 99,116,105,111,110, 41, 10, 10, 32,
-    105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39,
-     99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111,
-    110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,
-     32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,
-    105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112,101, 99,
-    105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32,101,110,
-    100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,
-    105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,
-    116,104,101,110, 10, 32, 45, 45,112,114,105,110,116, 32, 40,
-     39,116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116,
-     46,110, 97,109,101, 46, 46, 39, 44, 32,112, 97,114,101,110,
-    116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46,
-    112, 97,114,101,110,116, 46,110, 97,109,101, 41, 10, 32, 32,
-    105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,
-    116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44,
-     32, 34, 34, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,
-    103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111,
-    114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114,
-     32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44,
-     32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,
-    101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32,
-     39,110,101,119, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,
-    101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46,
-    112, 97,114,101,110,116, 46, 95,110,101,119, 32, 61, 32,116,
-    114,117,101, 10, 32, 32, 32,116, 46,116,121,112,101, 32, 61,
-     32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 10,
-     32, 32, 32,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, 10,
-     32, 32,101,108,115,101,105,102, 32,115,116,114,105,110,103,
-     46,103,115,117, 98, 40,116, 46,110, 97,109,101, 44, 32, 34,
-     37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32, 39,
-    126, 39, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98,
-     40,116, 46,112, 97,114,101,110,116, 46,111,114,105,103,105,
-    110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112,
-     97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98,
-     60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,101,110, 10, 32,
-     32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,100,101,108,
-    101,116,101, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,101,
-     32, 61, 32, 39,100,101,108,101,116,101, 39, 10, 32, 32, 32,
-    116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116,
-    101, 32, 61, 32,116,114,117,101, 10, 32, 32,101,110,100, 10,
-     32,101,110,100, 10, 32,116, 46, 99,110, 97,109,101, 32, 61,
-     32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,
-    111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101,114,108,
-    111, 97,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,
-    116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,
-    114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,
-    116,115, 32,116,104,114,101,101, 32,115,116,114,105,110,103,
-    115, 58, 32,111,110,101, 32,114,101,112,114,101,115,101,110,
-    116,105,110,103, 32,116,104,101, 32,102,117,110, 99,116,105,
-    111,110, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 44,
-     10, 45, 45, 32, 97,110,111,116,104,101,114, 32,114,101,112,
-    114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 97,
-    114,103,117,109,101,110,116, 32,108,105,115,116, 44, 32, 97,
-    110,100, 32,116,104,101, 32,116,104,105,114,100, 32,114,101,
-    112,114,101,115,101,110,116,105,110,103, 10, 45, 45, 32,116,
-    104,101, 32, 34, 99,111,110,115,116, 34, 32,111,114, 32,101,
-    109,112,116,121, 32,115,116,114,105,110,103, 46, 10,102,117,
-    110, 99,116,105,111,110, 32, 70,117,110, 99,116,105,111,110,
-     32, 40,100, 44, 97, 44, 99, 41, 10, 32, 45, 45,108,111, 99,
-     97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116,
-    114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 44, 39, 44,
-     39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,
-     32, 98,114, 97, 99,101,115, 10, 32, 45, 45,108,111, 99, 97,
-    108, 32,116, 32, 61, 32,115,112,108,105,116, 95,112, 97,114,
-     97,109,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44,
-     45, 50, 41, 41, 10, 10,  9,105,102, 32,110,111,116, 32,102,
-    108, 97,103,115, 91, 39, 87, 39, 93, 32, 97,110,100, 32,115,
-    116,114,105,110,103, 46,102,105,110,100, 40, 97, 44, 32, 34,
-     37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 41, 32,116,
-    104,101,110, 10, 10,  9,  9,119, 97,114,110,105,110,103, 40,
-     34, 70,117,110, 99,116,105,111,110,115, 32,119,105,116,104,
-     32,118, 97,114,105, 97, 98,108,101, 32, 97,114,103,117,109,
-    101,110,116,115, 32, 40, 96, 46, 46, 46, 39, 41, 32, 97,114,
-    101, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100,
-     46, 32, 73,103,110,111,114,105,110,103, 32, 34, 46, 46,100,
-     46, 46, 97, 46, 46, 99, 41, 10,  9,  9,114,101,116,117,114,
-    110, 32,110,105,108, 10,  9,101,110,100, 10, 10, 10, 32,108,
-    111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108,
-     32,108, 32, 61, 32,123,110, 61, 48,125, 10, 10, 32,  9, 97,
-     32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,
-     97, 44, 32, 34, 37,115, 42, 40, 91, 37, 40, 37, 41, 93, 41,
-     37,115, 42, 34, 44, 32, 34, 37, 49, 34, 41, 10,  9,108,111,
-     99, 97,108, 32,116, 44,115,116,114,105,112, 44,108, 97,115,
-    116, 32, 61, 32,115,116,114,105,112, 95,112, 97,114,115, 40,
-    115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41,
-     59, 10,  9,105,102, 32,115,116,114,105,112, 32,116,104,101,
-    110, 10,  9,  9, 45, 45,108,111, 99, 97,108, 32,110,115, 32,
-     61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116,
-    114,115,117, 98, 40, 97, 44, 49, 44, 45, 50, 41, 44, 32, 49,
-     44, 32, 45, 40,115,116,114,105,110,103, 46,108,101,110, 40,
-    108, 97,115,116, 41, 43, 49, 41, 41, 10,  9,  9,108,111, 99,
-     97,108, 32,110,115, 32, 61, 32,106,111,105,110, 40,116, 44,
-     32, 34, 44, 34, 44, 32, 49, 44, 32,108, 97,115,116, 45, 49,
-     41, 10, 10,  9,  9,110,115, 32, 61, 32, 34, 40, 34, 46, 46,
-    115,116,114,105,110,103, 46,103,115,117, 98, 40,110,115, 44,
-     32, 34, 37,115, 42, 44, 37,115, 42, 36, 34, 44, 32, 34, 34,
-     41, 46, 46, 39, 41, 39, 10,  9,  9, 45, 45,110,115, 32, 61,
-     32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115,
-     40,110,115, 41, 10, 10,  9,  9, 70,117,110, 99,116,105,111,
-    110, 40,100, 44, 32,110,115, 44, 32, 99, 41, 10,  9,  9,102,
-    111,114, 32,105, 61, 49, 44,108, 97,115,116, 32,100,111, 10,
-      9,  9,  9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110,
-    103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61,
-     46, 42, 36, 34, 44, 32, 34, 34, 41, 10,  9,  9,101,110,100,
-     10,  9,101,110,100, 10, 10, 32,119,104,105,108,101, 32,116,
-     91,105, 93, 32,100,111, 10, 32, 32,108, 46,110, 32, 61, 32,
-    108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32,
-     61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,116,
-     91,105, 93, 44, 39,118, 97,114, 39, 44,116,114,117,101, 41,
-     10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100,
-     10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99,
-    108, 97,114, 97,116,105,111,110, 40,100, 44, 39,102,117,110,
-     99, 39, 41, 10, 32,102, 46, 97,114,103,115, 32, 61, 32,108,
-     10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, 32,
-    114,101,116,117,114,110, 32, 95, 70,117,110, 99,116,105,111,
-    110, 40,102, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,
-    105,111,110, 32,106,111,105,110, 40,116, 44, 32,115,101,112,
-     44, 32,102,105,114,115,116, 44, 32,108, 97,115,116, 41, 10,
-     10,  9,102,105,114,115,116, 32, 61, 32,102,105,114,115,116,
-     32,111,114, 32, 49, 10,  9,108, 97,115,116, 32, 61, 32,108,
-     97,115,116, 32,111,114, 32,116, 97, 98,108,101, 46,103,101,
-    116,110, 40,116, 41, 10,  9,108,111, 99, 97,108, 32,108,115,
-    101,112, 32, 61, 32, 34, 34, 10,  9,108,111, 99, 97,108, 32,
-    114,101,116, 32, 61, 32, 34, 34, 10,  9,108,111, 99, 97,108,
-     32,108,111,111,112, 32, 61, 32,102, 97,108,115,101, 10,  9,
-    102,111,114, 32,105, 32, 61, 32,102,105,114,115,116, 44,108,
-     97,115,116, 32,100,111, 10, 10,  9,  9,114,101,116, 32, 61,
-     32,114,101,116, 46, 46,108,115,101,112, 46, 46,116, 91,105,
-     93, 10,  9,  9,108,115,101,112, 32, 61, 32,115,101,112, 10,
-      9,  9,108,111,111,112, 32, 61, 32,116,114,117,101, 10,  9,
-    101,110,100, 10,  9,105,102, 32,110,111,116, 32,108,111,111,
-    112, 32,116,104,101,110, 10,  9,  9,114,101,116,117,114,110,
-     32, 34, 34, 10,  9,101,110,100, 10, 10,  9,114,101,116,117,
-    114,110, 32,114,101,116, 10,101,110,100, 10, 10,102,117,110,
-     99,116,105,111,110, 32,115,116,114,105,112, 95,112, 97,114,
-    115, 40,115, 41, 10, 10,  9,108,111, 99, 97,108, 32,116, 32,
-     61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,
-    115, 40,115, 44, 32, 39, 44, 39, 41, 10,  9,108,111, 99, 97,
-    108, 32,115,116,114,105,112, 32, 61, 32,102, 97,108,115,101,
-     10,  9,108,111, 99, 97,108, 32,108, 97,115,116, 10, 10,  9,
-    102,111,114, 32,105, 61,116, 46,110, 44, 49, 44, 45, 49, 32,
-    100,111, 10, 10,  9,  9,105,102, 32,110,111,116, 32,115,116,
-    114,105,112, 32, 97,110,100, 32,112, 97,114, 97,109, 95,111,
-     98,106,101, 99,116, 40,116, 91,105, 93, 41, 32,116,104,101,
-    110, 10,  9,  9,  9,108, 97,115,116, 32, 61, 32,105, 10,  9,
-      9,  9,115,116,114,105,112, 32, 61, 32,116,114,117,101, 10,
-      9,  9,101,110,100, 10,  9,  9, 45, 45,105,102, 32,115,116,
-    114,105,112, 32,116,104,101,110, 10,  9,  9, 45, 45,  9,116,
-     91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115,
-    117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34,
-     44, 32, 34, 34, 41, 10,  9,  9, 45, 45,101,110,100, 10,  9,
-    101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,116, 44,
-    115,116,114,105,112, 44,108, 97,115,116, 10, 10,101,110,100,
-     10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105,
-    112, 95,100,101,102, 97,117,108,116,115, 40,115, 41, 10, 10,
-      9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117,
-     98, 40,115, 44, 32, 34, 94, 37, 40, 34, 44, 32, 34, 34, 41,
-     10,  9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,
-    117, 98, 40,115, 44, 32, 34, 37, 41, 36, 34, 44, 32, 34, 34,
-     41, 10, 10,  9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,
-    112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115,
-     44, 32, 34, 44, 34, 41, 10,  9,108,111, 99, 97,108, 32,115,
-    101,112, 44, 32,114,101,116, 32, 61, 32, 34, 34, 44, 34, 34,
-     10,  9,102,111,114, 32,105, 61, 49, 44,116, 46,110, 32,100,
-    111, 10,  9,  9,116, 91,105, 93, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34,
-     61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10,  9,  9,114,101,
-    116, 32, 61, 32,114,101,116, 46, 46,115,101,112, 46, 46,116,
-     91,105, 93, 10,  9,  9,115,101,112, 32, 61, 32, 34, 44, 34,
-     10,  9,101,110,100, 10, 10,  9,114,101,116,117,114,110, 32,
-     34, 40, 34, 46, 46,114,101,116, 46, 46, 34, 41, 34, 10,101,
-    110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/function.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32,111,112,101,114, 97,
-    116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,
-    105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109,
-     97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67,
-     71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45,
-     32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,
-    100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,
-    111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,
-    116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,
-    114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116,
-     32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,
-    105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,
-    119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,
-    101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32,
-     97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,
-    115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,
-    117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,
-    108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,
-    118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,
-    101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100,
-     97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,
-    101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,
-    102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45,
-     32, 79,112,101,114, 97,116,111,114, 32, 99,108, 97,115,115,
-     10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,
-     97,110, 32,111,112,101,114, 97,116,111,114, 32,102,117,110,
-     99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115,
-    115, 32,111,112,101,114, 97,116,111,114, 32,109,101,116,104,
-    111,100, 46, 10, 45, 45, 32, 73,116, 32,115,116,111,114,101,
-    115, 32,116,104,101, 32,115, 97,109,101, 32,102,105,101,108,
-    100,115, 32, 97,115, 32,102,117,110, 99,116,105,111,110,115,
-     32,100,111, 32,112,108,117,115, 58, 10, 45, 45, 32, 32,107,
-    105,110,100, 32, 61, 32,115,101,116, 32,111,102, 32, 99,104,
-     97,114, 97, 99,116,101,114, 32,114,101,112,114,101,115,101,
-    110,116,105,110,103, 32,116,104,101, 32,111,112,101,114, 97,
-    116,111,114, 32, 40, 97,115, 32,105,116, 32, 97,112,112,101,
-    114,115, 32,105,110, 32, 67, 43, 43, 32, 99,111,100,101, 41,
-     10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32,
-     61, 32,123, 10, 32,107,105,110,100, 32, 61, 32, 39, 39, 44,
-     10,125, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,
-    114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,
-    115,115, 79,112,101,114, 97,116,111,114, 10,115,101,116,109,
-    101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 79,
-    112,101,114, 97,116,111,114, 44, 99,108, 97,115,115, 70,117,
-    110, 99,116,105,111,110, 41, 10, 10, 45, 45, 32,116, 97, 98,
-    108,101, 32,116,111, 32,116,114, 97,110,115,102,111,114,109,
-     32,111,112,101,114, 97,116,111,114, 32,107,105,110,100, 32,
-    105,110,116,111, 32,116,104,101, 32, 97,112,112,114,111,112,
-    114,105, 97,116,101, 32,116, 97,103, 32,109,101,116,104,111,
-    100, 32,110, 97,109,101, 10, 95, 84, 77, 32, 61, 32,123, 91,
-     39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 32,
-     32, 32, 32, 32, 32, 32, 91, 39, 45, 39, 93, 32, 61, 32, 39,
-    115,117, 98, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39,
-     42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 32, 32,
-     32, 32, 32, 32, 32, 91, 39, 47, 39, 93, 32, 61, 32, 39,100,
-    105,118, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60,
-     39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 32, 32, 32, 32,
-     32, 32, 32, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101,
-     39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 61, 61, 39,
-     93, 32, 61, 32, 39,101,113, 39, 44, 10, 32, 32, 32, 32, 32,
-     32, 32, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116,
-    105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 38, 91,
-     93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10, 32,
-     32, 32, 32, 32, 32, 32, 45, 45, 91, 39, 45, 62, 39, 93, 32,
-     61, 32, 39,102,108,101, 99,104,105,116, 97, 39, 44, 10, 32,
-     32, 32, 32, 32, 32,125, 10, 10, 10, 45, 45, 32, 80,114,105,
-    110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,
-    105,111,110, 32, 99,108, 97,115,115, 79,112,101,114, 97,116,
-    111,114, 58,112,114,105,110,116, 32, 40,105,100,101,110,116,
-     44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 79,112,101,114, 97,116,111,
-    114,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 32,107,105,110,100, 32, 32, 61, 32, 39,
-     34, 46, 46,115,101,108,102, 46,107,105,110,100, 46, 46, 34,
-     39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,
-    110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34,
-     46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44,
-     34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116,
-     46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,
-    115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,
-    101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,
-    112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
-     99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,
-    102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,
-    108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41,
-     10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
-     34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,
-    101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34,
-     41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32,
-    108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,
-    101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,
-    100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91,
-    105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32,
-     61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,
-    110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41,
-     10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
-     34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100,
-     10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
-    115, 79,112,101,114, 97,116,111,114, 58,115,117,112, 99,111,
-    100,101, 95,116,109,112, 40, 41, 10, 10,  9,105,102, 32,110,
-    111,116, 32, 95, 84, 77, 91,115,101,108,102, 46,107,105,110,
-    100, 93, 32,116,104,101,110, 10,  9,  9,114,101,116,117,114,
-    110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110,
-     46,115,117,112, 99,111,100,101, 40,115,101,108,102, 41, 10,
-      9,101,110,100, 10, 10,  9, 45, 45, 32,110,111, 32,111,118,
-    101,114,108,111, 97,100, 44, 32,110,111, 32,112, 97,114, 97,
-    109,101,116,101,114,115, 44, 32, 97,108,119, 97,121,115, 32,
-    105,110, 99,108, 97,115,115, 10,  9,111,117,116,112,117,116,
-     40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,
-    101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,
-    108, 97,115,115, 32, 34, 44,115,101,108,102, 58,105,110, 99,
-    108, 97,115,115, 40, 41, 44, 34, 32, 42, 47, 34, 41, 10, 10,
-      9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,
-    102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69,
-     95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41,
-     10,  9,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,
-    116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,
-    110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,
-    101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 10,
-      9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32,
-     48, 32,116,104,101,110, 10,  9, 32,111,117,116,112,117,116,
-     40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65,
-     95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,  9,101,
-    110,100, 10,  9,111,117,116,112,117,116, 40, 39, 32,116,111,
-    108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97,
-     95,101,114,114, 59, 39, 41, 10,  9,111,117,116,112,117,116,
-     40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10,  9, 45, 45,
-     32, 99,104,101, 99,107, 32,115,101,108,102, 10,  9,111,117,
-    116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,
-     39,116,111,108,117, 97, 95,105,115,117,115,101,114,116,121,
-    112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39,
-     46, 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,
-    121,112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117,
-     97, 95,101,114,114, 41, 32,124,124, 92,110, 39, 41, 10,  9,
-    111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,
-    111,108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,
-    108,117, 97, 95, 83, 44, 50, 44, 38,116,111,108,117, 97, 95,
-    101,114,114, 41, 92,110, 32, 41, 39, 41, 10,  9,111,117,116,
-    112,117,116, 40, 39, 32, 32,103,111,116,111, 32,116,111,108,
-    117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10,  9,
-    111,117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110,
-     39, 41, 10,  9,111,117,116,112,117,116, 40, 39, 35,101,110,
-    100,105,102, 92,110, 39, 41, 32, 45, 45, 32,116,111,108,117,
-     97, 95,114,101,108,101, 97,115,101, 10,  9,111,117,116,112,
-    117,116, 40, 39, 32,123, 39, 41, 10, 10,  9, 45, 45, 32,100,
-    101, 99,108, 97,114,101, 32,115,101,108,102, 10,  9,111,117,
-    116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,
-    111,110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,
-    116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,
-    102, 32, 61, 32, 39, 41, 10,  9,111,117,116,112,117,116, 40,
-     39, 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,
-    115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,
-    101, 44, 39, 42, 41, 32, 39, 41, 10,  9,111,117,116,112,117,
-    116, 40, 39,116,111,108,117, 97, 95,116,111,117,115,101,114,
-    116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44,
-     48, 41, 59, 39, 41, 10, 10,  9, 45, 45, 32, 99,104,101, 99,
-    107, 32,115,101,108,102, 10,  9,111,117,116,112,117,116, 40,
-     39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95,
-     82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,  9,111,117,
-    116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,
-    108,102, 41, 32,116,111,108,117, 97, 95,101,114,114,111,114,
-     40,116,111,108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,
-    105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,
-    102,117,110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,
-    101,108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44,
-     78, 85, 76, 76, 41, 59, 39, 41, 59, 10,  9,111,117,116,112,
-    117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,
-     10,  9, 45, 45, 32, 99, 97,115,116, 32,115,101,108,102, 10,
-      9,111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,115,101,
-    108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112,
-    101, 44,115,101,108,102, 46,112,116,114, 44, 39,116,111,108,
-    117, 97, 95,114,101,116, 32, 61, 32, 39, 41, 10,  9,111,117,
-    116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,
-    111,100, 44,115,101,108,102, 46,116,121,112,101, 44,115,101,
-    108,102, 46,112,116,114, 44, 39, 41, 40, 42,115,101,108,102,
-     41, 59, 39, 41, 10, 10,  9, 45, 45, 32,114,101,116,117,114,
-    110, 32,118, 97,108,117,101, 10,  9,108,111, 99, 97,108, 32,
-    116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,
-    115,101,108,102, 46,116,121,112,101, 41, 10,  9,105,102, 32,
-    116, 32,116,104,101,110, 10,  9,  9,111,117,116,112,117,116,
-     40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104,
-     39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83,
-     44, 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,
-    114,101,116, 41, 59, 39, 41, 10,  9,101,108,115,101, 10,  9,
-      9,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,
-      9,  9,110,101,119, 95,116, 32, 61, 32,115,116,114,105,110,
-    103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111,110,115,
-    116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10,  9,  9,105,102,
-     32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39,
-     32,116,104,101,110, 10,  9,  9,  9,111,117,116,112,117,116,
-     40, 39, 32, 32, 32,123, 39, 41, 10,  9,  9,  9,111,117,116,
-    112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,
-    112,108,117,115,112,108,117,115, 92,110, 39, 41, 10,  9,  9,
-      9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,
-    105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61,
-     32,110,101,119, 39, 44,110,101,119, 95,116, 44, 39, 40,116,
-    111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10,  9,  9,
-      9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,
-    108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,
-    101, 95, 97,110,100, 95,116, 97,107,101,111,119,110,101,114,
-    115,104,105,112, 40,116,111,108,117, 97, 95, 83, 44,116,111,
-    108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34,
-     41, 59, 39, 41, 10,  9,  9,  9,111,117,116,112,117,116, 40,
-     39, 35,101,108,115,101, 92,110, 39, 41, 10,  9,  9,  9,111,
-    117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100,
-     42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,
-    111,108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97,
-     95, 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117,
-     97, 95,114,101,116, 44,115,105,122,101,111,102, 40, 39, 44,
-    116, 44, 39, 41, 41, 59, 39, 41, 10,  9,  9,  9,111,117,116,
-    112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, 95,
-    112,117,115,104,117,115,101,114,116,121,112,101, 95, 97,110,
-    100, 95,116, 97,107,101,111,119,110,101,114,115,104,105,112,
-     40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,
-    111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41,
-     10,  9,  9,  9,111,117,116,112,117,116, 40, 39, 35,101,110,
-    100,105,102, 92,110, 39, 41, 10,  9,  9,  9,111,117,116,112,
-    117,116, 40, 39, 32, 32, 32,125, 39, 41, 10,  9,  9,101,108,
-    115,101,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61,
-     61, 32, 39, 38, 39, 32,116,104,101,110, 10,  9,  9,  9,111,
-    117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108,117, 97,
-     95,112,117,115,104,117,115,101,114,116,121,112,101, 40,116,
-    111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38,
-    116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44,116, 44,
-     39, 34, 41, 59, 39, 41, 10,  9,  9,101,108,115,101, 10,  9,
-      9,  9,105,102, 32,108,111, 99, 97,108, 95, 99,111,110,115,
-    116,114,117, 99,116,111,114, 32,116,104,101,110, 10,  9,  9,
-      9,  9,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,
-    108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,
-    101, 95, 97,110,100, 95,116, 97,107,101,111,119,110,101,114,
-    115,104,105,112, 40,116,111,108,117, 97, 95, 83, 44, 40,118,
-    111,105,100, 32, 42, 41,116,111,108,117, 97, 95,114,101,116,
-     44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10,  9,  9,
-      9,101,108,115,101, 10,  9,  9,  9,  9,111,117,116,112,117,
-    116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,
-    104,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97,
-     95, 83, 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97,
-     95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39,
-     41, 10,  9,  9,  9,101,110,100, 10,  9,  9,101,110,100, 10,
-      9,101,110,100, 10, 10,  9,111,117,116,112,117,116, 40, 39,
-     32, 32,125, 39, 41, 10,  9,111,117,116,112,117,116, 40, 39,
-     32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10, 10,  9,
-    111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102,
-     32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,
-    110, 39, 41, 10,  9,111,117,116,112,117,116, 40, 39,116,111,
-    108,117, 97, 95,108,101,114,114,111,114, 58, 92,110, 39, 41,
-     10,  9,111,117,116,112,117,116, 40, 39, 32,116,111,108,117,
-     97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83,
-     44, 34, 35,102,101,114,114,111,114, 32,105,110, 32,102,117,
-    110, 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,
-    102, 46,108,110, 97,109,101, 46, 46, 39, 92, 39, 46, 34, 44,
-     38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10,
-      9,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,
-    110, 32, 48, 59, 39, 41, 10,  9,111,117,116,112,117,116, 40,
-     39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 10,  9,
-    111,117,116,112,117,116, 40, 39,125, 39, 41, 10,  9,111,117,
-    116,112,117,116, 40, 39, 35,101,110,100,105,102, 32, 47, 47,
-     35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68,
-     73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10,  9,111,117,116,
-    112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10,
-     45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,110,
-    115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,105,
-    111,110, 32, 95, 79,112,101,114, 97,116,111,114, 32, 40,116,
-     41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101,
-     40,116, 44, 99,108, 97,115,115, 79,112,101,114, 97,116,111,
-    114, 41, 10, 10, 32,105,102, 32,116, 46, 99,111,110,115,116,
-     32,126, 61, 32, 39, 99,111,110,115,116, 39, 32, 97,110,100,
-     32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,
-    116,104,101,110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,
-    105,110,118, 97,108,105,100, 32, 39, 99,111,110,115,116, 39,
-     32,115,112,101, 99,105,102,105, 99, 97,116,105,111,110, 34,
-     41, 10, 32,101,110,100, 10, 10, 32, 97,112,112,101,110,100,
-     40,116, 41, 10, 32,105,102, 32,110,111,116, 32,116, 58,105,
-    110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10, 32,
-     32,101,114,114,111,114, 40, 34, 35,111,112,101,114, 97,116,
-    111,114, 32, 99, 97,110, 32,111,110,108,121, 32, 98,101, 32,
-    100,101,102,105,110,101,100, 32, 97,115, 32, 99,108, 97,115,
-    115, 32,109,101,109, 98,101,114, 34, 41, 10, 32,101,110,100,
-     10, 10, 32, 45, 45,116, 46,110, 97,109,101, 32, 61, 32,116,
-     46,110, 97,109,101, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46,
-     32, 40, 95, 84, 77, 91,116, 46,107,105,110,100, 93, 32,111,
-    114, 32,116, 46,107,105,110,100, 41, 10, 32,116, 46, 99,110,
-     97,109,101, 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,
-    109,101, 40, 34,116,111,108,117, 97, 34, 41, 46, 46,116, 58,
-    111,118,101,114,108,111, 97,100, 40,116, 41, 10, 32,116, 46,
-    110, 97,109,101, 32, 61, 32, 34,111,112,101,114, 97,116,111,
-    114, 34, 32, 46, 46, 32,116, 46,107,105,110,100, 32, 32, 45,
-     45, 32,115,101,116, 32, 97,112,112,114,111,112,114,105, 97,
-    116,101, 32, 99, 97,108,108,105,110,103, 32,110, 97,109,101,
-     10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10,
-     10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114,
-     10,102,117,110, 99,116,105,111,110, 32, 79,112,101,114, 97,
-    116,111,114, 32, 40,100, 44,107, 44, 97, 44, 99, 41, 10, 10,
-      9,108,111, 99, 97,108, 32,111,112, 95,107, 32, 61, 32,115,
-    116,114,105,110,103, 46,103,115,117, 98, 40,107, 44, 32, 34,
-     94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10,  9,111,112, 95,
-    107, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98,
-     40,107, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41,
-     10,  9, 45, 45,105,102, 32,115,116,114,105,110,103, 46,102,
-    105,110,100, 40,107, 44, 32, 34, 94, 91, 37,119, 95, 58, 37,
-    100, 60, 62, 37, 42, 37, 38, 93, 43, 36, 34, 41, 32,116,104,
-    101,110, 10,  9,105,102, 32,100, 32, 61, 61, 32, 34,111,112,
-    101,114, 97,116,111,114, 34, 32, 97,110,100, 32,107, 32,126,
-     61, 32, 39, 39, 32,116,104,101,110, 10, 10,  9,  9,100, 32,
-     61, 32,107, 46, 46, 34, 32,111,112,101,114, 97,116,111,114,
-     34, 10,  9,101,108,115,101,105,102, 32,110,111,116, 32, 95,
-     84, 77, 91,111,112, 95,107, 93, 32,116,104,101,110, 10, 10,
-      9,  9,105,102, 32,102,108, 97,103,115, 91, 39, 87, 39, 93,
-     32,116,104,101,110, 10,  9,  9,  9,101,114,114,111,114, 40,
-     34,116,111,108,117, 97, 58, 32,110,111, 32,115,117,112,112,
-    111,114,116, 32,102,111,114, 32,111,112,101,114, 97,116,111,
-    114, 34, 32, 46, 46, 32,102, 46,107,105,110,100, 41, 10,  9,
-      9,101,108,115,101, 10,  9,  9,  9,119, 97,114,110,105,110,
-    103, 40, 34, 78,111, 32,115,117,112,112,111,114,116, 32,102,
-    111,114, 32,111,112,101,114, 97,116,111,114, 32, 34, 46, 46,
-    111,112, 95,107, 46, 46, 34, 44, 32,105,103,110,111,114,105,
-    110,103, 34, 41, 10,  9,  9,  9,114,101,116,117,114,110, 32,
-    110,105,108, 10,  9,  9,101,110,100, 10,  9,101,110,100, 10,
-     10,  9,108,111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39,
-     39, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,
-    108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,
-    114,115,117, 98, 40, 97, 44, 50, 44,115,116,114,108,101,110,
-     40, 97, 41, 45, 49, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,
-    101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,
-    115, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,108,
-    111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10,
-     32,119,104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10,
-     32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32,
-     32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,
-    114, 97,116,105,111,110, 40,116, 91,105, 93, 44, 39,118, 97,
-    114, 39, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,
-    101,110,100, 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91,
-     93, 39, 32,116,104,101,110, 10,  9, 32,108,111, 99, 97,108,
-     32, 95, 10,  9, 32, 95, 44, 32, 95, 44, 32,114,101,102, 32,
-     61, 32,115,116,114,102,105,110,100, 40,100, 44, 39, 40, 38,
-     41, 39, 41, 10, 32, 32,100, 32, 61, 32,103,115,117, 98, 40,
-    100, 44, 39, 38, 39, 44, 39, 39, 41, 10, 32,101,108,115,101,
-    105,102, 32,107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,
-    110, 10, 32, 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49,
-     10, 32, 32,108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,
-    108, 97,114, 97,116,105,111,110, 40,100, 44, 39,118, 97,114,
-     39, 41, 10, 32, 32,108, 91,108, 46,110, 93, 46,110, 97,109,
-    101, 32, 61, 32, 39,116,111,108,117, 97, 95,118, 97,108,117,
-    101, 39, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,
-    102, 32, 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110,
-     40,100, 44, 39,102,117,110, 99, 39, 41, 10, 32,105,102, 32,
-    107, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32, 40,
-    108, 91, 49, 93, 61, 61,110,105,108, 32,111,114, 32,105,115,
-     98, 97,115,105, 99, 40,108, 91, 49, 93, 46,116,121,112,101,
-     41,126, 61, 39,110,117,109, 98,101,114, 39, 41, 32,116,104,
-    101,110, 10, 32, 32,101,114,114,111,114, 40, 39,111,112,101,
-    114, 97,116,111,114, 91, 93, 32, 99, 97,110, 32,111,110,108,
-    121, 32, 98,101, 32,100,101,102,105,110,101,100, 32,102,111,
-    114, 32,110,117,109,101,114,105, 99, 32,105,110,100,101,120,
-     46, 39, 41, 10, 32,101,110,100, 10, 32,102, 46, 97,114,103,
-    115, 32, 61, 32,108, 10, 32,102, 46, 99,111,110,115,116, 32,
-     61, 32, 99, 10, 32,102, 46,107,105,110,100, 32, 61, 32,111,
-    112, 95,107, 10, 32,102, 46,108,110, 97,109,101, 32, 61, 32,
-     34, 46, 34, 46, 46, 40, 95, 84, 77, 91,102, 46,107,105,110,
-    100, 93, 32,111,114, 32,102, 46,107,105,110,100, 41, 10, 32,
-    105,102, 32,110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,
-    110,100, 93, 32,116,104,101,110, 10, 32,  9,102, 46, 99, 97,
-    115,116, 95,111,112,101,114, 97,116,111,114, 32, 61, 32,116,
-    114,117,101, 10, 32,101,110,100, 10, 32,105,102, 32,102, 46,
-    107,105,110,100, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,
-    100, 32,114,101,102, 61, 61, 39, 38, 39, 32, 97,110,100, 32,
-    102, 46, 99,111,110,115,116,126, 61, 39, 99,111,110,115,116,
-     39, 32,116,104,101,110, 10, 32, 32, 79,112,101,114, 97,116,
-    111,114, 40,100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99,
-     41, 32,  9, 45, 45, 32, 99,114,101, 97,116,101, 32, 99,111,
-    114,114,101,115,112,111,100,105,110,103, 32,115,101,116, 32,
-    111,112,101,114, 97,116,111,114, 10, 32,101,110,100, 10, 32,
-    114,101,116,117,114,110, 32, 95, 79,112,101,114, 97,116,111,
-    114, 40,102, 41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/operator.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,116,111,108,117, 97, 58, 32, 99,108, 97,115,115,
-     32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,
-    101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32,
-     67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,
-    102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,
-    108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32,
-     36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101,
-     32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,
-    114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,
-    105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,
-    100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46,
-     10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,
-    101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,
-    117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32,
-     34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32,
-     97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,
-    111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103,
-     97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,
-    101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,
-    115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,
-    115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,
-    110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99,
-     97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 67,108,
-     97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,
-    112,114,101,115,101,110,116,115, 32, 97, 32, 99,108, 97,115,
-    115, 32,100,101,102,105,110,105,116,105,111,110, 46, 10, 45,
-     45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111,
-    108,108,111,119,105,110,103, 32,102,105,101,108,100,115, 58,
-     10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,
-    108, 97,115,115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32,
-     32, 98, 97,115,101, 32, 61, 32, 99,108, 97,115,115, 32, 98,
-     97,115,101, 44, 32,105,102, 32, 97,110,121, 32, 40,111,110,
-    108,121, 32,115,105,110,103,108,101, 32,105,110,104,101,114,
-    105,116, 97,110, 99,101, 32,105,115, 32,115,117,112,112,111,
-    114,116,101,100, 41, 10, 45, 45, 32, 32, 32, 32,123,105,125,
-     32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,109,
-     98,101,114,115, 10, 99,108, 97,115,115, 67,108, 97,115,115,
-     32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,112,101,
-     32, 61, 32, 39, 99,108, 97,115,115, 39, 44, 10, 32,110, 97,
-    109,101, 32, 61, 32, 39, 39, 44, 10, 32, 98, 97,115,101, 32,
-     61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39,
-     39, 44, 10, 32, 98,116,121,112,101, 32, 61, 32, 39, 39, 44,
-     10, 32, 99,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,125,
-     10, 99,108, 97,115,115, 67,108, 97,115,115, 46, 95, 95,105,
-    110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,108, 97,
-    115,115, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101,
-     40, 99,108, 97,115,115, 67,108, 97,115,115, 44, 99,108, 97,
-    115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10,
-     45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,108, 97,
-    115,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 67,108, 97,115,115, 58,114,101,103,105,115,116,101,
-    114, 32, 40,112,114,101, 41, 10,  9,105,102, 32,110,111,116,
-     32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98,
-    108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,
-    101,110, 10,  9,  9,114,101,116,117,114,110, 10,  9,101,110,
-    100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32,111,
-    114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108,102,
-     41, 10,  9,105,102, 32, 95, 99,111,108,108,101, 99,116, 91,
-    115,101,108,102, 46,116,121,112,101, 93, 32,116,104,101,110,
-     10,  9,  9,111,117,116,112,117,116, 40,112,114,101, 44, 39,
-     35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,
-    108,117,115, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,
-    116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, 99,
-     99,108, 97,115,115, 40,116,111,108,117, 97, 95, 83, 44, 34,
-     39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46,
-     39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121,112,
-    101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,
-     98,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46, 95, 99,
-    111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121,112,
-    101, 93, 46, 46, 39, 41, 59, 39, 41, 10,  9,  9,111,117,116,
-    112,117,116, 40,112,114,101, 44, 39, 35,101,108,115,101, 92,
-    110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,112,114,
-    101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,
-    115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,
-    101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34,
-     39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39,
-     34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,
-    101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10,
-      9,  9,111,117,116,112,117,116, 40,112,114,101, 44, 39, 35,
-    101,110,100,105,102, 92,110, 39, 41, 10,  9,101,108,115,101,
-     10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46,
-     39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40,116,
-    111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102,
-     46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,
-    115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 34,
-     39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, 46,
-     39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10,  9,101,110,
-    100, 10,  9,105,102, 32,115,101,108,102, 46,101,120,116,114,
-     97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10,  9,  9,
-    102,111,114, 32,107, 44, 98, 97,115,101, 32,105,110, 32,105,
-    112, 97,105,114,115, 40,115,101,108,102, 46,101,120,116,114,
-     97, 95, 98, 97,115,101,115, 41, 32,100,111, 10,  9,  9,  9,
-     45, 45, 32,110,111,116, 32,110,111,119, 10, 32, 32, 32, 45,
-     45,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, 32,
-    116,111,108,117, 97, 95, 97,100,100, 98, 97,115,101, 40,116,
-    111,108,117, 97, 95, 83, 44, 32, 34, 39, 46, 46,115,101,108,
-    102, 46,116,121,112,101, 46, 46, 39, 34, 44, 32, 34, 39, 46,
-     46, 98, 97,115,101, 46, 46, 39, 34, 41, 59, 39, 41, 10,  9,
-      9,101,110,100, 10,  9,101,110,100, 10, 32,111,117,116,112,
-    117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,
-     98,101,103,105,110,109,111,100,117,108,101, 40,116,111,108,
-    117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,
-    110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32,108,
-    111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101,
-     32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,115,
-    101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101,114,
-     40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, 32,
-     61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,111,117,116,
-    112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97,
-     95,101,110,100,109,111,100,117,108,101, 40,116,111,108,117,
-     97, 95, 83, 41, 59, 39, 41, 10,  9,112,111,112, 40, 41, 10,
-    101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32,
-     99,111,108,108,101, 99,116,105,111,110, 32,114,101,113,117,
-    105,114,101,109,101,110,116, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58,114,101,
-    113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110,
-     32, 40,116, 41, 10,  9,105,102, 32,115,101,108,102, 46,102,
-    108, 97,103,115, 46,112,114,111,116,101, 99,116,101,100, 95,
-    100,101,115,116,114,117, 99,116,111,114, 32,116,104,101,110,
-     10,  9,  9,114,101,116,117,114,110, 32,102, 97,108,115,101,
-     10,  9,101,110,100, 10, 32,112,117,115,104, 40,115,101,108,
-    102, 41, 10,  9,108,111, 99, 97,108, 32,114, 32, 61, 32,102,
-     97,108,115,101, 10, 32,108,111, 99, 97,108, 32,105, 61, 49,
-     10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93,
-     32,100,111, 10, 32, 32,114, 32, 61, 32,115,101,108,102, 91,
-    105, 93, 58,114,101,113,117,105,114,101, 99,111,108,108,101,
-     99,116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 32,
-     32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10,  9,
-    112,111,112, 40, 41, 10,  9, 45, 45, 32,111,110,108,121, 32,
-     99,108, 97,115,115, 32,116,104, 97,116, 32,101,120,112,111,
-    114,116,115, 32,100,101,115,116,114,117, 99,116,111,114, 32,
-     99, 97,110, 32, 98,101, 32, 97,112,112,114,111,112,114,105,
-     97,116,101,108,121, 32, 99,111,108,108,101, 99,116,101,100,
-     10,  9, 45, 45, 32, 99,108, 97,115,115,101,115, 32,116,104,
-     97,116, 32,101,120,112,111,114,116, 32, 99,111,110,115,116,
-    114,117, 99,116,111,114,115, 32,110,101,101,100, 32,116,111,
-     32,104, 97,118,101, 32, 97, 32, 99,111,108,108,101, 99,116,
-    111,114, 32, 40,111,118,101,114,114,105,100,101,100, 32, 98,
-    121, 32, 45, 68, 32,102,108, 97,103, 32,111,110, 32, 99,111,
-    109,109, 97,110,100, 32,108,105,110,101, 41, 10,  9,105,102,
-     32,115,101,108,102, 46, 95,100,101,108,101,116,101, 32,111,
-    114, 32, 40, 40,110,111,116, 32,102,108, 97,103,115, 91, 39,
-     68, 39, 93, 41, 32, 97,110,100, 32,115,101,108,102, 46, 95,
-    110,101,119, 41, 32,116,104,101,110, 10,  9,  9, 45, 45,116,
-     91,115,101,108,102, 46,116,121,112,101, 93, 32, 61, 32, 34,
-    116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34,
-     32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46,116,
-    121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,  9,
-      9,116, 91,115,101,108,102, 46,116,121,112,101, 93, 32, 61,
-     32, 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116,
-     95, 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,
-    112,108, 97,116,101, 40,115,101,108,102, 46,116,121,112,101,
-     41, 10,  9,  9,114, 32, 61, 32,116,114,117,101, 10,  9,101,
-    110,100, 10, 32,114,101,116,117,114,110, 32,114, 10,101,110,
-    100, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116, 97,
-    103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
-    115,115, 67,108, 97,115,115, 58,100,101, 99,108,116,121,112,
-    101, 32, 40, 41, 10, 32,112,117,115,104, 40,115,101,108,102,
-     41, 10,  9,115,101,108,102, 46,116,121,112,101, 32, 61, 32,
-    114,101,103,116,121,112,101, 40,115,101,108,102, 46,111,114,
-    105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, 32,
-    115,101,108,102, 46,110, 97,109,101, 41, 10,  9,115,101,108,
-    102, 46, 98,116,121,112,101, 32, 61, 32,116,121,112,101,118,
-     97,114, 40,115,101,108,102, 46, 98, 97,115,101, 41, 10,  9,
-    115,101,108,102, 46, 99,116,121,112,101, 32, 61, 32, 39, 99,
-    111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116,121,
-    112,101, 10,  9,105,102, 32,115,101,108,102, 46,101,120,116,
-    114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10,  9,
-      9,102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,
-    103,101,116,110, 40,115,101,108,102, 46,101,120,116,114, 97,
-     95, 98, 97,115,101,115, 41, 32,100,111, 10,  9,  9,  9,115,
-    101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115,
-     91,105, 93, 32, 61, 32,116,121,112,101,118, 97,114, 40,115,
-    101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115,
-     91,105, 93, 41, 10,  9,  9,101,110,100, 10,  9,101,110,100,
-     10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,
-    105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,
-     32, 32,115,101,108,102, 91,105, 93, 58,100,101, 99,108,116,
-    121,112,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49,
-     10, 32,101,110,100, 10,  9,112,111,112, 40, 41, 10,101,110,
-    100, 10, 10, 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,
-    116,104,111,100, 10,102,117,110, 99,116,105,111,110, 32, 99,
-    108, 97,115,115, 67,108, 97,115,115, 58,112,114,105,110,116,
-     32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10,
-     32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
-     67,108, 97,115,115,123, 34, 41, 10, 32,112,114,105,110,116,
-     40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32,
-     61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101,
-     46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 32, 98, 97,115,101, 32, 61,
-     32, 39, 34, 46, 46,115,101,108,102, 46, 98, 97,115,101, 46,
-     46, 34, 39, 59, 34, 41, 10, 32,112,114,105,110,116, 40,105,
-    100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32, 61,
-     32, 39, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,101,
-     46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61,
-     32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46,
-     46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,
-    100,101,110,116, 46, 46, 34, 32, 98,116,121,112,101, 32, 61,
-     32, 39, 34, 46, 46,115,101,108,102, 46, 98,116,121,112,101,
-     46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,
-    105,100,101,110,116, 46, 46, 34, 32, 99,116,121,112,101, 32,
-     61, 32, 39, 34, 46, 46,115,101,108,102, 46, 99,116,121,112,
-    101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108,
-     32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,
-    102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,
-    105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46,
-     46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61,
-     32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110,
-    116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,
-    108,111,115,101, 41, 10,101,110,100, 10, 10,102,117,110, 99,
-    116,105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115,
-     58,115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,
-    100,101,115,116,114,117, 99,116,111,114, 40,112, 41, 10,  9,
-    115,101,108,102, 46,102,108, 97,103,115, 46,112,114,111,116,
-    101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,
-    114, 32, 61, 32,115,101,108,102, 46,102,108, 97,103,115, 46,
-    112,114,111,116,101, 99,116,101,100, 95,100,101,115,116,114,
-    117, 99,116,111,114, 32,111,114, 32,112, 10,101,110,100, 10,
-     10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111,
-    110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116,
-    105,111,110, 32, 95, 67,108, 97,115,115, 32, 40,116, 41, 10,
-     32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116,
-     44, 99,108, 97,115,115, 67,108, 97,115,115, 41, 10, 32,116,
-     58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 32,
-     97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,
-    114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,
-    110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,
-    112,101, 99,116,115, 32,116,104,101, 32,110, 97,109,101, 44,
-     32,116,104,101, 32, 98, 97,115,101, 32, 40, 97,114,114, 97,
-    121, 41, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121,
-     32,111,102, 32,116,104,101, 32, 99,108, 97,115,115, 46, 10,
-    102,117,110, 99,116,105,111,110, 32, 67,108, 97,115,115, 32,
-     40,110, 44,112, 44, 98, 41, 10, 10,  9,105,102, 32,116, 97,
-     98,108,101, 46,103,101,116,110, 40,112, 41, 32, 62, 32, 49,
-     32,116,104,101,110, 10,  9,  9, 98, 32, 61, 32,115,116,114,
-    105,110,103, 46,115,117, 98, 40, 98, 44, 32, 49, 44, 32, 45,
-     50, 41, 10,  9,  9,102,111,114, 32,105, 61, 50, 44,116, 97,
-     98,108,101, 46,103,101,116,110, 40,112, 41, 44, 49, 32,100,
-    111, 10,  9,  9,  9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110,
-     32,116,111,108,117, 97, 95,105,110,104,101,114,105,116,115,
-     32, 34, 46, 46,112, 91,105, 93, 46, 46, 34, 32, 95, 95, 34,
-     46, 46,112, 91,105, 93, 46, 46, 34, 95, 95, 59, 92,110, 34,
-     10,  9,  9,101,110,100, 10,  9,  9, 98, 32, 61, 32, 98, 46,
-     46, 34, 92,110,125, 34, 10,  9,101,110,100, 10, 10,  9, 45,
-     45, 32, 99,104,101, 99,107, 32,102,111,114, 32,116,101,109,
-    112,108, 97,116,101, 10,  9, 98, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, 94,123, 37,
-    115, 42, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68,
-     34, 44, 32, 34,123, 92,110, 84, 79, 76, 85, 65, 95, 84, 69,
-     77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 34, 41, 10,  9,
-    108,111, 99, 97,108, 32,116, 44, 95, 44, 84, 44, 73, 32, 61,
-     32,115,116,114,105,110,103, 46,102,105,110,100, 40, 98, 44,
-     32, 34, 94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69,
-     77, 80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 37,115, 42, 37,
-     40, 43, 37,115, 42, 92, 34, 63, 40, 91, 94, 92, 34, 44, 93,
-     42, 41, 92, 34, 63, 37,115, 42, 44, 37,115, 42, 40, 91, 94,
-     37, 41, 93, 42, 41, 37,115, 42, 37, 41, 43, 34, 41, 10,  9,
-    105,102, 32,116, 32,116,104,101,110, 10, 10,  9,  9, 45, 45,
-     32,114,101,109,111,118,101, 32,113,117,111,116,101,115, 10,
-      9,  9, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,
-    117, 98, 40, 73, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34, 41,
-     10,  9,  9, 84, 32, 61, 32,115,116,114,105,110,103, 46,103,
-    115,117, 98, 40, 84, 44, 32, 34, 92, 34, 34, 44, 32, 34, 34,
-     41, 10,  9,  9, 45, 45, 32,103,101,116, 32,116,121,112,101,
-     32,108,105,115,116, 10,  9,  9,108,111, 99, 97,108, 32,116,
-    121,112,101,115, 32, 61, 32,115,112,108,105,116, 95, 99, 95,
-    116,111,107,101,110,115, 40, 73, 44, 32, 34, 44, 34, 41, 10,
-      9,  9, 45, 45, 32,114,101,109,111,118,101, 32, 84, 69, 77,
-     80, 76, 65, 84, 69, 95, 66, 73, 78, 68, 32,108,105,110,101,
-     10,  9,  9,108,111, 99, 97,108, 32, 98,115, 32, 61, 32,115,
-    116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34,
-     94,123, 37,115, 42, 84, 79, 76, 85, 65, 95, 84, 69, 77, 80,
-     76, 65, 84, 69, 95, 66, 73, 78, 68, 91, 94, 92,110, 93, 42,
-     92,110, 34, 44, 32, 34,123, 92,110, 34, 41, 10, 10,  9,  9,
-     45, 45, 32,114,101,112,108, 97, 99,101, 10,  9,  9,102,111,
-    114, 32,105, 32, 61, 49, 32, 44, 32,116,121,112,101,115, 46,
-    110, 32,100,111, 10, 10,  9,  9,  9,108,111, 99, 97,108, 32,
-     84,108, 32, 61, 32,115,112,108,105,116, 40, 84, 44, 32, 34,
-     32, 34, 41, 10,  9,  9,  9,108,111, 99, 97,108, 32, 73,108,
-     32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,
-    110,115, 40,116,121,112,101,115, 91,105, 93, 44, 32, 34, 32,
-     34, 41, 10,  9,  9,  9,108,111, 99, 97,108, 32, 98, 73, 32,
-     61, 32, 98,115, 10,  9,  9,  9,108,111, 99, 97,108, 32,112,
-     73, 32, 61, 32,123,125, 10,  9,  9,  9,102,111,114, 32,106,
-     32, 61, 32, 49, 44, 84,108, 46,110, 32,100,111, 10,  9,  9,
-      9,  9, 84,108, 91,106, 93, 32, 61, 32,102,105,110,100,116,
-    121,112,101, 40, 84,108, 91,106, 93, 41, 32,111,114, 32, 84,
-    108, 91,106, 93, 10,  9,  9,  9,  9, 98, 73, 32, 61, 32,115,
-    116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32,
-     34, 40, 91, 94, 95, 37,119, 93, 41, 34, 46, 46, 84,108, 91,
-    106, 93, 46, 46, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 44,
-     32, 34, 37, 49, 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34,
-     37, 50, 34, 41, 10,  9,  9,  9,  9,105,102, 32,112, 32,116,
-    104,101,110, 10,  9,  9,  9,  9,  9,102,111,114, 32,105, 61,
-     49, 44,116, 97, 98,108,101, 46,103,101,116,110, 40,112, 41,
-     32,100,111, 10,  9,  9,  9,  9,  9,  9,112, 73, 91,105, 93,
-     32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,
-    112, 91,105, 93, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 63,
-     41, 34, 46, 46, 84,108, 91,106, 93, 46, 46, 34, 40, 91, 94,
-     95, 37,119, 93, 63, 41, 34, 44, 32, 34, 37, 49, 34, 46, 46,
-     73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, 10,  9,  9,
-      9,  9,  9,101,110,100, 10,  9,  9,  9,  9,101,110,100, 10,
-      9,  9,  9,101,110,100, 10,  9,  9,  9, 45, 45,108,111, 99,
-     97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34,
-     46, 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,
-    121,112,101,115, 91,105, 93, 44, 32, 34, 37,115, 43, 34, 44,
-     32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10,  9,  9,  9,108,
-    111, 99, 97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34,
-     60, 34, 46, 46, 99,111,110, 99, 97,116, 40, 73,108, 44, 32,
-     49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,
-    108, 41, 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10,  9,
-      9,  9, 97,112,112,101,110,100, 32, 61, 32,115,116,114,105,
-    110,103, 46,103,115,117, 98, 40, 97,112,112,101,110,100, 44,
-     32, 34, 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 44, 34,
-     41, 10,  9,  9,  9, 97,112,112,101,110,100, 32, 61, 32,115,
-    116,114,105,110,103, 46,103,115,117, 98, 40, 97,112,112,101,
-    110,100, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34,
-     41, 10,  9,  9,  9,102,111,114, 32,105, 61, 49, 44,116, 97,
-     98,108,101, 46,103,101,116,110, 40,112, 73, 41, 32,100,111,
-     10,  9,  9,  9,  9, 45, 45,112, 73, 91,105, 93, 32, 61, 32,
-    115,116,114,105,110,103, 46,103,115,117, 98, 40,112, 73, 91,
-    105, 93, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34,
-     41, 10,  9,  9,  9,  9,112, 73, 91,105, 93, 32, 61, 32,114,
-    101,115,111,108,118,101, 95,116,101,109,112,108, 97,116,101,
-     95,116,121,112,101,115, 40,112, 73, 91,105, 93, 41, 10,  9,
-      9,  9,101,110,100, 10,  9,  9,  9, 98, 73, 32, 61, 32,115,
-    116,114,105,110,103, 46,103,115,117, 98, 40, 98, 73, 44, 32,
-     34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10,  9,  9,
-      9, 67,108, 97,115,115, 40,110, 46, 46, 97,112,112,101,110,
-    100, 44, 32,112, 73, 44, 32, 98, 73, 41, 10,  9,  9,101,110,
-    100, 10,  9,  9,114,101,116,117,114,110, 10,  9,101,110,100,
-     10, 10,  9,108,111, 99, 97,108, 32,109, 98, 97,115,101, 10,
-     10,  9,105,102, 32,112, 32,116,104,101,110, 10,  9,  9,109,
-     98, 97,115,101, 32, 61, 32,116, 97, 98,108,101, 46,114,101,
-    109,111,118,101, 40,112, 44, 32, 49, 41, 10,  9,  9,105,102,
-     32,110,111,116, 32,112, 91, 49, 93, 32,116,104,101,110, 32,
-    112, 32, 61, 32,110,105,108, 32,101,110,100, 10,  9,101,110,
-    100, 10, 10,  9,109, 98, 97,115,101, 32, 61, 32,109, 98, 97,
-    115,101, 32, 97,110,100, 32,114,101,115,111,108,118,101, 95,
-    116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40,
-    109, 98, 97,115,101, 41, 10, 10,  9,108,111, 99, 97,108, 32,
-     99, 10,  9,108,111, 99, 97,108, 32,111,110, 97,109,101, 32,
-     61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,110,
-     44, 32, 34, 64, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10,  9,
-    111,110, 97,109,101, 32, 61, 32,103,101,116,110, 97,109,101,
-    115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116,
-     97,105,110,101,114, 46, 99,117,114,114, 41, 46, 46,111,110,
-     97,109,101, 10, 10,  9,105,102, 32, 95,103,108,111, 98, 97,
-    108, 95, 99,108, 97,115,115,101,115, 91,111,110, 97,109,101,
-     93, 32,116,104,101,110, 10,  9,  9, 99, 32, 61, 32, 95,103,
-    108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,111,
-    110, 97,109,101, 93, 10,  9,  9,105,102, 32,109, 98, 97,115,
-    101, 32, 97,110,100, 32, 40, 40,110,111,116, 32, 99, 46, 98,
-     97,115,101, 41, 32,111,114, 32, 99, 46, 98, 97,115,101, 32,
-     61, 61, 32, 34, 34, 41, 32,116,104,101,110, 10,  9,  9,  9,
-     99, 46, 98, 97,115,101, 32, 61, 32,109, 98, 97,115,101, 10,
-      9,  9,101,110,100, 10,  9,101,108,115,101, 10,  9,  9, 99,
-     32, 61, 32, 95, 67,108, 97,115,115, 40, 95, 67,111,110,116,
-     97,105,110,101,114,123,110, 97,109,101, 61,110, 44, 32, 98,
-     97,115,101, 61,109, 98, 97,115,101, 44, 32,101,120,116,114,
-     97, 95, 98, 97,115,101,115, 61,112,125, 41, 10, 10,  9,  9,
-    108,111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110,
-     97,109,101,115,112, 97, 99,101, 40, 99, 46,112, 97,114,101,
-    110,116, 41, 46, 46, 99, 46,111,114,105,103,105,110, 97,108,
-     95,110, 97,109,101, 10,  9,  9, 97,112,112,101,110,100, 95,
-    103,108,111, 98, 97,108, 95,116,121,112,101, 40,102,116, 44,
-     32, 99, 41, 10,  9,101,110,100, 10, 10,  9,112,117,115,104,
-     40, 99, 41, 10,  9, 99, 58,112, 97,114,115,101, 40,115,116,
-    114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110,
-     40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109,
-    105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10,  9,112,
-    111,112, 40, 41, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/class.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32,109, 97,114,107, 32,117,112, 32, 99,111,109,109,
-    101,110,116,115, 32, 97,110,100, 32,115,116,114,105,110,103,
-    115, 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34,
-     10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 10,
-     83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 10, 83,
-     84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 10, 82, 69,
-     77, 32, 32, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89,
-     32, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48,
-     53, 93, 41, 34, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48,
-     48, 54, 34, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48,
-     55, 34, 10, 10, 77, 65, 83, 75, 32, 61, 32,123, 32, 45, 45,
-     32,116,104,101, 32,115,117, 98,115,116,105,116,117,116,105,
-    111,110, 32,111,114,100,101,114, 32,105,115, 32,105,109,112,
-    111,114,116, 97,110,116, 10, 32,123, 69, 83, 67, 49, 44, 32,
-     34, 92, 92, 39, 34,125, 44, 10, 32,123, 69, 83, 67, 50, 44,
-     32, 39, 92, 92, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 49,
-     44, 32, 34, 39, 34,125, 44, 10, 32,123, 83, 84, 82, 50, 44,
-     32, 39, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 51, 44, 32,
-     34, 37, 91, 37, 91, 34,125, 44, 10, 32,123, 83, 84, 82, 52,
-     44, 32, 34, 37, 93, 37, 93, 34,125, 44, 10, 32,123, 82, 69,
-     77, 32, 44, 32, 34, 37, 45, 37, 45, 34,125, 44, 10,125, 10,
-     10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32,
-     40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,
-    103,101,116,110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10,
-     32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65,
-     83, 75, 91,105, 93, 91, 50, 93, 44, 77, 65, 83, 75, 91,105,
-     93, 91, 49, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116,
-    117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99,
-    116,105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41,
-     10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116,
-    110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115,
-     32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91,
-    105, 93, 91, 49, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 50,
-     93, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110,
-     32,115, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,
-    110, 32, 99,108,101, 97,110, 32, 40,115, 41, 10, 32, 45, 45,
-     32, 99,104,101, 99,107, 32,102,111,114, 32, 99,111,109,112,
-    105,108, 97,116,105,111,110, 32,101,114,114,111,114, 10, 32,
-    108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,114,
-    101,116,117,114,110, 32,102,117,110, 99,116,105,111,110, 32,
-     40, 41, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34,
-     92,110, 32,101,110,100, 34, 10, 32,105,102, 32,110,111,116,
-     32,100,111,115,116,114,105,110,103, 40, 99,111,100,101, 41,
-     32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32,
-    110,105,108, 10, 32,101,110,100, 10, 10, 32,105,102, 32,102,
-    108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10,
-     32,  9,114,101,116,117,114,110, 32,115, 10, 32,101,110,100,
-     10, 10, 32,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34,
-     32, 45, 45, 32,115, 97,118,101,100, 32,115,116,114,105,110,
-    103, 10, 10, 32,115, 32, 61, 32,109, 97,115,107, 40,115, 41,
-     10, 10, 32, 45, 45, 32,114,101,109,111,118,101, 32, 98,108,
-     97,110,107,115, 32, 97,110,100, 32, 99,111,109,109,101,110,
-    116,115, 10, 32,119,104,105,108,101, 32, 49, 32,100,111, 10,
-     32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 32, 61,
-     32,115,116,114,102,105,110,100, 40,115, 44, 65, 78, 89, 41,
-     10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32,
-     32, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40,
-    115, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32, 32,115, 32, 61,
-     32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, 41, 10,
-     32, 32, 32,105,102, 32,100, 61, 61, 83, 84, 82, 49, 32,111,
-    114, 32,100, 61, 61, 83, 84, 82, 50, 32,116,104,101,110, 10,
-     32, 32, 32, 32,101, 32, 61, 32,115,116,114,102,105,110,100,
-     40,115, 44,100, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83,
-     32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44,
-     49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116,
-    114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32,
-    101,108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32,
-    116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116,
-    114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 10, 32,
-     32, 32, 32, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116,
-    114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32,
-     32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101,
-     43, 49, 41, 10, 32, 32, 32,101,108,115,101,105,102, 32,100,
-     61, 61, 82, 69, 77, 32,116,104,101,110, 10, 32, 32, 32, 32,
-    115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 91, 94, 92,
-    110, 93, 42, 40, 92,110, 63, 41, 34, 44, 34, 37, 49, 34, 44,
-     49, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,108,115,
-    101, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115, 10, 32,
-     32, 32, 98,114,101, 97,107, 10, 32, 32,101,110,100, 10, 32,
-    101,110,100, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97,
-    116,101, 32,117,110,101, 99,101,115,115, 97,114,121, 32,115,
-    112, 97, 99,101,115, 10, 32, 83, 32, 61, 32,103,115,117, 98,
-     40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34,
-     41, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34,
-     91, 32, 92,116, 93, 42, 92,110, 91, 32, 92,116, 93, 42, 34,
-     44, 34, 92,110, 34, 41, 10,  9, 83, 32, 61, 32,103,115,117,
-     98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41,
-     10, 32, 83, 32, 61, 32,117,110,109, 97,115,107, 40, 83, 41,
-     10, 32,114,101,116,117,114,110, 32, 83, 10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/clean.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    45, 45, 32, 71,101,110,101,114, 97,116,101, 32, 98,105,110,
-    100,105,110,103, 32, 99,111,100,101, 10, 45, 45, 32, 87,114,
-    105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109,
-     97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67,
-     71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45,
-     32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97,
-    115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32,
-     50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10,
-     10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,
-    105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,
-    101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,
-    115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100,
-     47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10,
-     45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101,
-     32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117,
-    110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34,
-     97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,
-    110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,
-    114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,
-    116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101,
-     32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,
-    117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115,
-     44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,
-    116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,
-    116,105,111,110,115, 46, 10, 10,102,117,110, 99,116,105,111,
-    110, 32,112, 97,114,115,101, 95,101,120,116,114, 97, 40, 41,
-     10, 10,  9,102,111,114, 32,107, 44,118, 32,105,110, 32,105,
-    112, 97,105,114,115, 40, 95,101,120,116,114, 97, 95,112, 97,
-    114, 97,109,101,116,101,114,115, 32,111,114, 32,123,125, 41,
-     32,100,111, 10,  9,  9, 10,  9,  9,108,111, 99, 97,108, 32,
-     98, 44,101, 44,110, 97,109,101, 44,118, 97,108,117,101, 32,
-     61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118,
-     44, 32, 34, 94, 40, 91, 94, 61, 93, 41, 61, 40, 46, 42, 41,
-     36, 34, 41, 10,  9,  9,105,102, 32, 98, 32,116,104,101,110,
-     10,  9,  9,  9, 95,101,120,116,114, 97, 95,112, 97,114, 97,
-    109,101,116,101,114,115, 91,110, 97,109,101, 93, 32, 61, 32,
-    118, 97,108,117,101, 10,  9,  9,101,108,115,101, 10,  9,  9,
-      9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101,116,
-    101,114,115, 91,118, 93, 32, 61, 32,116,114,117,101, 10,  9,
-      9,101,110,100, 10,  9,101,110,100, 10,101,110,100, 10, 10,
-    102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, 40,
-     41, 10,  9, 45, 45, 32,100,101,102,105,110,101, 32,112, 97,
-     99,107, 97,103,101, 32,110, 97,109,101, 44, 32,105,102, 32,
-    110,111,116, 32,112,114,111,118,105,100,101,100, 10,  9,105,
-    102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32,116,
-    104,101,110, 10,  9,  9,105,102, 32,102,108, 97,103,115, 46,
-    102, 32,116,104,101,110, 10,  9,  9,  9,102,108, 97,103,115,
-     46,110, 32, 61, 32,103,115,117, 98, 40,102,108, 97,103,115,
-     46,102, 44, 34, 37, 46, 46, 42, 36, 34, 44, 34, 34, 41, 10,
-      9,  9,  9, 95, 44, 95, 44,102,108, 97,103,115, 46,110, 32,
-     61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,102,
-    108, 97,103,115, 46,110, 44, 32, 34, 40, 91, 94, 47, 92, 92,
-     93, 42, 41, 36, 34, 41, 10,  9,  9,101,108,115,101, 10,  9,
-      9,  9,101,114,114,111,114, 40, 34, 35,110,111, 32,112, 97,
-     99,107, 97,103,101, 32,110, 97,109,101, 32,110,111,114, 32,
-    105,110,112,117,116, 32,102,105,108,101, 32,112,114,111,118,
-    105,100,101,100, 34, 41, 10,  9,  9,101,110,100, 10,  9,101,
-    110,100, 10, 10,  9, 45, 45, 32,112, 97,114,115,101, 32,116,
-     97, 98,108,101, 32,119,105,116,104, 32,101,120,116,114, 97,
-     32,112, 97,114, 97,109,116,101,114,115, 10,  9,112, 97,114,
-    115,101, 95,101,120,116,114, 97, 40, 41, 10, 10,  9, 45, 45,
-     32,100,111, 32,116,104,105,115, 32, 97,102,116,101,114, 32,
-    115,101,116,116,105,110,103, 32,116,104,101, 32,112, 97, 99,
-    107, 97,103,101, 32,110, 97,109,101, 10,  9,105,102, 32,102,
-    108, 97,103,115, 91, 39, 76, 39, 93, 32,116,104,101,110, 10,
-      9,  9,100,111,102,105,108,101, 40,102,108, 97,103,115, 91,
-     39, 76, 39, 93, 41, 10,  9,101,110,100, 10, 10,  9, 45, 45,
-     32, 97,100,100, 32, 99,112,112,115,116,114,105,110,103, 10,
-      9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 91, 39,
-     83, 39, 93, 32,116,104,101,110, 10,  9,  9, 95, 98, 97,115,
-    105, 99, 91, 39,115,116,114,105,110,103, 39, 93, 32, 61, 32,
-     39, 99,112,112,115,116,114,105,110,103, 39, 10,  9,  9, 95,
-     98, 97,115,105, 99, 91, 39,115,116,100, 58, 58,115,116,114,
-    105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116,114,
-    105,110,103, 39, 10,  9,  9, 95, 98, 97,115,105, 99, 95, 99,
-    116,121,112,101, 46, 99,112,112,115,116,114,105,110,103, 32,
-     61, 32, 39, 99,111,110,115,116, 32, 99,104, 97,114, 42, 39,
-     10,  9,101,110,100, 10, 10,  9, 45, 45, 32,112,114,111, 99,
-     99,101,115,115, 32,112, 97, 99,107, 97,103,101, 10,  9,108,
-    111, 99, 97,108, 32,112, 32, 32, 61, 32, 80, 97, 99,107, 97,
-    103,101, 40,102,108, 97,103,115, 46,110, 44,102,108, 97,103,
-    115, 46,102, 41, 10, 10,  9,105,102, 32,102,108, 97,103,115,
-     46,112, 32,116,104,101,110, 10,  9,  9,114,101,116,117,114,
-    110, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,111,110,108,
-    121, 32,112, 97,114,115,101, 10,  9,101,110,100, 10, 10,  9,
-    105,102, 32,102,108, 97,103,115, 46,111, 32,116,104,101,110,
-     10,  9,  9,108,111, 99, 97,108, 32,115,116, 44,109,115,103,
-     32, 61, 32,119,114,105,116,101,116,111, 40,102,108, 97,103,
-    115, 46,111, 41, 10,  9,  9,105,102, 32,110,111,116, 32,115,
-    116, 32,116,104,101,110, 10,  9,  9,  9,101,114,114,111,114,
-     40, 39, 35, 39, 46, 46,109,115,103, 41, 10,  9,  9,101,110,
-    100, 10,  9,101,110,100, 10, 10,  9,112, 58,100,101, 99,108,
-    116,121,112,101, 40, 41, 10,  9,105,102, 32,102,108, 97,103,
-    115, 46, 80, 32,116,104,101,110, 10,  9,  9,112, 58,112,114,
-    105,110,116, 40, 41, 10,  9,101,108,115,101, 10,  9,  9,112,
-     58,112,114,101, 97,109, 98,108,101, 40, 41, 10,  9,  9,112,
-     58,115,117,112, 99,111,100,101, 40, 41, 10,  9,  9,112, 58,
-    114,101,103,105,115,116,101,114, 40, 41, 10,  9,  9,112,117,
-    115,104, 40,112, 41, 10,  9,  9,112,111,115,116, 95,111,117,
-    116,112,117,116, 95,104,111,111,107, 40,112, 41, 10,  9,  9,
-    112,111,112, 40, 41, 10,  9,101,110,100, 10, 10,  9,105,102,
-     32,102,108, 97,103,115, 46,111, 32,116,104,101,110, 10,  9,
-      9,119,114,105,116,101,116,111, 40, 41, 10,  9,101,110,100,
-     10, 10,  9, 45, 45, 32,119,114,105,116,101, 32,104,101, 97,
-    100,101,114, 32,102,105,108,101, 10,  9,105,102, 32,110,111,
-    116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10,
-      9,  9,105,102, 32,102,108, 97,103,115, 46, 72, 32,116,104,
-    101,110, 10,  9,  9,  9,108,111, 99, 97,108, 32,115,116, 44,
-    109,115,103, 32, 61, 32,119,114,105,116,101,116,111, 40,102,
-    108, 97,103,115, 46, 72, 41, 10,  9,  9,  9,105,102, 32,110,
-    111,116, 32,115,116, 32,116,104,101,110, 10,  9,  9,  9,  9,
-    101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41,
-     10,  9,  9,  9,101,110,100, 10,  9,  9,  9,112, 58,104,101,
-     97,100,101,114, 40, 41, 10,  9,  9,  9,119,114,105,116,101,
-    116,111, 40, 41, 10,  9,  9,101,110,100, 10,  9,101,110,100,
-     10,101,110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: src/bin/lua/doit.lua");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
-
-  { /* begin embedded lua code */
-   int top = lua_gettop(tolua_S);
-   static unsigned char B[] = {
-    10,108,111, 99, 97,108, 32,101,114,114, 44,109,115,103, 32,
-     61, 32,112, 99, 97,108,108, 40,100,111,105,116, 41, 10,105,
-    102, 32,110,111,116, 32,101,114,114, 32,116,104,101,110, 10,
-     32,108,111, 99, 97,108, 32, 95, 44, 95, 44,108, 97, 98,101,
-    108, 44,109,115,103, 32, 61, 32,115,116,114,102,105,110,100,
-     40,109,115,103, 44, 34, 40, 46, 45, 58, 46, 45, 58, 37,115,
-     42, 41, 40, 46, 42, 41, 34, 41, 10, 32,116,111,108,117, 97,
-     95,101,114,114,111,114, 40,109,115,103, 44,108, 97, 98,101,
-    108, 41, 10, 32,112,114,105,110,116, 40,100,101, 98,117,103,
-     46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101,
-    110,100,32
-   };
-   tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code 22");
-   lua_settop(tolua_S, top);
-  } /* end of embedded lua code */
-
- tolua_endmodule(tolua_S);
- return 1;
-}
-
-
-#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
- int luaopen_tolua (lua_State* tolua_S) {
- return tolua_tolua_open(tolua_S);
-};
-#endif
-
Index: code/branches/buildsystem3/src/tolua/toluabind.h
===================================================================
--- code/branches/buildsystem3/src/tolua/toluabind.h	(revision 2663)
+++ 	(revision )
@@ -1,8 +1,0 @@
-/*
-** Lua binding: tolua
-** Generated automatically by tolua++-1.0.91 on Wed Apr 26 22:30:15 2006.
-*/
-
-/* Exported function */
-TOLUA_API int  tolua_tolua_open (lua_State* tolua_S);
-
