Allow selection of modules

--HG--
branch : minor
This commit is contained in:
Bart van Strien
2011-03-06 15:11:47 +01:00
parent b22e07048f
commit 22e75f72f1
3 changed files with 153 additions and 111 deletions
+10 -10
View File
@@ -67,18 +67,18 @@
static const luaL_Reg modules[] = {
{ "love.audio", love::audio::luaopen_love_audio },
{ "love.event", love::event::sdl::luaopen_love_event },
{ "love.filesystem", love::filesystem::physfs::luaopen_love_filesystem },
{ "love.font", love::font::freetype::luaopen_love_font },
{ "love.graphics", love::graphics::opengl::luaopen_love_graphics },
{ "love.event.sdl", love::event::sdl::luaopen_love_event },
{ "love.filesystem.physfs", love::filesystem::physfs::luaopen_love_filesystem },
{ "love.font.freetype", love::font::freetype::luaopen_love_font },
{ "love.graphics.opengl", love::graphics::opengl::luaopen_love_graphics },
{ "love.image", love::image::luaopen_love_image },
{ "love.joystick", love::joystick::sdl::luaopen_love_joystick },
{ "love.keyboard", love::keyboard::sdl::luaopen_love_keyboard },
{ "love.mouse", love::mouse::sdl::luaopen_love_mouse },
{ "love.physics", love::physics::box2d::luaopen_love_physics },
{ "love.joystick.sdl", love::joystick::sdl::luaopen_love_joystick },
{ "love.keyboard.sdl", love::keyboard::sdl::luaopen_love_keyboard },
{ "love.mouse.sdl", love::mouse::sdl::luaopen_love_mouse },
{ "love.physics.box2d", love::physics::box2d::luaopen_love_physics },
{ "love.sound", love::sound::luaopen_love_sound },
{ "love.timer", love::timer::sdl::luaopen_love_timer },
{ "love.thread", love::thread::sdl::luaopen_love_thread },
{ "love.timer.sdl", love::timer::sdl::luaopen_love_timer },
{ "love.thread.sdl", love::thread::sdl::luaopen_love_thread },
{ 0, 0 }
};
+21 -2
View File
@@ -187,7 +187,7 @@ function love.boot()
-- This is absolutely needed.
require("love")
require("love.filesystem")
require("love.filesystem.physfs")
love.arg.parse_options()
@@ -275,10 +275,29 @@ function love.init()
c.console = true
end
local defaultmodules = {
audio = false,
event = "sdl",
filesystem = "physfs",
font = "freetype",
graphics = "opengl",
image = false,
joystick = "sdl",
keyboard = "sdl",
mouse = "sdl",
physics = "box2d",
sound = false,
timer = "sdl",
thread = "sdl"
}
-- Gets desired modules.
for k,v in pairs(c.modules) do
if v then
require("love." .. k)
if type(v) ~= "string" then
v = defaultmodules[k]
end
require((v and "love.%s.%s" or "love.%s"):format(k, v))
end
end
+122 -99
View File
@@ -174,106 +174,129 @@ const unsigned char boot_lua[] =
0x74,0x69,0x6F,0x6E,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x62,0x6F,0x6F,0x74,0x28,
0x29,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x22,0x6C,0x6F,0x76,0x65,
0x22,0x29,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x22,0x6C,0x6F,0x76,
0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x22,0x29,0x20,
0x6C,0x6F,0x76,0x65,0x2E,0x61,0x72,0x67,0x2E,0x70,0x61,0x72,0x73,0x65,0x5F,
0x6F,0x70,0x74,0x69,0x6F,0x6E,0x73,0x28,0x29,0x20,0x6C,0x6F,0x63,0x61,0x6C,
0x20,0x6F,0x20,0x3D,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x61,0x72,0x67,0x2E,0x6F,
0x70,0x74,0x69,0x6F,0x6E,0x73,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x61,0x72,
0x67,0x30,0x20,0x3D,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x61,0x72,0x67,0x2E,0x67,
0x65,0x74,0x4C,0x6F,0x77,0x28,0x61,0x72,0x67,0x29,0x20,0x6C,0x6F,0x76,0x65,
0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x69,0x6E,0x69,
0x74,0x28,0x61,0x72,0x67,0x30,0x29,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x63,
0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,0x61,0x6D,0x65,0x20,0x3D,0x20,0x70,
0x63,0x61,0x6C,0x6C,0x28,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,
0x79,0x73,0x74,0x65,0x6D,0x2E,0x73,0x65,0x74,0x53,0x6F,0x75,0x72,0x63,0x65,
0x2C,0x20,0x61,0x72,0x67,0x30,0x29,0x20,0x69,0x66,0x20,0x6E,0x6F,0x74,0x20,
0x63,0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,0x61,0x6D,0x65,0x20,0x61,0x6E,
0x64,0x20,0x6F,0x2E,0x67,0x61,0x6D,0x65,0x2E,0x73,0x65,0x74,0x20,0x61,0x6E,
0x64,0x20,0x6F,0x2E,0x67,0x61,0x6D,0x65,0x2E,0x61,0x72,0x67,0x5B,0x31,0x5D,
0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x66,0x75,0x6C,
0x6C,0x5F,0x73,0x6F,0x75,0x72,0x63,0x65,0x20,0x3D,0x20,0x6C,0x6F,0x76,0x65,
0x2E,0x70,0x61,0x74,0x68,0x2E,0x67,0x65,0x74,0x66,0x75,0x6C,0x6C,0x28,0x6F,
0x2E,0x67,0x61,0x6D,0x65,0x2E,0x61,0x72,0x67,0x5B,0x31,0x5D,0x29,0x20,0x6C,
0x6F,0x63,0x61,0x6C,0x20,0x6C,0x65,0x61,0x66,0x20,0x3D,0x20,0x6C,0x6F,0x76,
0x65,0x2E,0x70,0x61,0x74,0x68,0x2E,0x6C,0x65,0x61,0x66,0x28,0x66,0x75,0x6C,
0x6C,0x5F,0x73,0x6F,0x75,0x72,0x63,0x65,0x29,0x20,0x6C,0x6F,0x76,0x65,0x2E,
0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x73,0x65,0x74,0x49,
0x64,0x65,0x6E,0x74,0x69,0x74,0x79,0x28,0x6C,0x65,0x61,0x66,0x29,0x20,0x63,
0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,0x61,0x6D,0x65,0x20,0x3D,0x20,0x70,
0x63,0x61,0x6C,0x6C,0x28,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,
0x79,0x73,0x74,0x65,0x6D,0x2E,0x73,0x65,0x74,0x53,0x6F,0x75,0x72,0x63,0x65,
0x2C,0x20,0x66,0x75,0x6C,0x6C,0x5F,0x73,0x6F,0x75,0x72,0x63,0x65,0x29,0x20,
0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x63,0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,
0x67,0x61,0x6D,0x65,0x20,0x61,0x6E,0x64,0x20,0x6E,0x6F,0x74,0x20,0x28,0x6C,
0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x70,0x68,
0x79,0x73,0x66,0x73,0x22,0x29,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x61,0x72,0x67,
0x2E,0x70,0x61,0x72,0x73,0x65,0x5F,0x6F,0x70,0x74,0x69,0x6F,0x6E,0x73,0x28,
0x29,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x6F,0x20,0x3D,0x20,0x6C,0x6F,0x76,
0x65,0x2E,0x61,0x72,0x67,0x2E,0x6F,0x70,0x74,0x69,0x6F,0x6E,0x73,0x20,0x6C,
0x6F,0x63,0x61,0x6C,0x20,0x61,0x72,0x67,0x30,0x20,0x3D,0x20,0x6C,0x6F,0x76,
0x65,0x2E,0x61,0x72,0x67,0x2E,0x67,0x65,0x74,0x4C,0x6F,0x77,0x28,0x61,0x72,
0x67,0x29,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,
0x74,0x65,0x6D,0x2E,0x69,0x6E,0x69,0x74,0x28,0x61,0x72,0x67,0x30,0x29,0x20,
0x6C,0x6F,0x63,0x61,0x6C,0x20,0x63,0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,
0x61,0x6D,0x65,0x20,0x3D,0x20,0x70,0x63,0x61,0x6C,0x6C,0x28,0x6C,0x6F,0x76,
0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x73,0x65,
0x74,0x53,0x6F,0x75,0x72,0x63,0x65,0x2C,0x20,0x61,0x72,0x67,0x30,0x29,0x20,
0x69,0x66,0x20,0x6E,0x6F,0x74,0x20,0x63,0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,
0x67,0x61,0x6D,0x65,0x20,0x61,0x6E,0x64,0x20,0x6F,0x2E,0x67,0x61,0x6D,0x65,
0x2E,0x73,0x65,0x74,0x20,0x61,0x6E,0x64,0x20,0x6F,0x2E,0x67,0x61,0x6D,0x65,
0x2E,0x61,0x72,0x67,0x5B,0x31,0x5D,0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,0x6F,
0x63,0x61,0x6C,0x20,0x66,0x75,0x6C,0x6C,0x5F,0x73,0x6F,0x75,0x72,0x63,0x65,
0x20,0x3D,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x70,0x61,0x74,0x68,0x2E,0x67,0x65,
0x74,0x66,0x75,0x6C,0x6C,0x28,0x6F,0x2E,0x67,0x61,0x6D,0x65,0x2E,0x61,0x72,
0x67,0x5B,0x31,0x5D,0x29,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x6C,0x65,0x61,
0x66,0x20,0x3D,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x70,0x61,0x74,0x68,0x2E,0x6C,
0x65,0x61,0x66,0x28,0x66,0x75,0x6C,0x6C,0x5F,0x73,0x6F,0x75,0x72,0x63,0x65,
0x29,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,
0x65,0x6D,0x2E,0x73,0x65,0x74,0x49,0x64,0x65,0x6E,0x74,0x69,0x74,0x79,0x28,
0x6C,0x65,0x61,0x66,0x29,0x20,0x63,0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,
0x61,0x6D,0x65,0x20,0x3D,0x20,0x70,0x63,0x61,0x6C,0x6C,0x28,0x6C,0x6F,0x76,
0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x73,0x65,
0x74,0x53,0x6F,0x75,0x72,0x63,0x65,0x2C,0x20,0x66,0x75,0x6C,0x6C,0x5F,0x73,
0x6F,0x75,0x72,0x63,0x65,0x29,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x63,
0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,0x61,0x6D,0x65,0x20,0x61,0x6E,0x64,
0x20,0x6E,0x6F,0x74,0x20,0x28,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,
0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x65,0x78,0x69,0x73,0x74,0x73,0x28,0x22,
0x6D,0x61,0x69,0x6E,0x2E,0x6C,0x75,0x61,0x22,0x29,0x20,0x6F,0x72,0x20,0x6C,
0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,
0x65,0x78,0x69,0x73,0x74,0x73,0x28,0x22,0x6D,0x61,0x69,0x6E,0x2E,0x6C,0x75,
0x61,0x22,0x29,0x20,0x6F,0x72,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,
0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x65,0x78,0x69,0x73,0x74,0x73,0x28,
0x22,0x63,0x6F,0x6E,0x66,0x2E,0x6C,0x75,0x61,0x22,0x29,0x29,0x20,0x74,0x68,
0x65,0x6E,0x20,0x6E,0x6F,0x5F,0x67,0x61,0x6D,0x65,0x5F,0x63,0x6F,0x64,0x65,
0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,0x20,
0x6E,0x6F,0x74,0x20,0x63,0x61,0x6E,0x5F,0x68,0x61,0x73,0x5F,0x67,0x61,0x6D,
0x65,0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x6E,0x6F,0x67,
0x61,0x6D,0x65,0x28,0x29,0x20,0x65,0x6E,0x64,0x20,0x65,0x6E,0x64,0x20,0x66,
0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x69,0x6E,
0x69,0x74,0x28,0x29,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x63,0x20,0x3D,0x20,
0x7B,0x20,0x74,0x69,0x74,0x6C,0x65,0x20,0x3D,0x20,0x22,0x55,0x6E,0x74,0x69,
0x74,0x6C,0x65,0x64,0x22,0x2C,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x20,0x3D,
0x20,0x22,0x55,0x6E,0x6E,0x61,0x6D,0x65,0x64,0x22,0x2C,0x20,0x76,0x65,0x72,
0x73,0x69,0x6F,0x6E,0x20,0x3D,0x20,0x30,0x2C,0x20,0x73,0x63,0x72,0x65,0x65,
0x6E,0x20,0x3D,0x20,0x7B,0x20,0x77,0x69,0x64,0x74,0x68,0x20,0x3D,0x20,0x38,
0x30,0x30,0x2C,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x3D,0x20,0x36,0x30,
0x30,0x2C,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x3D,
0x20,0x66,0x61,0x6C,0x73,0x65,0x2C,0x20,0x76,0x73,0x79,0x6E,0x63,0x20,0x3D,
0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x66,0x73,0x61,0x61,0x20,0x3D,0x20,0x30,
0x2C,0x20,0x7D,0x2C,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x20,0x3D,0x20,
0x7B,0x20,0x65,0x76,0x65,0x6E,0x74,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,
0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x3D,0x20,0x74,0x72,0x75,
0x65,0x2C,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,
0x2C,0x20,0x74,0x69,0x6D,0x65,0x72,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,
0x20,0x6A,0x6F,0x79,0x73,0x74,0x69,0x63,0x6B,0x20,0x3D,0x20,0x74,0x72,0x75,
0x65,0x2C,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,
0x2C,0x20,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x20,0x3D,0x20,0x74,0x72,
0x75,0x65,0x2C,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x3D,0x20,0x74,0x72,0x75,
0x65,0x2C,0x20,0x70,0x68,0x79,0x73,0x69,0x63,0x73,0x20,0x3D,0x20,0x74,0x72,
0x75,0x65,0x2C,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x3D,0x20,0x74,0x72,0x75,
0x65,0x2C,0x20,0x66,0x6F,0x6E,0x74,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,
0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,
0x20,0x7D,0x2C,0x20,0x63,0x6F,0x6E,0x73,0x6F,0x6C,0x65,0x20,0x3D,0x20,0x66,
0x61,0x6C,0x73,0x65,0x2C,0x20,0x69,0x64,0x65,0x6E,0x74,0x69,0x74,0x79,0x20,
0x3D,0x20,0x66,0x61,0x6C,0x73,0x65,0x2C,0x20,0x72,0x65,0x6C,0x65,0x61,0x73,
0x65,0x20,0x3D,0x20,0x66,0x61,0x6C,0x73,0x65,0x2C,0x20,0x7D,0x20,0x69,0x66,
0x20,0x6E,0x6F,0x74,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x63,0x6F,0x6E,0x66,0x20,
0x61,0x6E,0x64,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,
0x73,0x74,0x65,0x6D,0x20,0x61,0x6E,0x64,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x66,
0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x2E,0x65,0x78,0x69,0x73,0x74,
0x73,0x28,0x22,0x63,0x6F,0x6E,0x66,0x2E,0x6C,0x75,0x61,0x22,0x29,0x20,0x74,
0x68,0x65,0x6E,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x22,0x63,0x6F,
0x6E,0x66,0x2E,0x6C,0x75,0x61,0x22,0x29,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,
0x20,0x6C,0x6F,0x76,0x65,0x2E,0x63,0x6F,0x6E,0x66,0x20,0x74,0x68,0x65,0x6E,
0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x6F,0x6B,0x2C,0x20,0x65,0x72,0x72,0x20,
0x3D,0x20,0x70,0x63,0x61,0x6C,0x6C,0x28,0x6C,0x6F,0x76,0x65,0x2E,0x63,0x6F,
0x6E,0x66,0x2C,0x20,0x63,0x29,0x20,0x69,0x66,0x20,0x6E,0x6F,0x74,0x20,0x6F,
0x6B,0x20,0x74,0x68,0x65,0x6E,0x20,0x70,0x72,0x69,0x6E,0x74,0x28,0x65,0x72,
0x72,0x29,0x20,0x65,0x6E,0x64,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x63,
0x2E,0x72,0x65,0x6C,0x65,0x61,0x73,0x65,0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,
0x6F,0x76,0x65,0x2E,0x5F,0x72,0x65,0x6C,0x65,0x61,0x73,0x65,0x20,0x3D,0x20,
0x7B,0x20,0x74,0x69,0x74,0x6C,0x65,0x20,0x3D,0x20,0x63,0x2E,0x74,0x69,0x74,
0x6C,0x65,0x20,0x7E,0x3D,0x20,0x22,0x55,0x6E,0x74,0x69,0x74,0x6C,0x65,0x64,
0x22,0x20,0x61,0x6E,0x64,0x20,0x63,0x2E,0x74,0x69,0x74,0x6C,0x65,0x20,0x6F,
0x72,0x20,0x6E,0x69,0x6C,0x2C,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x20,0x3D,
0x20,0x63,0x2E,0x61,0x75,0x74,0x68,0x6F,0x72,0x20,0x7E,0x3D,0x20,0x22,0x55,
0x6E,0x6E,0x61,0x6D,0x65,0x64,0x22,0x20,0x61,0x6E,0x64,0x20,0x63,0x2E,0x61,
0x75,0x74,0x68,0x6F,0x72,0x20,0x6F,0x72,0x20,0x6E,0x69,0x6C,0x20,0x7D,0x20,
0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x61,0x72,0x67,
0x2E,0x6F,0x70,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x63,0x6F,0x6E,0x73,0x6F,0x6C,
0x65,0x2E,0x73,0x65,0x74,0x20,0x74,0x68,0x65,0x6E,0x20,0x63,0x2E,0x63,0x6F,
0x6E,0x73,0x6F,0x6C,0x65,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x20,0x65,0x6E,
0x64,0x20,0x66,0x6F,0x72,0x20,0x6B,0x2C,0x76,0x20,0x69,0x6E,0x20,0x70,0x61,
0x69,0x72,0x73,0x28,0x63,0x2E,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x29,0x20,
0x64,0x6F,0x20,0x69,0x66,0x20,0x76,0x20,0x74,0x68,0x65,0x6E,0x20,0x72,0x65,
0x71,0x75,0x69,0x72,0x65,0x28,0x22,0x6C,0x6F,0x76,0x65,0x2E,0x22,0x20,0x2E,
0x2E,0x20,0x6B,0x29,0x20,0x65,0x6E,0x64,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,
0x65,0x78,0x69,0x73,0x74,0x73,0x28,0x22,0x63,0x6F,0x6E,0x66,0x2E,0x6C,0x75,
0x61,0x22,0x29,0x29,0x20,0x74,0x68,0x65,0x6E,0x20,0x6E,0x6F,0x5F,0x67,0x61,
0x6D,0x65,0x5F,0x63,0x6F,0x64,0x65,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x20,
0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x6E,0x6F,0x74,0x20,0x63,0x61,0x6E,0x5F,
0x68,0x61,0x73,0x5F,0x67,0x61,0x6D,0x65,0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,
0x6F,0x76,0x65,0x2E,0x6E,0x6F,0x67,0x61,0x6D,0x65,0x28,0x29,0x20,0x65,0x6E,
0x64,0x20,0x65,0x6E,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,
0x6C,0x6F,0x76,0x65,0x2E,0x69,0x6E,0x69,0x74,0x28,0x29,0x20,0x6C,0x6F,0x63,
0x61,0x6C,0x20,0x63,0x20,0x3D,0x20,0x7B,0x20,0x74,0x69,0x74,0x6C,0x65,0x20,
0x3D,0x20,0x22,0x55,0x6E,0x74,0x69,0x74,0x6C,0x65,0x64,0x22,0x2C,0x20,0x61,
0x75,0x74,0x68,0x6F,0x72,0x20,0x3D,0x20,0x22,0x55,0x6E,0x6E,0x61,0x6D,0x65,
0x64,0x22,0x2C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x20,0x3D,0x20,0x30,
0x2C,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x3D,0x20,0x7B,0x20,0x77,0x69,
0x64,0x74,0x68,0x20,0x3D,0x20,0x38,0x30,0x30,0x2C,0x20,0x68,0x65,0x69,0x67,
0x68,0x74,0x20,0x3D,0x20,0x36,0x30,0x30,0x2C,0x20,0x66,0x75,0x6C,0x6C,0x73,
0x63,0x72,0x65,0x65,0x6E,0x20,0x3D,0x20,0x66,0x61,0x6C,0x73,0x65,0x2C,0x20,
0x76,0x73,0x79,0x6E,0x63,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x66,
0x73,0x61,0x61,0x20,0x3D,0x20,0x30,0x2C,0x20,0x7D,0x2C,0x20,0x6D,0x6F,0x64,
0x75,0x6C,0x65,0x73,0x20,0x3D,0x20,0x7B,0x20,0x65,0x76,0x65,0x6E,0x74,0x20,
0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,
0x64,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x6D,0x6F,0x75,0x73,0x65,
0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x74,0x69,0x6D,0x65,0x72,0x20,
0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x6A,0x6F,0x79,0x73,0x74,0x69,0x63,
0x6B,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x69,0x6D,0x61,0x67,0x65,
0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x67,0x72,0x61,0x70,0x68,0x69,
0x63,0x73,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x61,0x75,0x64,0x69,
0x6F,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x70,0x68,0x79,0x73,0x69,
0x63,0x73,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x73,0x6F,0x75,0x6E,
0x64,0x20,0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x66,0x6F,0x6E,0x74,0x20,
0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,
0x3D,0x20,0x74,0x72,0x75,0x65,0x2C,0x20,0x7D,0x2C,0x20,0x63,0x6F,0x6E,0x73,
0x6F,0x6C,0x65,0x20,0x3D,0x20,0x66,0x61,0x6C,0x73,0x65,0x2C,0x20,0x69,0x64,
0x65,0x6E,0x74,0x69,0x74,0x79,0x20,0x3D,0x20,0x66,0x61,0x6C,0x73,0x65,0x2C,
0x20,0x72,0x65,0x6C,0x65,0x61,0x73,0x65,0x20,0x3D,0x20,0x66,0x61,0x6C,0x73,
0x65,0x2C,0x20,0x7D,0x20,0x69,0x66,0x20,0x6E,0x6F,0x74,0x20,0x6C,0x6F,0x76,
0x65,0x2E,0x63,0x6F,0x6E,0x66,0x20,0x61,0x6E,0x64,0x20,0x6C,0x6F,0x76,0x65,
0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x20,0x61,0x6E,0x64,
0x20,0x6C,0x6F,0x76,0x65,0x2E,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,
0x6D,0x2E,0x65,0x78,0x69,0x73,0x74,0x73,0x28,0x22,0x63,0x6F,0x6E,0x66,0x2E,
0x6C,0x75,0x61,0x22,0x29,0x20,0x74,0x68,0x65,0x6E,0x20,0x72,0x65,0x71,0x75,
0x69,0x72,0x65,0x28,0x22,0x63,0x6F,0x6E,0x66,0x2E,0x6C,0x75,0x61,0x22,0x29,
0x20,0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x63,0x6F,
0x6E,0x66,0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,0x6F,
0x6B,0x2C,0x20,0x65,0x72,0x72,0x20,0x3D,0x20,0x70,0x63,0x61,0x6C,0x6C,0x28,
0x6C,0x6F,0x76,0x65,0x2E,0x63,0x6F,0x6E,0x66,0x2C,0x20,0x63,0x29,0x20,0x69,
0x66,0x20,0x6E,0x6F,0x74,0x20,0x6F,0x6B,0x20,0x74,0x68,0x65,0x6E,0x20,0x70,
0x72,0x69,0x6E,0x74,0x28,0x65,0x72,0x72,0x29,0x20,0x65,0x6E,0x64,0x20,0x65,
0x6E,0x64,0x20,0x69,0x66,0x20,0x63,0x2E,0x72,0x65,0x6C,0x65,0x61,0x73,0x65,
0x20,0x74,0x68,0x65,0x6E,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x5F,0x72,0x65,0x6C,
0x65,0x61,0x73,0x65,0x20,0x3D,0x20,0x7B,0x20,0x74,0x69,0x74,0x6C,0x65,0x20,
0x3D,0x20,0x63,0x2E,0x74,0x69,0x74,0x6C,0x65,0x20,0x7E,0x3D,0x20,0x22,0x55,
0x6E,0x74,0x69,0x74,0x6C,0x65,0x64,0x22,0x20,0x61,0x6E,0x64,0x20,0x63,0x2E,
0x74,0x69,0x74,0x6C,0x65,0x20,0x6F,0x72,0x20,0x6E,0x69,0x6C,0x2C,0x20,0x61,
0x75,0x74,0x68,0x6F,0x72,0x20,0x3D,0x20,0x63,0x2E,0x61,0x75,0x74,0x68,0x6F,
0x72,0x20,0x7E,0x3D,0x20,0x22,0x55,0x6E,0x6E,0x61,0x6D,0x65,0x64,0x22,0x20,
0x61,0x6E,0x64,0x20,0x63,0x2E,0x61,0x75,0x74,0x68,0x6F,0x72,0x20,0x6F,0x72,
0x20,0x6E,0x69,0x6C,0x20,0x7D,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,0x20,0x6C,
0x6F,0x76,0x65,0x2E,0x61,0x72,0x67,0x2E,0x6F,0x70,0x74,0x69,0x6F,0x6E,0x73,
0x2E,0x63,0x6F,0x6E,0x73,0x6F,0x6C,0x65,0x2E,0x73,0x65,0x74,0x20,0x74,0x68,
0x65,0x6E,0x20,0x63,0x2E,0x63,0x6F,0x6E,0x73,0x6F,0x6C,0x65,0x20,0x3D,0x20,
0x74,0x72,0x75,0x65,0x20,0x65,0x6E,0x64,0x20,0x6C,0x6F,0x63,0x61,0x6C,0x20,
0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x20,
0x3D,0x20,0x7B,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x3D,0x20,0x66,0x61,0x6C,
0x73,0x65,0x2C,0x20,0x65,0x76,0x65,0x6E,0x74,0x20,0x3D,0x20,0x22,0x73,0x64,
0x6C,0x22,0x2C,0x20,0x66,0x69,0x6C,0x65,0x73,0x79,0x73,0x74,0x65,0x6D,0x20,
0x3D,0x20,0x22,0x70,0x68,0x79,0x73,0x66,0x73,0x22,0x2C,0x20,0x66,0x6F,0x6E,
0x74,0x20,0x3D,0x20,0x22,0x66,0x72,0x65,0x65,0x74,0x79,0x70,0x65,0x22,0x2C,
0x20,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x20,0x3D,0x20,0x22,0x6F,0x70,
0x65,0x6E,0x67,0x6C,0x22,0x2C,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x3D,0x20,
0x66,0x61,0x6C,0x73,0x65,0x2C,0x20,0x6A,0x6F,0x79,0x73,0x74,0x69,0x63,0x6B,
0x20,0x3D,0x20,0x22,0x73,0x64,0x6C,0x22,0x2C,0x20,0x6B,0x65,0x79,0x62,0x6F,
0x61,0x72,0x64,0x20,0x3D,0x20,0x22,0x73,0x64,0x6C,0x22,0x2C,0x20,0x6D,0x6F,
0x75,0x73,0x65,0x20,0x3D,0x20,0x22,0x73,0x64,0x6C,0x22,0x2C,0x20,0x70,0x68,
0x79,0x73,0x69,0x63,0x73,0x20,0x3D,0x20,0x22,0x62,0x6F,0x78,0x32,0x64,0x22,
0x2C,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x3D,0x20,0x66,0x61,0x6C,0x73,0x65,
0x2C,0x20,0x74,0x69,0x6D,0x65,0x72,0x20,0x3D,0x20,0x22,0x73,0x64,0x6C,0x22,
0x2C,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x22,0x73,0x64,0x6C,
0x22,0x20,0x7D,0x20,0x66,0x6F,0x72,0x20,0x6B,0x2C,0x76,0x20,0x69,0x6E,0x20,
0x70,0x61,0x69,0x72,0x73,0x28,0x63,0x2E,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,
0x29,0x20,0x64,0x6F,0x20,0x69,0x66,0x20,0x76,0x20,0x74,0x68,0x65,0x6E,0x20,
0x69,0x66,0x20,0x74,0x79,0x70,0x65,0x28,0x76,0x29,0x20,0x7E,0x3D,0x20,0x22,
0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x20,0x74,0x68,0x65,0x6E,0x20,0x76,0x20,
0x3D,0x20,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x6D,0x6F,0x64,0x75,0x6C,0x65,
0x73,0x5B,0x6B,0x5D,0x20,0x65,0x6E,0x64,0x20,0x72,0x65,0x71,0x75,0x69,0x72,
0x65,0x28,0x28,0x76,0x20,0x61,0x6E,0x64,0x20,0x22,0x6C,0x6F,0x76,0x65,0x2E,
0x25,0x73,0x2E,0x25,0x73,0x22,0x20,0x6F,0x72,0x20,0x22,0x6C,0x6F,0x76,0x65,
0x2E,0x25,0x73,0x22,0x29,0x3A,0x66,0x6F,0x72,0x6D,0x61,0x74,0x28,0x6B,0x2C,
0x20,0x76,0x29,0x29,0x20,0x65,0x6E,0x64,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,
0x20,0x6C,0x6F,0x76,0x65,0x2E,0x65,0x76,0x65,0x6E,0x74,0x20,0x74,0x68,0x65,
0x6E,0x20,0x6C,0x6F,0x76,0x65,0x2E,0x63,0x72,0x65,0x61,0x74,0x65,0x68,0x61,
0x6E,0x64,0x6C,0x65,0x72,0x73,0x28,0x29,0x20,0x65,0x6E,0x64,0x20,0x69,0x66,