From fadbc9808c682c1c9cc7af89a35d2e4fa3faa6dc Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Mon, 30 Mar 2015 14:36:33 +0200 Subject: [PATCH] Updated to latest 3rdparty (nw) --- 3rdparty/bgfx/3rdparty/sdf/sdf.h | 2 +- .../bgfx/examples/02-metaballs/metaballs.cpp | 8 +- .../examples/05-instancing/instancing.cpp | 6 +- 3rdparty/bgfx/examples/06-bump/bump.cpp | 8 +- .../bgfx/examples/07-callback/callback.cpp | 6 +- 3rdparty/bgfx/examples/08-update/update.cpp | 42 +- 3rdparty/bgfx/examples/09-hdr/hdr.cpp | 8 +- 3rdparty/bgfx/examples/13-stencil/stencil.cpp | 12 +- .../14-shadowvolumes/shadowvolumes.cpp | 16 +- .../shadowmaps_simple.cpp | 4 +- .../examples/16-shadowmaps/shadowmaps.cpp | 8 +- 3rdparty/bgfx/examples/20-nanovg/nanovg.cpp | 20 +- .../bgfx/examples/21-deferred/deferred.cpp | 8 +- .../bgfx/examples/23-vectordisplay/main.cpp | 4 +- .../23-vectordisplay/vectordisplay.cpp | 4 +- 3rdparty/bgfx/examples/25-c99/helloworld.c | 15 +- 3rdparty/bgfx/examples/common/bounds.cpp | 6 +- 3rdparty/bgfx/examples/common/entry/entry.cpp | 3 + 3rdparty/bgfx/examples/common/entry/entry_p.h | 8 + 3rdparty/bgfx/include/bgfx.c99.h | 16 +- 3rdparty/bgfx/include/bgfx.h | 23 +- 3rdparty/bgfx/include/bgfxdefines.h | 6 + 3rdparty/bgfx/scripts/genie.lua | 43 +- 3rdparty/bgfx/src/bgfx.cpp | 14 +- 3rdparty/bgfx/src/bgfx_p.h | 18 +- 3rdparty/bgfx/src/ovr.cpp | 4 +- 3rdparty/bgfx/src/ovr.h | 27 +- 3rdparty/bgfx/src/renderer_d3d11.cpp | 34 +- 3rdparty/bgfx/src/renderer_d3d9.cpp | 63 +- 3rdparty/bgfx/src/renderer_gl.cpp | 203 +- 3rdparty/bgfx/src/renderer_gl.h | 6 +- 3rdparty/bx/include/bx/platform.h | 4 +- 3rdparty/bx/include/bx/radixsort.h | 32 +- 3rdparty/bx/scripts/toolchain.lua | 14 +- 3rdparty/bx/tools/bin/darwin/genie | Bin 389568 -> 406448 bytes 3rdparty/bx/tools/bin/linux/genie | Bin 372064 -> 384448 bytes 3rdparty/bx/tools/bin/windows/genie.exe | Bin 355328 -> 389632 bytes 3rdparty/genie/README.md | 6 +- 3rdparty/genie/build/gmake.darwin/genie.make | 546 +-- 3rdparty/genie/build/gmake.linux/genie.make | 354 +- 3rdparty/genie/build/gmake.windows/genie.make | 354 +- 3rdparty/genie/scripts/genie.lua | 10 +- 3rdparty/genie/src/actions/make/make_cpp.lua | 43 +- 3rdparty/genie/src/base/api.lua | 9 +- 3rdparty/genie/src/base/bake.lua | 14 +- .../genie/src/host/lua-5.2.3/src/Makefile | 187 - 3rdparty/genie/src/host/lua-5.2.3/src/ldump.c | 173 - 3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c | 161 - .../genie/src/host/lua-5.2.3/src/llimits.h | 309 -- .../genie/src/host/lua-5.2.3/src/lmathlib.c | 279 -- .../genie/src/host/lua-5.2.3/src/lobject.c | 287 -- .../genie/src/host/lua-5.2.3/src/lstring.c | 185 - .../genie/src/host/lua-5.2.3/src/ltablib.c | 283 -- 3rdparty/genie/src/host/lua-5.2.3/src/ltm.c | 77 - 3rdparty/genie/src/host/lua-5.2.3/src/lua.c | 497 --- .../genie/src/host/lua-5.2.3/src/luaconf.h | 551 --- .../genie/src/host/lua-5.2.3/src/lundump.c | 258 -- .../genie/src/host/lua-5.2.3/src/lundump.h | 28 - 3rdparty/genie/src/host/lua-5.2.3/src/lvm.c | 867 ----- 3rdparty/genie/src/host/lua-5.2.3/src/lvm.h | 44 - .../host/{lua-5.2.3 => lua-5.3.0}/Makefile | 6 +- .../src/host/{lua-5.2.3 => lua-5.3.0}/README | 2 +- .../doc/contents.html | 210 +- .../{lua-5.2.3 => lua-5.3.0}/doc/logo.gif | Bin .../host/{lua-5.2.3 => lua-5.3.0}/doc/lua.1 | 13 +- .../host/{lua-5.2.3 => lua-5.3.0}/doc/lua.css | 13 +- .../host/{lua-5.2.3 => lua-5.3.0}/doc/luac.1 | 0 .../{lua-5.2.3 => lua-5.3.0}/doc/manual.css | 0 .../{lua-5.2.3 => lua-5.3.0}/doc/manual.html | 3190 +++++++++-------- .../doc/osi-certified-72x60.png | Bin .../{lua-5.2.3 => lua-5.3.0}/doc/readme.html | 150 +- .../genie/src/host/lua-5.3.0/src/Makefile | 197 + .../host/{lua-5.2.3 => lua-5.3.0}/src/lapi.c | 512 ++- .../host/{lua-5.2.3 => lua-5.3.0}/src/lapi.h | 6 +- .../{lua-5.2.3 => lua-5.3.0}/src/lauxlib.c | 263 +- .../{lua-5.2.3 => lua-5.3.0}/src/lauxlib.h | 94 +- .../{lua-5.2.3 => lua-5.3.0}/src/lbaselib.c | 246 +- .../{lua-5.2.3 => lua-5.3.0}/src/lbitlib.c | 78 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/lcode.c | 229 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/lcode.h | 12 +- .../{lua-5.2.3 => lua-5.3.0}/src/lcorolib.c | 33 +- .../{lua-5.2.3 => lua-5.3.0}/src/lctype.c | 5 +- .../{lua-5.2.3 => lua-5.3.0}/src/lctype.h | 2 +- .../{lua-5.2.3 => lua-5.3.0}/src/ldblib.c | 213 +- .../{lua-5.2.3 => lua-5.3.0}/src/ldebug.c | 162 +- .../{lua-5.2.3 => lua-5.3.0}/src/ldebug.h | 14 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/ldo.c | 192 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/ldo.h | 4 +- 3rdparty/genie/src/host/lua-5.3.0/src/ldump.c | 214 ++ 3rdparty/genie/src/host/lua-5.3.0/src/lfunc.c | 151 + .../host/{lua-5.2.3 => lua-5.3.0}/src/lfunc.h | 31 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/lgc.c | 873 +++-- .../host/{lua-5.2.3 => lua-5.3.0}/src/lgc.h | 93 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/linit.c | 41 +- .../{lua-5.2.3 => lua-5.3.0}/src/liolib.c | 275 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/llex.c | 282 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/llex.h | 16 +- .../genie/src/host/lua-5.3.0/src/llimits.h | 242 ++ .../genie/src/host/lua-5.3.0/src/lmathlib.c | 404 +++ .../host/{lua-5.2.3 => lua-5.3.0}/src/lmem.c | 26 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/lmem.h | 30 +- .../{lua-5.2.3 => lua-5.3.0}/src/loadlib.c | 259 +- .../genie/src/host/lua-5.3.0/src/lobject.c | 470 +++ .../{lua-5.2.3 => lua-5.3.0}/src/lobject.h | 355 +- .../{lua-5.2.3 => lua-5.3.0}/src/lopcodes.c | 25 +- .../{lua-5.2.3 => lua-5.3.0}/src/lopcodes.h | 39 +- .../{lua-5.2.3 => lua-5.3.0}/src/loslib.c | 91 +- .../{lua-5.2.3 => lua-5.3.0}/src/lparser.c | 179 +- .../{lua-5.2.3 => lua-5.3.0}/src/lparser.h | 27 +- .../genie/src/host/lua-5.3.0/src/lprefix.h | 45 + .../{lua-5.2.3 => lua-5.3.0}/src/lstate.c | 97 +- .../{lua-5.2.3 => lua-5.3.0}/src/lstate.h | 147 +- .../genie/src/host/lua-5.3.0/src/lstring.c | 182 + .../{lua-5.2.3 => lua-5.3.0}/src/lstring.h | 18 +- .../{lua-5.2.3 => lua-5.3.0}/src/lstrlib.c | 637 +++- .../{lua-5.2.3 => lua-5.3.0}/src/ltable.c | 344 +- .../{lua-5.2.3 => lua-5.3.0}/src/ltable.h | 20 +- .../genie/src/host/lua-5.3.0/src/ltablib.c | 357 ++ 3rdparty/genie/src/host/lua-5.3.0/src/ltm.c | 143 + .../host/{lua-5.2.3 => lua-5.3.0}/src/ltm.h | 28 +- 3rdparty/genie/src/host/lua-5.3.0/src/lua.c | 611 ++++ .../host/{lua-5.2.3 => lua-5.3.0}/src/lua.h | 169 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/lua.hpp | 0 .../host/{lua-5.2.3 => lua-5.3.0}/src/luac.c | 49 +- .../genie/src/host/lua-5.3.0/src/luaconf.h | 735 ++++ .../{lua-5.2.3 => lua-5.3.0}/src/lualib.h | 5 +- .../genie/src/host/lua-5.3.0/src/lundump.c | 277 ++ .../genie/src/host/lua-5.3.0/src/lundump.h | 33 + .../genie/src/host/lua-5.3.0/src/lutf8lib.c | 255 ++ 3rdparty/genie/src/host/lua-5.3.0/src/lvm.c | 1182 ++++++ 3rdparty/genie/src/host/lua-5.3.0/src/lvm.h | 58 + .../host/{lua-5.2.3 => lua-5.3.0}/src/lzio.c | 10 +- .../host/{lua-5.2.3 => lua-5.3.0}/src/lzio.h | 10 +- 3rdparty/genie/src/host/os_ticks.c | 41 + 3rdparty/genie/src/host/premake.c | 1 + 3rdparty/genie/src/host/premake.h | 2 + 3rdparty/genie/src/host/scripts.c | 53 +- 3rdparty/genie/src/host/version.h | 4 +- 138 files changed, 12422 insertions(+), 9277 deletions(-) delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/Makefile delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/ldump.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/llimits.h delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lmathlib.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lobject.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lstring.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/ltablib.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/ltm.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lua.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/luaconf.h delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lundump.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lundump.h delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lvm.c delete mode 100644 3rdparty/genie/src/host/lua-5.2.3/src/lvm.h rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/Makefile (97%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/README (70%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/contents.html (74%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/logo.gif (100%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/lua.1 (89%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/lua.css (88%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/luac.1 (100%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/manual.css (100%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/manual.html (79%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/osi-certified-72x60.png (100%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/doc/readme.html (68%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/Makefile rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lapi.c (69%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lapi.h (62%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lauxlib.c (78%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lauxlib.h (71%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lbaselib.c (61%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lbitlib.c (66%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lcode.c (78%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lcode.h (90%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lcorolib.c (88%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lctype.c (96%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lctype.h (96%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ldblib.c (60%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ldebug.c (78%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ldebug.h (63%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ldo.c (77%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ldo.h (92%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/ldump.c create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lfunc.c rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lfunc.h (50%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lgc.c (52%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lgc.h (50%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/linit.c (65%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/liolib.c (70%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/llex.c (63%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/llex.h (84%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/llimits.h create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lmathlib.c rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lmem.c (82%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lmem.h (54%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/loadlib.c (74%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lobject.c rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lobject.h (58%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lopcodes.c (85%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lopcodes.h (88%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/loslib.c (81%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lparser.c (90%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lparser.h (78%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lprefix.h rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lstate.c (77%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lstate.h (56%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lstring.c rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lstring.h (59%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lstrlib.c (57%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ltable.c (56%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ltable.h (61%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/ltablib.c create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/ltm.c rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/ltm.h (54%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lua.c rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lua.h (76%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lua.hpp (100%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/luac.c (92%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/luaconf.h rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lualib.h (88%) create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lundump.c create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lundump.h create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lutf8lib.c create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lvm.c create mode 100644 3rdparty/genie/src/host/lua-5.3.0/src/lvm.h rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lzio.c (95%) rename 3rdparty/genie/src/host/{lua-5.2.3 => lua-5.3.0}/src/lzio.h (80%) create mode 100644 3rdparty/genie/src/host/os_ticks.c diff --git a/3rdparty/bgfx/3rdparty/sdf/sdf.h b/3rdparty/bgfx/3rdparty/sdf/sdf.h index e6ec857f88c..13a13a31255 100644 --- a/3rdparty/bgfx/3rdparty/sdf/sdf.h +++ b/3rdparty/bgfx/3rdparty/sdf/sdf.h @@ -92,7 +92,7 @@ static float sdf__edgedf(float gx, float gy, float a) } else if (a < (1.0-a1)) { // a1 <= a <= 1-a1 df = (0.5f-a)*gx; } else { // 1-a1 < a <= 1 - df = -0.5f*(gx + gy) + sqrt(2.0f*gx*gy*(1.0f-a)); + df = -0.5f*(gx + gy) + sqrtf(2.0f*gx*gy*(1.0f-a)); } } return df; diff --git a/3rdparty/bgfx/examples/02-metaballs/metaballs.cpp b/3rdparty/bgfx/examples/02-metaballs/metaballs.cpp index 3689b14a39c..7578433b317 100644 --- a/3rdparty/bgfx/examples/02-metaballs/metaballs.cpp +++ b/3rdparty/bgfx/examples/02-metaballs/metaballs.cpp @@ -592,10 +592,10 @@ int _main_(int /*_argc*/, char** /*_argv*/) float sphere[numSpheres][4]; for (uint32_t ii = 0; ii < numSpheres; ++ii) { - sphere[ii][0] = sin(time*(ii*0.21f)+ii*0.37f) * (DIMS * 0.5f - 8.0f); - sphere[ii][1] = sin(time*(ii*0.37f)+ii*0.67f) * (DIMS * 0.5f - 8.0f); - sphere[ii][2] = cos(time*(ii*0.11f)+ii*0.13f) * (DIMS * 0.5f - 8.0f); - sphere[ii][3] = 1.0f/(2.0f + (sin(time*(ii*0.13f) )*0.5f+0.5f)*2.0f); + sphere[ii][0] = sinf(time*(ii*0.21f)+ii*0.37f) * (DIMS * 0.5f - 8.0f); + sphere[ii][1] = sinf(time*(ii*0.37f)+ii*0.67f) * (DIMS * 0.5f - 8.0f); + sphere[ii][2] = cosf(time*(ii*0.11f)+ii*0.13f) * (DIMS * 0.5f - 8.0f); + sphere[ii][3] = 1.0f/(2.0f + (sinf(time*(ii*0.13f) )*0.5f+0.5f)*2.0f); } profUpdate = bx::getHPCounter(); diff --git a/3rdparty/bgfx/examples/05-instancing/instancing.cpp b/3rdparty/bgfx/examples/05-instancing/instancing.cpp index e17f7fb8c16..40b180ea857 100644 --- a/3rdparty/bgfx/examples/05-instancing/instancing.cpp +++ b/3rdparty/bgfx/examples/05-instancing/instancing.cpp @@ -182,9 +182,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) mtx[14] = 0.0f; float* color = (float*)&data[64]; - color[0] = sin(time+float(xx)/11.0f)*0.5f+0.5f; - color[1] = cos(time+float(yy)/11.0f)*0.5f+0.5f; - color[2] = sin(time*3.0f)*0.5f+0.5f; + color[0] = sinf(time+float(xx)/11.0f)*0.5f+0.5f; + color[1] = cosf(time+float(yy)/11.0f)*0.5f+0.5f; + color[2] = sinf(time*3.0f)*0.5f+0.5f; color[3] = 1.0f; data += instanceStride; diff --git a/3rdparty/bgfx/examples/06-bump/bump.cpp b/3rdparty/bgfx/examples/06-bump/bump.cpp index 352430f78f6..e5c4a521876 100644 --- a/3rdparty/bgfx/examples/06-bump/bump.cpp +++ b/3rdparty/bgfx/examples/06-bump/bump.cpp @@ -192,7 +192,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) float at[3] = { 0.0f, 0.0f, 0.0f }; float eye[3] = { 0.0f, 0.0f, -7.0f }; - + // Set view and projection matrix for view 0. const bgfx::HMD* hmd = bgfx::getHMD(); if (NULL != hmd) @@ -227,8 +227,8 @@ int _main_(int /*_argc*/, char** /*_argv*/) float lightPosRadius[4][4]; for (uint32_t ii = 0; ii < numLights; ++ii) { - lightPosRadius[ii][0] = sin( (time*(0.1f + ii*0.17f) + ii*bx::piHalf*1.37f ) )*3.0f; - lightPosRadius[ii][1] = cos( (time*(0.2f + ii*0.29f) + ii*bx::piHalf*1.49f ) )*3.0f; + lightPosRadius[ii][0] = sinf( (time*(0.1f + ii*0.17f) + ii*bx::piHalf*1.37f ) )*3.0f; + lightPosRadius[ii][1] = cosf( (time*(0.2f + ii*0.29f) + ii*bx::piHalf*1.49f ) )*3.0f; lightPosRadius[ii][2] = -2.5f; lightPosRadius[ii][3] = 3.0f; } @@ -338,7 +338,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) } } - // Advance to next frame. Rendering thread will be kicked to + // Advance to next frame. Rendering thread will be kicked to // process submitted rendering primitives. bgfx::frame(); } diff --git a/3rdparty/bgfx/examples/07-callback/callback.cpp b/3rdparty/bgfx/examples/07-callback/callback.cpp index 3e4480912d0..3caec753fed 100644 --- a/3rdparty/bgfx/examples/07-callback/callback.cpp +++ b/3rdparty/bgfx/examples/07-callback/callback.cpp @@ -372,6 +372,8 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::init( renderers[bx::getHPCounter() % numRenderers] /* randomize renderer */ + , BGFX_PCI_ID_NONE + , 0 , &callback // custom callback handler , &allocator // custom allocator ); @@ -442,7 +444,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) float at[3] = { 0.0f, 0.0f, 0.0f }; float eye[3] = { 0.0f, 0.0f, -35.0f }; - + float view[16]; float proj[16]; bx::mtxLookAt(view, eye, at); @@ -488,7 +490,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::saveScreenShot("temp/frame150"); } - // Advance to next frame. Rendering thread will be kicked to + // Advance to next frame. Rendering thread will be kicked to // process submitted rendering primitives. bgfx::frame(); } diff --git a/3rdparty/bgfx/examples/08-update/update.cpp b/3rdparty/bgfx/examples/08-update/update.cpp index d87371aeb92..4c021e23a35 100644 --- a/3rdparty/bgfx/examples/08-update/update.cpp +++ b/3rdparty/bgfx/examples/08-update/update.cpp @@ -167,12 +167,29 @@ int _main_(int /*_argc*/, char** /*_argv*/) } } - bgfx::TextureHandle textures3d[] = + const bgfx::Caps* caps = bgfx::getCaps(); + const bool texture3DSupported = !!(caps->supported & BGFX_CAPS_TEXTURE_3D); + + uint32_t numTextures3d = 0; + bgfx::TextureHandle textures3d[3] = {}; + + if (texture3DSupported) { - bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R8, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem8), - bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R16F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem16f), - bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R32F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem32f), - }; + if (0 != (BGFX_CAPS_FORMAT_TEXTURE_COLOR & caps->formats[bgfx::TextureFormat::R8]) ) + { + textures3d[numTextures3d++] = bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R8, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem8); + } + + if (0 != (BGFX_CAPS_FORMAT_TEXTURE_COLOR & caps->formats[bgfx::TextureFormat::R16F]) ) + { + textures3d[numTextures3d++] = bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R16F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem16f); + } + + if (0 != (BGFX_CAPS_FORMAT_TEXTURE_COLOR & caps->formats[bgfx::TextureFormat::R32F]) ) + { + textures3d[numTextures3d++] = bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R32F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem32f); + } + } // Create static vertex buffer. bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(bgfx::makeRef(s_cubeVertices, sizeof(s_cubeVertices) ), PosTexcoordVertex::ms_decl); @@ -188,7 +205,11 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::ProgramHandle program = loadProgram("vs_update", "fs_update"); bgfx::ProgramHandle programCmp = loadProgram("vs_update", "fs_update_cmp"); - bgfx::ProgramHandle program3d = loadProgram("vs_update", "fs_update_3d"); + bgfx::ProgramHandle program3d = BGFX_INVALID_HANDLE; + if (texture3DSupported) + { + program3d = loadProgram("vs_update", "fs_update_3d"); + } const uint32_t textureSide = 2048; @@ -399,7 +420,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::submit(1); } - for (uint32_t ii = 0; ii < BX_COUNTOF(textures3d); ++ii) + for (uint32_t ii = 0; ii < numTextures3d; ++ii) { bx::mtxTranslate(mtx, xpos + ii*2.1f, -4.0f, 0.0f); @@ -465,7 +486,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::destroyTexture(textures[ii]); } - for (uint32_t ii = 0; ii < BX_COUNTOF(textures3d); ++ii) + for (uint32_t ii = 0; ii < numTextures3d; ++ii) { bgfx::destroyTexture(textures3d[ii]); } @@ -474,7 +495,10 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::destroyTexture(textureCube); bgfx::destroyIndexBuffer(ibh); bgfx::destroyVertexBuffer(vbh); - bgfx::destroyProgram(program3d); + if (bgfx::isValid(program3d) ) + { + bgfx::destroyProgram(program3d); + } bgfx::destroyProgram(programCmp); bgfx::destroyProgram(program); bgfx::destroyUniform(u_time); diff --git a/3rdparty/bgfx/examples/09-hdr/hdr.cpp b/3rdparty/bgfx/examples/09-hdr/hdr.cpp index 1e925f378ef..c8dbfea1539 100644 --- a/3rdparty/bgfx/examples/09-hdr/hdr.cpp +++ b/3rdparty/bgfx/examples/09-hdr/hdr.cpp @@ -174,7 +174,12 @@ int _main_(int /*_argc*/, char** /*_argv*/) bgfx::setViewName(8, "Blur vertical"); bgfx::setViewName(9, "Blur horizontal + tonemap"); - bgfx::TextureHandle uffizi = loadTexture("uffizi.dds", BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP); + bgfx::TextureHandle uffizi = loadTexture("uffizi.dds" + , 0 + | BGFX_TEXTURE_U_CLAMP + | BGFX_TEXTURE_V_CLAMP + | BGFX_TEXTURE_W_CLAMP + ); bgfx::ProgramHandle skyProgram = loadProgram("vs_hdr_skybox", "fs_hdr_skybox"); bgfx::ProgramHandle lumProgram = loadProgram("vs_hdr_lum", "fs_hdr_lum"); @@ -371,6 +376,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) // Render skybox into view 0. bgfx::setTexture(0, u_texCube, uffizi); + bgfx::setProgram(skyProgram); bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE); screenSpaceQuad( (float)width, (float)height, true); diff --git a/3rdparty/bgfx/examples/13-stencil/stencil.cpp b/3rdparty/bgfx/examples/13-stencil/stencil.cpp index a9f62402e54..f79b0e569e5 100644 --- a/3rdparty/bgfx/examples/13-stencil/stencil.cpp +++ b/3rdparty/bgfx/examples/13-stencil/stencil.cpp @@ -1040,9 +1040,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) const float radius = (scene == StencilReflectionScene) ? 15.0f : 25.0f; for (uint8_t ii = 0; ii < numLights; ++ii) { - lightPosRadius[ii][0] = sin( (lightTimeAccumulator*1.1f + ii*0.03f + ii*bx::piHalf*1.07f ) )*20.0f; - lightPosRadius[ii][1] = 8.0f + (1.0f - cos( (lightTimeAccumulator*1.5f + ii*0.29f + bx::piHalf*1.49f ) ))*4.0f; - lightPosRadius[ii][2] = cos( (lightTimeAccumulator*1.3f + ii*0.13f + ii*bx::piHalf*1.79f ) )*20.0f; + lightPosRadius[ii][0] = sinf( (lightTimeAccumulator*1.1f + ii*0.03f + ii*bx::piHalf*1.07f ) )*20.0f; + lightPosRadius[ii][1] = 8.0f + (1.0f - cosf( (lightTimeAccumulator*1.5f + ii*0.29f + bx::piHalf*1.49f ) ))*4.0f; + lightPosRadius[ii][2] = cosf( (lightTimeAccumulator*1.3f + ii*0.13f + ii*bx::piHalf*1.79f ) )*20.0f; lightPosRadius[ii][3] = radius; } memcpy(s_uniforms.m_lightPosRadius, lightPosRadius, numLights * 4*sizeof(float)); @@ -1112,9 +1112,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) , 0.0f , 0.0f , 0.0f - , sin(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f + , sinf(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f , 4.0f - , cos(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f + , cosf(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f ); } @@ -1188,7 +1188,6 @@ int _main_(int /*_argc*/, char** /*_argv*/) // Set lights back. memcpy(s_uniforms.m_lightPosRadius, lightPosRadius, numLights * 4*sizeof(float)); - // Third pass - Blend plane. // Floor. @@ -1217,6 +1216,7 @@ int _main_(int /*_argc*/, char** /*_argv*/) , s_renderStates[RenderState::StencilReflection_DrawScene] ); } + } break; diff --git a/3rdparty/bgfx/examples/14-shadowvolumes/shadowvolumes.cpp b/3rdparty/bgfx/examples/14-shadowvolumes/shadowvolumes.cpp index e6a79456de3..3b1bc71daeb 100644 --- a/3rdparty/bgfx/examples/14-shadowvolumes/shadowvolumes.cpp +++ b/3rdparty/bgfx/examples/14-shadowvolumes/shadowvolumes.cpp @@ -2276,9 +2276,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) { for (uint8_t ii = 0; ii < settings_numLights; ++ii) { - lightPosRadius[ii][0] = cos(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f; + lightPosRadius[ii][0] = cosf(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f; lightPosRadius[ii][1] = 20.0f; - lightPosRadius[ii][2] = sin(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f; + lightPosRadius[ii][2] = sinf(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f; lightPosRadius[ii][3] = 20.0f; } } @@ -2286,9 +2286,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) { for (uint8_t ii = 0; ii < settings_numLights; ++ii) { - lightPosRadius[ii][0] = cos(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f; + lightPosRadius[ii][0] = cosf(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f; lightPosRadius[ii][1] = 20.0f; - lightPosRadius[ii][2] = sin(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f; + lightPosRadius[ii][2] = sinf(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f; lightPosRadius[ii][3] = 20.0f; } } @@ -2362,9 +2362,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) inst.m_rotation[0] = 0.0f; inst.m_rotation[1] = 0.0f; inst.m_rotation[2] = 0.0f; - inst.m_pos[0] = sin(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; + inst.m_pos[0] = sinf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; inst.m_pos[1] = 6.0f; - inst.m_pos[2] = cos(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; + inst.m_pos[2] = cosf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; inst.m_model = &cubeModel; } @@ -2379,9 +2379,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) inst.m_rotation[0] = 0.0f; inst.m_rotation[1] = 0.0f; inst.m_rotation[2] = 0.0f; - inst.m_pos[0] = sin(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; + inst.m_pos[0] = sinf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; inst.m_pos[1] = 22.0f; - inst.m_pos[2] = cos(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; + inst.m_pos[2] = cosf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f; inst.m_model = &cubeModel; } diff --git a/3rdparty/bgfx/examples/15-shadowmaps-simple/shadowmaps_simple.cpp b/3rdparty/bgfx/examples/15-shadowmaps-simple/shadowmaps_simple.cpp index 72b9e0dda56..3e4e7940a4a 100644 --- a/3rdparty/bgfx/examples/15-shadowmaps-simple/shadowmaps_simple.cpp +++ b/3rdparty/bgfx/examples/15-shadowmaps-simple/shadowmaps_simple.cpp @@ -221,9 +221,9 @@ int _main_(int /*_argc*/, char** /*_argv*/) // Setup lights. float lightPos[4]; - lightPos[0] = -cos(timeAccumulatorLight); + lightPos[0] = -cosf(timeAccumulatorLight); lightPos[1] = -1.0f; - lightPos[2] = -sin(timeAccumulatorLight); + lightPos[2] = -sinf(timeAccumulatorLight); lightPos[3] = 0.0f; bgfx::setUniform(u_lightPos, lightPos); diff --git a/3rdparty/bgfx/examples/16-shadowmaps/shadowmaps.cpp b/3rdparty/bgfx/examples/16-shadowmaps/shadowmaps.cpp index 86b3d7082f6..09dc689a5f2 100644 --- a/3rdparty/bgfx/examples/16-shadowmaps/shadowmaps.cpp +++ b/3rdparty/bgfx/examples/16-shadowmaps/shadowmaps.cpp @@ -2165,16 +2165,16 @@ int _main_(int /*_argc*/, char** /*_argv*/) if (settings.m_updateScene) { timeAccumulatorScene += deltaTime; } // Setup lights. - pointLight.m_position.m_x = cos(timeAccumulatorLight) * 20.0f; + pointLight.m_position.m_x = cosf(timeAccumulatorLight) * 20.0f; pointLight.m_position.m_y = 26.0f; - pointLight.m_position.m_z = sin(timeAccumulatorLight) * 20.0f; + pointLight.m_position.m_z = sinf(timeAccumulatorLight) * 20.0f; pointLight.m_spotDirectionInner.m_x = -pointLight.m_position.m_x; pointLight.m_spotDirectionInner.m_y = -pointLight.m_position.m_y; pointLight.m_spotDirectionInner.m_z = -pointLight.m_position.m_z; - directionalLight.m_position.m_x = -cos(timeAccumulatorLight); + directionalLight.m_position.m_x = -cosf(timeAccumulatorLight); directionalLight.m_position.m_y = -1.0f; - directionalLight.m_position.m_z = -sin(timeAccumulatorLight); + directionalLight.m_position.m_z = -sinf(timeAccumulatorLight); // Setup instance matrices. float mtxFloor[16]; diff --git a/3rdparty/bgfx/examples/20-nanovg/nanovg.cpp b/3rdparty/bgfx/examples/20-nanovg/nanovg.cpp index cd90111b246..14cd6fbd9d6 100644 --- a/3rdparty/bgfx/examples/20-nanovg/nanovg.cpp +++ b/3rdparty/bgfx/examples/20-nanovg/nanovg.cpp @@ -387,7 +387,7 @@ void drawEyes(struct NVGcontext* vg, float x, float y, float w, float h, float m float ry = y + ey; float dx,dy,d; float br = (ex < ey ? ex : ey) * 0.5f; - float blink = 1 - pow(sinf(t*0.5f),200)*0.8f; + float blink = 1 - powf(sinf(t*0.5f),200)*0.8f; bg = nvgLinearGradient(vg, x,y+h*0.5f,x+w*0.1f,y+h, nvgRGBA(0,0,0,32), nvgRGBA(0,0,0,16)); nvgBeginPath(vg); @@ -1075,11 +1075,11 @@ void drawParagraph(struct NVGcontext* vg, float x, float y, float width, float h nvgBeginPath(vg); nvgFillColor(vg, nvgRGBA(255,192,0,255)); nvgRoundedRect(vg - , round(bounds[0])-4.0f - , round(bounds[1])-2.0f - , round(bounds[2]-bounds[0])+8.0f - , round(bounds[3]-bounds[1])+4.0f - , (round(bounds[3]-bounds[1])+4.0f)/2.0f-1.0f + , roundf(bounds[0])-4.0f + , roundf(bounds[1])-2.0f + , roundf(bounds[2]-bounds[0])+8.0f + , roundf(bounds[3]-bounds[1])+4.0f + , (roundf(bounds[3]-bounds[1])+4.0f)/2.0f-1.0f ); nvgFill(vg); @@ -1097,10 +1097,10 @@ void drawParagraph(struct NVGcontext* vg, float x, float y, float width, float h nvgBeginPath(vg); nvgFillColor(vg, nvgRGBA(220,220,220,255)); nvgRoundedRect(vg - , round(bounds[0]-2.0f) - , round(bounds[1]-2.0f) - , round(bounds[2]-bounds[0])+4.0f - , round(bounds[3]-bounds[1])+4.0f + , roundf(bounds[0]-2.0f) + , roundf(bounds[1]-2.0f) + , roundf(bounds[2]-bounds[0])+4.0f + , roundf(bounds[3]-bounds[1])+4.0f , 3.0f ); px = float( (int)((bounds[2]+bounds[0])/2) ); diff --git a/3rdparty/bgfx/examples/21-deferred/deferred.cpp b/3rdparty/bgfx/examples/21-deferred/deferred.cpp index 1c472b6010d..7d7190c6d7f 100644 --- a/3rdparty/bgfx/examples/21-deferred/deferred.cpp +++ b/3rdparty/bgfx/examples/21-deferred/deferred.cpp @@ -529,10 +529,10 @@ int _main_(int /*_argc*/, char** /*_argv*/) { Sphere lightPosRadius; - float lightTime = time * lightAnimationSpeed * (sin(light/float(numLights) * bx::piHalf ) * 0.5f + 0.5f); - lightPosRadius.m_center[0] = sin( ( (lightTime + light*0.47f) + bx::piHalf*1.37f ) )*offset; - lightPosRadius.m_center[1] = cos( ( (lightTime + light*0.69f) + bx::piHalf*1.49f ) )*offset; - lightPosRadius.m_center[2] = sin( ( (lightTime + light*0.37f) + bx::piHalf*1.57f ) )*2.0f; + float lightTime = time * lightAnimationSpeed * (sinf(light/float(numLights) * bx::piHalf ) * 0.5f + 0.5f); + lightPosRadius.m_center[0] = sinf( ( (lightTime + light*0.47f) + bx::piHalf*1.37f ) )*offset; + lightPosRadius.m_center[1] = cosf( ( (lightTime + light*0.69f) + bx::piHalf*1.49f ) )*offset; + lightPosRadius.m_center[2] = sinf( ( (lightTime + light*0.37f) + bx::piHalf*1.57f ) )*2.0f; lightPosRadius.m_radius = 2.0f; Aabb aabb; diff --git a/3rdparty/bgfx/examples/23-vectordisplay/main.cpp b/3rdparty/bgfx/examples/23-vectordisplay/main.cpp index 52d5ab9f52a..4d6b5132a5a 100644 --- a/3rdparty/bgfx/examples/23-vectordisplay/main.cpp +++ b/3rdparty/bgfx/examples/23-vectordisplay/main.cpp @@ -150,8 +150,8 @@ int _main_(int /*_argc*/, char** /*_argv*/) // draw moving shape static float counter = 0.0f; counter += 0.01f; - float posX = width / 2.0f + sin(counter * 3.18378f) * (width / 2.0f); - float posY = height / 2.0f + cos(counter) * (height / 2.0f); + float posX = width / 2.0f + sinf(counter * 3.18378f) * (width / 2.0f); + float posY = height / 2.0f + cosf(counter) * (height / 2.0f); vd.drawCircle(posX, posY, 5.0f, 10.0f); vd.endFrame(); diff --git a/3rdparty/bgfx/examples/23-vectordisplay/vectordisplay.cpp b/3rdparty/bgfx/examples/23-vectordisplay/vectordisplay.cpp index 41ecbd7f2ff..7f603c15d9e 100644 --- a/3rdparty/bgfx/examples/23-vectordisplay/vectordisplay.cpp +++ b/3rdparty/bgfx/examples/23-vectordisplay/vectordisplay.cpp @@ -361,10 +361,10 @@ void VectorDisplay::endDraw() line->y0 = m_pendingPoints[i - 1].y; line->x1 = m_pendingPoints[i].x; line->y1 = m_pendingPoints[i].y; - line->a = atan2(line->y1 - line->y0, line->x1 - line->x0); // angle from positive x axis, increasing ccw, [-pi, pi] + line->a = atan2f(line->y1 - line->y0, line->x1 - line->x0); // angle from positive x axis, increasing ccw, [-pi, pi] line->sin_a = sinf(line->a); line->cos_a = cosf(line->a); - line->len = sqrt( (line->x1 - line->x0) * (line->x1 - line->x0) + (line->y1 - line->y0) * (line->y1 - line->y0) ); + line->len = sqrtf( (line->x1 - line->x0) * (line->x1 - line->x0) + (line->y1 - line->y0) * (line->y1 - line->y0) ); // figure out what connections we have line->has_prev = (!line->is_first diff --git a/3rdparty/bgfx/examples/25-c99/helloworld.c b/3rdparty/bgfx/examples/25-c99/helloworld.c index b3862ebd2a1..e217e10e8c6 100644 --- a/3rdparty/bgfx/examples/25-c99/helloworld.c +++ b/3rdparty/bgfx/examples/25-c99/helloworld.c @@ -15,14 +15,19 @@ uint16_t uint16_max(uint16_t _a, uint16_t _b) int _main_(int _argc, char** _argv) { + uint32_t width = 1280; + uint32_t height = 720; + uint32_t debug = BGFX_DEBUG_TEXT; + uint32_t reset = BGFX_RESET_VSYNC; (void)_argc; (void)_argv; - uint32_t width = 1280; - uint32_t height = 720; - uint32_t debug = BGFX_DEBUG_TEXT; - uint32_t reset = BGFX_RESET_VSYNC; - bgfx_init(BGFX_RENDERER_TYPE_COUNT, NULL, NULL); + bgfx_init(BGFX_RENDERER_TYPE_COUNT + , BGFX_PCI_ID_NONE + , 0 + , NULL + , NULL + ); bgfx_reset(width, height, reset); // Enable debug text. diff --git a/3rdparty/bgfx/examples/common/bounds.cpp b/3rdparty/bgfx/examples/common/bounds.cpp index 4af4555511d..8fc91b63e99 100644 --- a/3rdparty/bgfx/examples/common/bounds.cpp +++ b/3rdparty/bgfx/examples/common/bounds.cpp @@ -264,9 +264,9 @@ void calcMinBoundingSphere(Sphere& _sphere, const void* _vertices, uint32_t _num { position = (float*)&vertex[index*_stride]; - float xx = position[0] - center[0]; - float yy = position[1] - center[1]; - float zz = position[2] - center[2]; + xx = position[0] - center[0]; + yy = position[1] - center[1]; + zz = position[2] - center[2]; float distSq = xx*xx + yy*yy + zz*zz; if (distSq > maxDistSq) diff --git a/3rdparty/bgfx/examples/common/entry/entry.cpp b/3rdparty/bgfx/examples/common/entry/entry.cpp index 7ef7853145f..001232d5556 100644 --- a/3rdparty/bgfx/examples/common/entry/entry.cpp +++ b/3rdparty/bgfx/examples/common/entry/entry.cpp @@ -29,8 +29,11 @@ namespace entry #if ENTRY_CONFIG_IMPLEMENT_DEFAULT_ALLOCATOR bx::ReallocatorI* getDefaultAllocator() { +BX_PRAGMA_DIAGNOSTIC_PUSH_MSVC(); +BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4459); // warning C4459: declaration of 's_allocator' hides global declaration static bx::CrtAllocator s_allocator; return &s_allocator; +BX_PRAGMA_DIAGNOSTIC_POP_MSVC(); } #endif // ENTRY_CONFIG_IMPLEMENT_DEFAULT_ALLOCATOR diff --git a/3rdparty/bgfx/examples/common/entry/entry_p.h b/3rdparty/bgfx/examples/common/entry/entry_p.h index d41ab56804b..d0ba73311c5 100644 --- a/3rdparty/bgfx/examples/common/entry/entry_p.h +++ b/3rdparty/bgfx/examples/common/entry/entry_p.h @@ -161,6 +161,14 @@ namespace entry class EventQueue { public: + ~EventQueue() + { + for (const Event* ev = poll(); NULL != ev; ev = poll() ) + { + release(ev); + } + } + void postAxisEvent(WindowHandle _handle, GamepadHandle _gamepad, GamepadAxis::Enum _axis, int32_t _value) { AxisEvent* ev = new AxisEvent(_handle); diff --git a/3rdparty/bgfx/include/bgfx.c99.h b/3rdparty/bgfx/include/bgfx.c99.h index 43effbcc5ec..38b55e327bb 100644 --- a/3rdparty/bgfx/include/bgfx.c99.h +++ b/3rdparty/bgfx/include/bgfx.c99.h @@ -272,6 +272,15 @@ typedef struct bgfx_texture_info } bgfx_texture_info_t; +/** + */ +typedef struct bgfx_caps_gpu +{ + uint16_t vendorId; + uint16_t deviceId; + +} bgfx_caps_gpu_t; + /** * Renderer capabilities. */ @@ -293,6 +302,11 @@ typedef struct bgfx_caps uint16_t maxViews; /* < Maximum views. */ uint16_t maxDrawCalls; /* < Maximum draw calls. */ uint8_t maxFBAttachments; /* < Maximum frame buffer attachments. */ + uint8_t numGPUs; /* < */ + + uint16_t vendorId; /* < */ + uint16_t deviceId; /* < */ + bgfx_caps_gpu_t gpu[4]; /* < */ /** * Supported texture formats. @@ -559,7 +573,7 @@ BGFX_C_API const char* bgfx_get_renderer_name(bgfx_renderer_type_t _type); * specified, library uses default CRT allocator. The library assumes * custom allocator is thread safe. */ -BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, bgfx_callback_interface_t* _callback, bgfx_reallocator_interface_t* _allocator); +BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, uint16_t _vendorId, uint16_t _deviceId, bgfx_callback_interface_t* _callback, bgfx_reallocator_interface_t* _allocator); /** * Shutdown bgfx library. diff --git a/3rdparty/bgfx/include/bgfx.h b/3rdparty/bgfx/include/bgfx.h index dd3b4c5db79..257086a54fb 100644 --- a/3rdparty/bgfx/include/bgfx.h +++ b/3rdparty/bgfx/include/bgfx.h @@ -315,6 +315,18 @@ namespace bgfx uint16_t maxViews; ///< Maximum views. uint16_t maxDrawCalls; ///< Maximum draw calls. uint8_t maxFBAttachments; ///< Maximum frame buffer attachments. + uint8_t numGPUs; ///< + + uint16_t vendorId; ///< + uint16_t deviceId; ///< + + struct GPU + { + uint16_t vendorId; + uint16_t deviceId; + }; + + GPU gpu[4]; ///< /// Supported texture formats. /// - `BGFX_CAPS_FORMAT_TEXTURE_NONE` - not supported @@ -508,6 +520,15 @@ namespace bgfx /// default rendering backend will be selected. /// See: `bgfx::RendererType` /// + /// @param _vendorId Vendor PCI id. If set to BGFX_PCI_ID_NONE it will select the first device. + /// - `BGFX_PCI_ID_NONE` - autoselect. + /// - `BGFX_PCI_ID_AMD` - AMD. + /// - `BGFX_PCI_ID_INTEL` - Intel. + /// - `BGFX_PCI_ID_NVIDIA` - nVidia. + /// + /// @param _deviceId Device id. If set to 0 it will select first device, or device with + /// matching id. + /// /// @param _callback Provide application specific callback interface. /// See: `bgfx::CallbackI` /// @@ -517,7 +538,7 @@ namespace bgfx /// /// @attention C99 equivalent is `bgfx_init`. /// - void init(RendererType::Enum _type = RendererType::Count, CallbackI* _callback = NULL, bx::ReallocatorI* _reallocator = NULL); + void init(RendererType::Enum _type = RendererType::Count, uint16_t _vendorId = BGFX_PCI_ID_NONE, uint16_t _deviceId = 0, CallbackI* _callback = NULL, bx::ReallocatorI* _reallocator = NULL); /// Shutdown bgfx library. /// diff --git a/3rdparty/bgfx/include/bgfxdefines.h b/3rdparty/bgfx/include/bgfxdefines.h index d7bfd62768a..f8878a9e05e 100644 --- a/3rdparty/bgfx/include/bgfxdefines.h +++ b/3rdparty/bgfx/include/bgfxdefines.h @@ -333,4 +333,10 @@ #define BGFX_SUBMIT_EYE_MASK UINT8_C(0x03) #define BGFX_SUBMIT_EYE_FIRST BGFX_SUBMIT_EYE_LEFT +/// +#define BGFX_PCI_ID_NONE UINT16_C(0x0000) +#define BGFX_PCI_ID_AMD UINT16_C(0x1002) +#define BGFX_PCI_ID_INTEL UINT16_C(0x8086) +#define BGFX_PCI_ID_NVIDIA UINT16_C(0x10de) + #endif // BGFX_DEFINES_H_HEADER_GUARD diff --git a/3rdparty/bgfx/scripts/genie.lua b/3rdparty/bgfx/scripts/genie.lua index 4784b4db8fc..31ad5f3aa11 100644 --- a/3rdparty/bgfx/scripts/genie.lua +++ b/3rdparty/bgfx/scripts/genie.lua @@ -158,23 +158,42 @@ function exampleProject(_name) "ws2_32", } - configuration { "x32" } - libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Win32", _ACTION) } + -- Check for LibOVR 5.0+ + if os.isdir(path.join(os.getenv("OVR_DIR"), "LibOVR/Lib/Windows/Win32/Debug/VS2012")) then - configuration { "x64" } - libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/x64", _ACTION) } + configuration { "x32", "Debug" } + libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/Win32/Debug", _ACTION) } - configuration { "x32", "Debug" } - links { "libovrd" } + configuration { "x32", "Release" } + libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/Win32/Release", _ACTION) } - configuration { "x32", "Release" } - links { "libovr" } + configuration { "x64", "Debug" } + libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/x64/Debug", _ACTION) } - configuration { "x64", "Debug" } - links { "libovr64d" } + configuration { "x64", "Release" } + libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/x64/Release", _ACTION) } - configuration { "x64", "Release" } - links { "libovr64" } + configuration { "x32 or x64" } + links { "libovr" } + else + configuration { "x32" } + libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Win32", _ACTION) } + + configuration { "x64" } + libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/x64", _ACTION) } + + configuration { "x32", "Debug" } + links { "libovrd" } + + configuration { "x32", "Release" } + links { "libovr" } + + configuration { "x64", "Debug" } + links { "libovr64d" } + + configuration { "x64", "Release" } + links { "libovr64" } + end configuration {} end diff --git a/3rdparty/bgfx/src/bgfx.cpp b/3rdparty/bgfx/src/bgfx.cpp index db3bb3318ce..3a353942cc5 100644 --- a/3rdparty/bgfx/src/bgfx.cpp +++ b/3rdparty/bgfx/src/bgfx.cpp @@ -888,7 +888,11 @@ namespace bgfx static void dumpCaps() { - BX_TRACE("Supported capabilities (%s):", s_ctx->m_renderCtx->getRendererName() ); + BX_TRACE("Supported capabilities (renderer %s, vendor 0x%04x, device 0x%04x):" + , s_ctx->m_renderCtx->getRendererName() + , g_caps.vendorId + , g_caps.deviceId + ); for (uint32_t ii = 0; ii < BX_COUNTOF(s_capsFlags); ++ii) { if (0 != (g_caps.supported & s_capsFlags[ii].m_flag) ) @@ -1977,7 +1981,7 @@ again: return s_rendererCreator[_type].name; } - void init(RendererType::Enum _type, CallbackI* _callback, bx::ReallocatorI* _allocator) + void init(RendererType::Enum _type, uint16_t _vendorId, uint16_t _deviceId, CallbackI* _callback, bx::ReallocatorI* _allocator) { BX_CHECK(NULL == s_ctx, "bgfx is already initialized."); BX_TRACE("Init..."); @@ -1989,6 +1993,8 @@ again: g_caps.maxViews = BGFX_CONFIG_MAX_VIEWS; g_caps.maxDrawCalls = BGFX_CONFIG_MAX_DRAW_CALLS; g_caps.maxFBAttachments = 1; + g_caps.vendorId = _vendorId; + g_caps.deviceId = _deviceId; if (NULL != _allocator) { @@ -3012,9 +3018,11 @@ BGFX_C_API const char* bgfx_get_renderer_name(bgfx_renderer_type_t _type) return bgfx::getRendererName(bgfx::RendererType::Enum(_type) ); } -BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, struct bgfx_callback_interface* _callback, struct bgfx_reallocator_interface* _allocator) +BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, uint16_t _vendorId, uint16_t _deviceId, bgfx_callback_interface_t* _callback, bgfx_reallocator_interface_t* _allocator) { return bgfx::init(bgfx::RendererType::Enum(_type) + , _vendorId + , _deviceId , reinterpret_cast(_callback) , reinterpret_cast(_allocator) ); diff --git a/3rdparty/bgfx/src/bgfx_p.h b/3rdparty/bgfx/src/bgfx_p.h index b17b7b312d8..efc413a62da 100644 --- a/3rdparty/bgfx/src/bgfx_p.h +++ b/3rdparty/bgfx/src/bgfx_p.h @@ -29,6 +29,7 @@ #include #include +// Check handle, cannot be bgfx::invalidHandle and must be valid. #define BGFX_CHECK_HANDLE(_desc, _handleAlloc, _handle) \ BX_CHECK(isValid(_handle) \ && _handleAlloc.isValid(_handle.idx) \ @@ -36,7 +37,17 @@ , _desc \ , _handle.idx \ , _handleAlloc.getMaxHandles() \ - ); + ) + +// Check handle, it's ok to be bgfx::invalidHandle or must be valid. +#define BGFX_CHECK_HANDLE_INVALID_OK(_desc, _handleAlloc, _handle) \ + BX_CHECK(!isValid(_handle) \ + || _handleAlloc.isValid(_handle.idx) \ + , "Invalid handle. %s handle: %d (max %d)" \ + , _desc \ + , _handle.idx \ + , _handleAlloc.getMaxHandles() \ + ) namespace bgfx { @@ -3091,7 +3102,7 @@ namespace bgfx BGFX_API_FUNC(void setViewFrameBuffer(uint8_t _id, FrameBufferHandle _handle) ) { - BGFX_CHECK_HANDLE("setViewFrameBuffer", m_frameBufferHandle, _handle); + BGFX_CHECK_HANDLE_INVALID_OK("setViewFrameBuffer", m_frameBufferHandle, _handle); m_fb[_id] = _handle; } @@ -3259,12 +3270,13 @@ namespace bgfx BGFX_API_FUNC(void setTexture(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint32_t _flags) ) { - BGFX_CHECK_HANDLE("setTexture", m_textureHandle, _handle); + BGFX_CHECK_HANDLE_INVALID_OK("setTexture/TextureHandle", m_textureHandle, _handle); m_submit->setTexture(_stage, _sampler, _handle, _flags); } BGFX_API_FUNC(void setTexture(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, uint32_t _flags) ) { + BGFX_CHECK_HANDLE_INVALID_OK("setTexture/FrameBufferHandle", m_frameBufferHandle, _handle); BX_CHECK(_attachment < g_caps.maxFBAttachments, "Frame buffer attachment index %d is invalid.", _attachment); TextureHandle textureHandle = BGFX_INVALID_HANDLE; if (isValid(_handle) ) diff --git a/3rdparty/bgfx/src/ovr.cpp b/3rdparty/bgfx/src/ovr.cpp index 732f750cc9e..f86d69a345d 100644 --- a/3rdparty/bgfx/src/ovr.cpp +++ b/3rdparty/bgfx/src/ovr.cpp @@ -123,7 +123,9 @@ namespace bgfx result = ovrHmd_ConfigureRendering(m_hmd , _config , 0 - | ovrDistortionCap_Chromatic +#if OVR_VERSION < OVR_VERSION_050 + | ovrDistortionCap_Chromatic // permanently enabled >= v5.0 +#endif | ovrDistortionCap_Vignette | ovrDistortionCap_TimeWarp | ovrDistortionCap_Overdrive diff --git a/3rdparty/bgfx/src/ovr.h b/3rdparty/bgfx/src/ovr.h index 34373feb5e7..e8c86b895e0 100644 --- a/3rdparty/bgfx/src/ovr.h +++ b/3rdparty/bgfx/src/ovr.h @@ -10,17 +10,28 @@ #if BGFX_CONFIG_USE_OVR -# include +# include # define OVR_VERSION_(_a, _b, _c) (_a * 10000 + _b * 100 + _c) # define OVR_VERSION OVR_VERSION_(OVR_MAJOR_VERSION, OVR_MINOR_VERSION, OVR_BUILD_VERSION) # define OVR_VERSION_042 OVR_VERSION_(0, 4, 2) # define OVR_VERSION_043 OVR_VERSION_(0, 4, 3) # define OVR_VERSION_044 OVR_VERSION_(0, 4, 4) +# define OVR_VERSION_050 OVR_VERSION_(0, 5, 0) + +# if OVR_VERSION < OVR_VERSION_050 +# include +# else +# include +# endif // OVR_VERSION < OVR_VERSION_050 # if BGFX_CONFIG_RENDERER_DIRECT3D9 # define OVR_D3D_VERSION 9 -# include +# if OVR_VERSION < OVR_VERSION_050 +# include +# else +# include +# endif # endif // BGFX_CONFIG_RENDERER_DIRECT3D9 # if BGFX_CONFIG_RENDERER_DIRECT3D11 @@ -29,11 +40,19 @@ # undef OVR_D3D_VERSION # endif // OVR_CAPI_D3D_h # define OVR_D3D_VERSION 11 -# include +# if OVR_VERSION < OVR_VERSION_050 +# include +# else +# include +# endif # endif // BGFX_CONFIG_RENDERER_DIRECT3D11 # if BGFX_CONFIG_RENDERER_OPENGL -# include +# if OVR_VERSION < OVR_VERSION_050 +# include +# else +# include +# endif # endif // BGFX_CONFIG_RENDERER_OPENGL namespace bgfx diff --git a/3rdparty/bgfx/src/renderer_d3d11.cpp b/3rdparty/bgfx/src/renderer_d3d11.cpp index 7f840dc0fd4..75311778424 100644 --- a/3rdparty/bgfx/src/renderer_d3d11.cpp +++ b/3rdparty/bgfx/src/renderer_d3d11.cpp @@ -513,7 +513,10 @@ namespace bgfx { namespace d3d11 m_driverType = D3D_DRIVER_TYPE_HARDWARE; IDXGIAdapter* adapter; - for (uint32_t ii = 0; DXGI_ERROR_NOT_FOUND != factory->EnumAdapters(ii, &adapter); ++ii) + for (uint32_t ii = 0 + ; DXGI_ERROR_NOT_FOUND != factory->EnumAdapters(ii, &adapter) && ii < BX_COUNTOF(g_caps.gpu) + ; ++ii + ) { DXGI_ADAPTER_DESC desc; hr = adapter->GetDesc(&desc); @@ -536,6 +539,19 @@ namespace bgfx { namespace d3d11 , desc.SharedSystemMemory ); + g_caps.gpu[ii].vendorId = (uint16_t)desc.VendorId; + g_caps.gpu[ii].deviceId = (uint16_t)desc.DeviceId; + ++g_caps.numGPUs; + + if ( (BGFX_PCI_ID_NONE != g_caps.vendorId || 0 != g_caps.deviceId) + && (BGFX_PCI_ID_NONE == g_caps.vendorId || desc.VendorId == g_caps.vendorId) + && ( 0 == g_caps.deviceId || desc.DeviceId == g_caps.deviceId) ) + { + m_adapter = adapter; + m_adapter->AddRef(); + m_driverType = D3D_DRIVER_TYPE_UNKNOWN; + } + if (BX_ENABLED(BGFX_CONFIG_DEBUG_PERFHUD) && 0 != strstr(description, "PerfHUD") ) { @@ -594,6 +610,11 @@ namespace bgfx { namespace d3d11 } BGFX_FATAL(SUCCEEDED(hr), Fatal::UnableToInitialize, "Unable to create Direct3D11 device."); + if (NULL != m_adapter) + { + DX_RELEASE(m_adapter, 2); + } + IDXGIDevice* device = NULL; hr = E_FAIL; for (uint32_t ii = 0; ii < BX_COUNTOF(s_deviceIIDs) && FAILED(hr); ++ii) @@ -616,6 +637,8 @@ namespace bgfx { namespace d3d11 hr = adapter->GetDesc(&m_adapterDesc); BGFX_FATAL(SUCCEEDED(hr), Fatal::UnableToInitialize, "Unable to create Direct3D11 device."); + g_caps.vendorId = (uint16_t)m_adapterDesc.VendorId; + g_caps.deviceId = (uint16_t)m_adapterDesc.DeviceId; #if BX_PLATFORM_WINRT hr = adapter->GetParent(__uuidof(IDXGIFactory2), (void**)&m_factory); @@ -734,7 +757,7 @@ namespace bgfx { namespace d3d11 { D3D11_FEATURE_DATA_FORMAT_SUPPORT data; // D3D11_FEATURE_DATA_FORMAT_SUPPORT2 data.InFormat = s_textureFormat[ii].m_fmt; - HRESULT hr = m_device->CheckFeatureSupport(D3D11_FEATURE_FORMAT_SUPPORT, &data, sizeof(data) ); + hr = m_device->CheckFeatureSupport(D3D11_FEATURE_FORMAT_SUPPORT, &data, sizeof(data) ); if (SUCCEEDED(hr) ) { support |= 0 != (data.OutFormatSupport & (0 @@ -3123,6 +3146,7 @@ namespace bgfx { namespace d3d11 uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {}; uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {}; uint32_t statsNumIndices = 0; + uint32_t statsKeyType[2] = {}; if (0 == (_render->m_debug&BGFX_DEBUG_IFH) ) { @@ -3135,6 +3159,8 @@ namespace bgfx { namespace d3d11 for (int32_t item = 0, restartItem = numItems; item < numItems || restartItem < numItems;) { const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap); + statsKeyType[isCompute]++; + const bool viewChanged = 0 || key.m_view != view || item == numItems @@ -3778,8 +3804,10 @@ namespace bgfx { namespace d3d11 ); double elapsedCpuMs = double(elapsed)*toMs; - tvm.printf(10, pos++, 0x8e, " Draw calls: %4d / CPU %3.4f [ms]" + tvm.printf(10, pos++, 0x8e, " Submitted: %4d (draw %4d, compute %4d) / CPU %3.4f [ms]" , _render->m_num + , statsKeyType[0] + , statsKeyType[1] , elapsedCpuMs ); for (uint32_t ii = 0; ii < BX_COUNTOF(s_primName); ++ii) diff --git a/3rdparty/bgfx/src/renderer_d3d9.cpp b/3rdparty/bgfx/src/renderer_d3d9.cpp index d1381054cb4..a6370f08f28 100644 --- a/3rdparty/bgfx/src/renderer_d3d9.cpp +++ b/3rdparty/bgfx/src/renderer_d3d9.cpp @@ -359,26 +359,36 @@ namespace bgfx { namespace d3d9 m_adapter = D3DADAPTER_DEFAULT; m_deviceType = D3DDEVTYPE_HAL; - uint32_t adapterCount = m_d3d9->GetAdapterCount(); - for (uint32_t ii = 0; ii < adapterCount; ++ii) + uint8_t numGPUs = bx::uint32_min(BX_COUNTOF(g_caps.gpu), m_d3d9->GetAdapterCount() ); + for (uint32_t ii = 0; ii < numGPUs; ++ii) { - D3DADAPTER_IDENTIFIER9 identifier; - HRESULT hr = m_d3d9->GetAdapterIdentifier(ii, 0, &identifier); + D3DADAPTER_IDENTIFIER9 desc; + HRESULT hr = m_d3d9->GetAdapterIdentifier(ii, 0, &desc); if (SUCCEEDED(hr) ) { BX_TRACE("Adapter #%d", ii); - BX_TRACE("\tDriver: %s", identifier.Driver); - BX_TRACE("\tDescription: %s", identifier.Description); - BX_TRACE("\tDeviceName: %s", identifier.DeviceName); + BX_TRACE("\tDriver: %s", desc.Driver); + BX_TRACE("\tDescription: %s", desc.Description); + BX_TRACE("\tDeviceName: %s", desc.DeviceName); BX_TRACE("\tVendorId: 0x%08x, DeviceId: 0x%08x, SubSysId: 0x%08x, Revision: 0x%08x" - , identifier.VendorId - , identifier.DeviceId - , identifier.SubSysId - , identifier.Revision + , desc.VendorId + , desc.DeviceId + , desc.SubSysId + , desc.Revision ); + g_caps.gpu[ii].vendorId = (uint16_t)desc.VendorId; + g_caps.gpu[ii].deviceId = (uint16_t)desc.DeviceId; + + if ( (BGFX_PCI_ID_NONE != g_caps.vendorId || 0 != g_caps.deviceId) + && (BGFX_PCI_ID_NONE == g_caps.vendorId || desc.VendorId == g_caps.vendorId) + && ( 0 == g_caps.deviceId || desc.DeviceId == g_caps.deviceId) ) + { + m_adapter = ii; + } + #if BGFX_CONFIG_DEBUG_PERFHUD - if (0 != strstr(identifier.Description, "PerfHUD") ) + if (0 != strstr(desc.Description, "PerfHUD") ) { m_adapter = ii; m_deviceType = D3DDEVTYPE_REF; @@ -388,8 +398,10 @@ namespace bgfx { namespace d3d9 } DX_CHECK(m_d3d9->GetAdapterIdentifier(m_adapter, 0, &m_identifier) ); - m_amd = m_identifier.VendorId == 0x1002; - m_nvidia = m_identifier.VendorId == 0x10de; + m_amd = m_identifier.VendorId == BGFX_PCI_ID_AMD; + m_nvidia = m_identifier.VendorId == BGFX_PCI_ID_NVIDIA; + g_caps.vendorId = (uint16_t)m_identifier.VendorId; + g_caps.deviceId = (uint16_t)m_identifier.DeviceId; uint32_t behaviorFlags[] = { @@ -2215,10 +2227,10 @@ namespace bgfx { namespace d3d9 if (NULL != _rect) { RECT rect; - rect.left = _rect->m_x; - rect.top = _rect->m_y; - rect.right = rect.left + _rect->m_width; - rect.bottom = rect.top + _rect->m_height; + rect.left = _rect->m_x; + rect.top = _rect->m_y; + rect.right = rect.left + _rect->m_width; + rect.bottom = rect.top + _rect->m_height; DX_CHECK(m_texture2d->LockRect(_lod, &lockedRect, &rect, 0) ); } else @@ -2494,7 +2506,7 @@ namespace bgfx { namespace d3d9 if (convert) { - uint8_t* temp = (uint8_t*)BX_ALLOC(g_allocator, rectpitch*_rect.m_height); + temp = (uint8_t*)BX_ALLOC(g_allocator, rectpitch*_rect.m_height); imageDecodeToBgra8(temp, data, _rect.m_width, _rect.m_height, srcpitch, m_requestedFormat); data = temp; } @@ -2864,8 +2876,11 @@ namespace bgfx { namespace d3d9 FrameBufferHandle fbh = BGFX_INVALID_HANDLE; uint32_t blendFactor = 0; - const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0; - uint8_t primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT); + uint8_t primIndex; + { + const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0; + primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT); + } PrimInfo prim = s_primInfo[primIndex]; bool viewHasScissor = false; @@ -2876,6 +2891,7 @@ namespace bgfx { namespace d3d9 uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {}; uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {}; uint32_t statsNumIndices = 0; + uint32_t statsKeyType[2] = {}; invalidateSamplerState(); @@ -2884,6 +2900,7 @@ namespace bgfx { namespace d3d9 for (uint32_t item = 0, numItems = _render->m_num; item < numItems; ++item) { const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap); + statsKeyType[isCompute]++; if (isCompute) { @@ -3414,8 +3431,10 @@ namespace bgfx { namespace d3d9 ); double elapsedCpuMs = double(elapsed)*toMs; - tvm.printf(10, pos++, 0x8e, " Draw calls: %4d / CPU %3.4f [ms]" + tvm.printf(10, pos++, 0x8e, " Submitted: %4d (draw %4d, compute %4d) / CPU %3.4f [ms]" , _render->m_num + , statsKeyType[0] + , statsKeyType[1] , elapsedCpuMs ); for (uint32_t ii = 0; ii < BX_COUNTOF(s_primName); ++ii) diff --git a/3rdparty/bgfx/src/renderer_gl.cpp b/3rdparty/bgfx/src/renderer_gl.cpp index e1ed1543177..1e388516065 100644 --- a/3rdparty/bgfx/src/renderer_gl.cpp +++ b/3rdparty/bgfx/src/renderer_gl.cpp @@ -237,6 +237,8 @@ namespace bgfx { namespace gl }; BX_STATIC_ASSERT(TextureFormat::Count == BX_COUNTOF(s_textureFormat) ); + static bool s_textureFilter[TextureFormat::Count+1]; + static GLenum s_rboFormat[] = { GL_ZERO, // BC1 @@ -358,6 +360,7 @@ namespace bgfx { namespace gl ANGLE_texture_compression_dxt1, ANGLE_texture_compression_dxt3, ANGLE_texture_compression_dxt5, + ANGLE_timer_query, ANGLE_translated_shader_source, APPLE_texture_format_BGRA8888, @@ -418,10 +421,12 @@ namespace bgfx { namespace gl EXT_blend_minmax, EXT_blend_subtract, EXT_color_buffer_half_float, + EXT_color_buffer_float, EXT_compressed_ETC1_RGB8_sub_texture, EXT_debug_label, EXT_debug_marker, EXT_discard_framebuffer, + EXT_disjoint_timer_query, EXT_draw_buffers, EXT_frag_depth, EXT_framebuffer_blit, @@ -511,7 +516,7 @@ namespace bgfx { namespace gl bool m_initialize; }; - static Extension s_extension[Extension::Count] = + static Extension s_extension[] = { { "AMD_conservative_depth", false, true }, @@ -522,6 +527,7 @@ namespace bgfx { namespace gl { "ANGLE_texture_compression_dxt1", false, true }, { "ANGLE_texture_compression_dxt3", false, true }, { "ANGLE_texture_compression_dxt5", false, true }, + { "ANGLE_timer_query", false, true }, { "ANGLE_translated_shader_source", false, true }, { "APPLE_texture_format_BGRA8888", false, true }, @@ -582,10 +588,12 @@ namespace bgfx { namespace gl { "EXT_blend_minmax", BGFX_CONFIG_RENDERER_OPENGL >= 14, true }, { "EXT_blend_subtract", BGFX_CONFIG_RENDERER_OPENGL >= 14, true }, { "EXT_color_buffer_half_float", false, true }, // GLES2 extension. + { "EXT_color_buffer_float", false, true }, // GLES2 extension. { "EXT_compressed_ETC1_RGB8_sub_texture", false, true }, // GLES2 extension. { "EXT_debug_label", false, true }, { "EXT_debug_marker", false, true }, { "EXT_discard_framebuffer", false, true }, // GLES2 extension. + { "EXT_disjoint_timer_query", false, true }, // GLES2 extension. { "EXT_draw_buffers", false, true }, // GLES2 extension. { "EXT_frag_depth", false, true }, // GLES2 extension. { "EXT_framebuffer_blit", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, @@ -609,7 +617,7 @@ namespace bgfx { namespace gl { "EXT_texture_storage", false, true }, { "EXT_texture_swizzle", false, true }, { "EXT_texture_type_2_10_10_10_REV", false, true }, - { "EXT_timer_query", false, true }, + { "EXT_timer_query", BGFX_CONFIG_RENDERER_OPENGL >= 33, true }, { "EXT_unpack_subimage", false, true }, { "GOOGLE_depth_texture", false, true }, @@ -667,6 +675,7 @@ namespace bgfx { namespace gl { "WEBKIT_WEBGL_compressed_texture_s3tc", false, true }, { "WEBKIT_WEBGL_depth_texture", false, true }, }; + BX_STATIC_ASSERT(Extension::Count == BX_COUNTOF(s_extension) ); static const char* s_ARB_shader_texture_lod[] = { @@ -921,6 +930,15 @@ namespace bgfx { namespace gl return 0 == err; } + static void getFilters(uint32_t _flags, bool _hasMips, GLenum& _magFilter, GLenum& _minFilter) + { + const uint32_t mag = (_flags&BGFX_TEXTURE_MAG_MASK)>>BGFX_TEXTURE_MAG_SHIFT; + const uint32_t min = (_flags&BGFX_TEXTURE_MIN_MASK)>>BGFX_TEXTURE_MIN_SHIFT; + const uint32_t mip = (_flags&BGFX_TEXTURE_MIP_MASK)>>BGFX_TEXTURE_MIP_SHIFT; + _magFilter = s_textureFilterMag[mag]; + _minFilter = s_textureFilterMin[min][_hasMips ? mip+1 : 0]; + } + struct RendererContextGL : public RendererContextI { RendererContextGL() @@ -939,6 +957,7 @@ namespace bgfx { namespace gl , m_programBinarySupport(false) , m_textureSwizzleSupport(false) , m_depthTextureSupport(false) + , m_timerQuerySupport(false) , m_flip(false) , m_hash( (BX_PLATFORM_WINDOWS<<1) | BX_ARCH_64BIT) , m_backBufferFbo(0) @@ -1100,6 +1119,9 @@ namespace bgfx { namespace gl } } + // Allow all texture filters. + memset(s_textureFilter, true, BX_COUNTOF(s_textureFilter) ); + bool bc123Supported = 0 || s_extension[Extension::EXT_texture_compression_s3tc ].m_supported || s_extension[Extension::MOZ_WEBGL_compressed_texture_s3tc ].m_supported @@ -1192,6 +1214,23 @@ namespace bgfx { namespace gl { setTextureFormat(TextureFormat::RGBA16F, GL_RGBA, GL_RGBA, GL_HALF_FLOAT); + if (s_extension[Extension::OES_texture_half_float].m_supported + || s_extension[Extension::OES_texture_float ].m_supported) + { + // https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt + // When half/float is available via extensions texture will be marked as + // incomplete if it uses anything other than nearest filter. + const bool linear16F = s_extension[Extension::OES_texture_half_float_linear].m_supported; + const bool linear32F = s_extension[Extension::OES_texture_float_linear ].m_supported; + + s_textureFilter[TextureFormat::R16F] = linear16F; + s_textureFilter[TextureFormat::RG16F] = linear16F; + s_textureFilter[TextureFormat::RGBA16F] = linear16F; + s_textureFilter[TextureFormat::R32F] = linear32F; + s_textureFilter[TextureFormat::RG32F] = linear32F; + s_textureFilter[TextureFormat::RGBA32F] = linear32F; + } + if (BX_ENABLED(BX_PLATFORM_IOS) ) { setTextureFormat(TextureFormat::D16, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT); @@ -1353,6 +1392,13 @@ namespace bgfx { namespace gl || s_extension[Extension::WEBKIT_WEBGL_depth_texture].m_supported ; + m_timerQuerySupport = 0 + || s_extension[Extension::ANGLE_timer_query ].m_supported + || s_extension[Extension::ARB_timer_query ].m_supported + || s_extension[Extension::EXT_disjoint_timer_query].m_supported + || s_extension[Extension::EXT_timer_query ].m_supported + ; + g_caps.supported |= m_depthTextureSupport ? BGFX_CAPS_TEXTURE_COMPARE_LEQUAL : 0 @@ -1462,7 +1508,8 @@ namespace bgfx { namespace gl glInvalidateFramebuffer = stubInvalidateFramebuffer; } - if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) ) + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) + && m_timerQuerySupport) { m_queries.create(); } @@ -1492,7 +1539,8 @@ namespace bgfx { namespace gl invalidateCache(); - if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) ) + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) + && m_timerQuerySupport) { m_queries.destroy(); } @@ -2054,16 +2102,25 @@ namespace bgfx { namespace gl { sampler = m_samplerStateCache.add(_flags); - GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_WRAP_S, s_textureAddress[(_flags&BGFX_TEXTURE_U_MASK)>>BGFX_TEXTURE_U_SHIFT]) ); - GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_WRAP_T, s_textureAddress[(_flags&BGFX_TEXTURE_V_MASK)>>BGFX_TEXTURE_V_SHIFT]) ); - GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_WRAP_R, s_textureAddress[(_flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT]) ); + GL_CHECK(glSamplerParameteri(sampler + , GL_TEXTURE_WRAP_S + , s_textureAddress[(_flags&BGFX_TEXTURE_U_MASK)>>BGFX_TEXTURE_U_SHIFT] + ) ); + GL_CHECK(glSamplerParameteri(sampler + , GL_TEXTURE_WRAP_T + , s_textureAddress[(_flags&BGFX_TEXTURE_V_MASK)>>BGFX_TEXTURE_V_SHIFT] + ) ); + GL_CHECK(glSamplerParameteri(sampler + , GL_TEXTURE_WRAP_R + , s_textureAddress[(_flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT] + ) ); - const uint32_t mag = (_flags&BGFX_TEXTURE_MAG_MASK)>>BGFX_TEXTURE_MAG_SHIFT; - const uint32_t min = (_flags&BGFX_TEXTURE_MIN_MASK)>>BGFX_TEXTURE_MIN_SHIFT; - const uint32_t mip = (_flags&BGFX_TEXTURE_MIP_MASK)>>BGFX_TEXTURE_MIP_SHIFT; - GLenum minFilter = s_textureFilterMin[min][1 < _numMips ? mip+1 : 0]; - GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, s_textureFilterMag[mag]) ); + GLenum minFilter; + GLenum magFilter; + getFilters(_flags, 1 < _numMips, magFilter, minFilter); + GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, magFilter) ); GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, minFilter) ); + if (0 != (_flags & (BGFX_TEXTURE_MIN_ANISOTROPIC|BGFX_TEXTURE_MAG_ANISOTROPIC) ) && 0.0f < m_maxAnisotropy) { @@ -2564,6 +2621,7 @@ namespace bgfx { namespace gl bool m_programBinarySupport; bool m_textureSwizzleSupport; bool m_depthTextureSupport; + bool m_timerQuerySupport; bool m_flip; uint64_t m_hash; @@ -2869,20 +2927,20 @@ namespace bgfx { namespace gl m_numPredefined = 0; m_numSamplers = 0; - struct VariableInfo - { - GLenum type; - GLint loc; - GLint num; - }; - VariableInfo vi; - GLenum props[] = { GL_TYPE, GL_LOCATION, GL_ARRAY_SIZE }; - const bool piqSupported = s_extension[Extension::ARB_program_interface_query].m_supported; BX_TRACE("Uniforms (%d):", activeUniforms); for (int32_t ii = 0; ii < activeUniforms; ++ii) { + struct VariableInfo + { + GLenum type; + GLint loc; + GLint num; + }; + VariableInfo vi; + GLenum props[] ={ GL_TYPE, GL_LOCATION, GL_ARRAY_SIZE }; + GLenum gltype; GLint num; GLint loc; @@ -3210,10 +3268,8 @@ namespace bgfx { namespace gl BX_CHECK(0 != m_id, "Failed to generate texture id."); GL_CHECK(glBindTexture(_target, m_id) ); - setSamplerState(_flags); - const TextureFormatInfo& tfi = s_textureFormat[_format]; - m_fmt = tfi.m_fmt; + m_fmt = tfi.m_fmt; m_type = tfi.m_type; const bool compressed = isCompressed(TextureFormat::Enum(_format) ); @@ -3222,11 +3278,13 @@ namespace bgfx { namespace gl if (decompress) { m_textureFormat = (uint8_t)TextureFormat::BGRA8; - const TextureFormatInfo& tfi = s_textureFormat[TextureFormat::BGRA8]; - m_fmt = tfi.m_fmt; - m_type = tfi.m_type; + const TextureFormatInfo& tfiBgra8 = s_textureFormat[TextureFormat::BGRA8]; + m_fmt = tfiBgra8.m_fmt; + m_type = tfiBgra8.m_type; } + setSamplerState(_flags); + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) && TextureFormat::BGRA8 == m_textureFormat && GL_RGBA == m_fmt @@ -3591,6 +3649,22 @@ namespace bgfx { namespace gl void TextureGL::setSamplerState(uint32_t _flags) { + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES < 30) + && !s_textureFilter[m_textureFormat]) + { + // Force point sampling when texture format doesn't support linear sampling. + _flags &= 0 + | BGFX_TEXTURE_MIN_MASK + | BGFX_TEXTURE_MAG_MASK + | BGFX_TEXTURE_MIP_MASK + ; + _flags |= 0 + | BGFX_TEXTURE_MIN_POINT + | BGFX_TEXTURE_MAG_POINT + | BGFX_TEXTURE_MIP_POINT + ; + } + const uint32_t flags = (0 != (BGFX_SAMPLER_DEFAULT_FLAGS & _flags) ? m_flags : _flags) & BGFX_TEXTURE_SAMPLER_BITS_MASK; if (flags != m_currentFlags) { @@ -3611,11 +3685,10 @@ namespace bgfx { namespace gl GL_CHECK(glTexParameteri(target, GL_TEXTURE_WRAP_R, s_textureAddress[(flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT]) ); } - const uint32_t mag = (flags&BGFX_TEXTURE_MAG_MASK)>>BGFX_TEXTURE_MAG_SHIFT; - const uint32_t min = (flags&BGFX_TEXTURE_MIN_MASK)>>BGFX_TEXTURE_MIN_SHIFT; - const uint32_t mip = (flags&BGFX_TEXTURE_MIP_MASK)>>BGFX_TEXTURE_MIP_SHIFT; - const GLenum minFilter = s_textureFilterMin[min][1 < numMips ? mip+1 : 0]; - GL_CHECK(glTexParameteri(target, GL_TEXTURE_MAG_FILTER, s_textureFilterMag[mag]) ); + GLenum magFilter; + GLenum minFilter; + getFilters(flags, 1 < numMips, magFilter, minFilter); + GL_CHECK(glTexParameteri(target, GL_TEXTURE_MAG_FILTER, magFilter) ); GL_CHECK(glTexParameteri(target, GL_TEXTURE_MIN_FILTER, minFilter) ); if (0 != (flags & (BGFX_TEXTURE_MIN_ANISOTROPIC|BGFX_TEXTURE_MAG_ANISOTROPIC) ) && 0.0f < s_renderGL->m_maxAnisotropy) @@ -4006,9 +4079,9 @@ namespace bgfx { namespace gl { for (uint32_t ii = 0, num = g_caps.maxFBAttachments; ii < num; ++ii) { - char temp[16]; - bx::snprintf(temp, BX_COUNTOF(temp), "gl_FragData[%d]", ii); - fragData = bx::uint32_max(fragData, NULL == strstr(code, temp) ? 0 : ii+1); + char tmpFragData[16]; + bx::snprintf(tmpFragData, BX_COUNTOF(tmpFragData), "gl_FragData[%d]", ii); + fragData = bx::uint32_max(fragData, NULL == strstr(code, tmpFragData) ? 0 : ii+1); } BGFX_FATAL(0 != fragData, Fatal::InvalidShader, "Unable to find and patch gl_FragData!"); @@ -4208,7 +4281,8 @@ namespace bgfx { namespace gl GL_CHECK(glGenFramebuffers(1, &m_fbo[1]) ); GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_fbo[1]) ); - for (uint32_t ii = 0, colorIdx = 0; ii < _num; ++ii) + colorIdx = 0; + for (uint32_t ii = 0; ii < _num; ++ii) { TextureHandle handle = _handles[ii]; if (isValid(handle) ) @@ -4356,7 +4430,8 @@ namespace bgfx { namespace gl int64_t captureElapsed = 0; if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) - && (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) ) ) + && (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) ) + && m_timerQuerySupport) { m_queries.begin(0, GL_TIME_ELAPSED); } @@ -4401,8 +4476,11 @@ namespace bgfx { namespace gl ; uint32_t blendFactor = 0; - const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0; - uint8_t primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT); + uint8_t primIndex; + { + const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0; + primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT); + } PrimInfo prim = s_primInfo[primIndex]; uint32_t baseVertex = 0; @@ -4421,6 +4499,7 @@ namespace bgfx { namespace gl uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {}; uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {}; uint32_t statsNumIndices = 0; + uint32_t statsKeyType[2] = {}; if (0 == (_render->m_debug&BGFX_DEBUG_IFH) ) { @@ -4435,6 +4514,8 @@ namespace bgfx { namespace gl for (int32_t item = 0, restartItem = numItems; item < numItems || restartItem < numItems;) { const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap); + statsKeyType[isCompute]++; + const bool viewChanged = 0 || key.m_view != view || item == numItems @@ -4794,16 +4875,15 @@ namespace bgfx { namespace gl && blendIndependentSupported ; - const uint32_t blend = uint32_t( (newFlags&BGFX_STATE_BLEND_MASK)>>BGFX_STATE_BLEND_SHIFT); - const uint32_t equation = uint32_t( (newFlags&BGFX_STATE_BLEND_EQUATION_MASK)>>BGFX_STATE_BLEND_EQUATION_SHIFT); + const uint32_t blend = uint32_t( (newFlags&BGFX_STATE_BLEND_MASK)>>BGFX_STATE_BLEND_SHIFT); + const uint32_t srcRGB = (blend )&0xf; + const uint32_t dstRGB = (blend>> 4)&0xf; + const uint32_t srcA = (blend>> 8)&0xf; + const uint32_t dstA = (blend>>12)&0xf; - const uint32_t srcRGB = (blend )&0xf; - const uint32_t dstRGB = (blend>> 4)&0xf; - const uint32_t srcA = (blend>> 8)&0xf; - const uint32_t dstA = (blend>>12)&0xf; - - const uint32_t equRGB = (equation )&0x7; - const uint32_t equA = (equation>>3)&0x7; + const uint32_t equ = uint32_t((newFlags&BGFX_STATE_BLEND_EQUATION_MASK)>>BGFX_STATE_BLEND_EQUATION_SHIFT); + const uint32_t equRGB = (equ )&0x7; + const uint32_t equA = (equ>>3)&0x7; const uint32_t numRt = getNumRt(); @@ -4985,7 +5065,6 @@ namespace bgfx { namespace gl currentVao = id; GL_CHECK(glBindVertexArray(id) ); - ProgramGL& program = m_program[programIdx]; program.add(hash); if (isValid(draw.m_vertexBuffer) ) @@ -5083,7 +5162,6 @@ namespace bgfx { namespace gl baseVertex = draw.m_startVertex; const VertexBufferGL& vb = m_vertexBuffers[draw.m_vertexBuffer.idx]; uint16_t decl = !isValid(vb.m_decl) ? draw.m_vertexDecl.idx : vb.m_decl.idx; - const ProgramGL& program = m_program[programIdx]; program.bindAttributes(m_vertexDecls[decl], draw.m_startVertex); if (isValid(draw.m_instanceDataBuffer) ) @@ -5189,11 +5267,14 @@ namespace bgfx { namespace gl if (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) ) { double elapsedGpuMs = 0.0; -#if BGFX_CONFIG_RENDERER_OPENGL - m_queries.end(GL_TIME_ELAPSED); - uint64_t elapsedGl = m_queries.getResult(0); - elapsedGpuMs = double(elapsedGl)/1e6; -#endif // BGFX_CONFIG_RENDERER_OPENGL + uint64_t elapsedGl = 0; + if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) + && m_timerQuerySupport) + { + m_queries.end(GL_TIME_ELAPSED); + elapsedGl = m_queries.getResult(0); + elapsedGpuMs = double(elapsedGl)/1e6; + } TextVideoMem& tvm = m_textVideoMem; @@ -5236,15 +5317,17 @@ namespace bgfx { namespace gl ); double elapsedCpuMs = double(elapsed)*toMs; - tvm.printf(10, pos++, 0x8e, " Draw calls: %4d / CPU %3.4f [ms] %c GPU %3.4f [ms]" + tvm.printf(10, pos++, 0x8e, " Submitted: %4d (draw %4d, compute %4d) / CPU %3.4f [ms] %c GPU %3.4f [ms]" , _render->m_num + , statsKeyType[0] + , statsKeyType[1] , elapsedCpuMs , elapsedCpuMs > elapsedGpuMs ? '>' : '<' , elapsedGpuMs ); for (uint32_t ii = 0; ii < BX_COUNTOF(s_primInfo); ++ii) { - tvm.printf(10, pos++, 0x8e, " %8s: %7d (#inst: %5d), submitted: %7d" + tvm.printf(10, pos++, 0x8e, " %9s: %7d (#inst: %5d), submitted: %7d" , s_primName[ii] , statsNumPrimsRendered[ii] , statsNumInstances[ii] @@ -5257,9 +5340,9 @@ namespace bgfx { namespace gl tvm.printf(tvm.m_width-27, 0, 0x1f, " [F11 - RenderDoc capture] "); } - tvm.printf(10, pos++, 0x8e, " Indices: %7d", statsNumIndices); - tvm.printf(10, pos++, 0x8e, " DVB size: %7d", _render->m_vboffset); - tvm.printf(10, pos++, 0x8e, " DIB size: %7d", _render->m_iboffset); + tvm.printf(10, pos++, 0x8e, " Indices: %7d", statsNumIndices); + tvm.printf(10, pos++, 0x8e, " DVB size: %7d", _render->m_vboffset); + tvm.printf(10, pos++, 0x8e, " DIB size: %7d", _render->m_iboffset); pos++; tvm.printf(10, pos++, 0x8e, " State cache: "); diff --git a/3rdparty/bgfx/src/renderer_gl.h b/3rdparty/bgfx/src/renderer_gl.h index 17cbdd7a80b..65dae432203 100644 --- a/3rdparty/bgfx/src/renderer_gl.h +++ b/3rdparty/bgfx/src/renderer_gl.h @@ -623,9 +623,9 @@ namespace bgfx { namespace gl BX_MACRO_BLOCK_BEGIN \ /*BX_TRACE(#_call);*/ \ _call; \ - GLenum err = glGetError(); \ - _check(0 == err, #_call "; GL error 0x%x: %s", err, glEnumName(err) ); \ - BX_UNUSED(err); \ + GLenum gl_err = glGetError(); \ + _check(0 == gl_err, #_call "; GL error 0x%x: %s", gl_err, glEnumName(gl_err) ); \ + BX_UNUSED(gl_err); \ BX_MACRO_BLOCK_END #define IGNORE_GL_ERROR_CHECK(...) BX_NOOP() diff --git a/3rdparty/bx/include/bx/platform.h b/3rdparty/bx/include/bx/platform.h index c3eda5f4123..08b31bf787f 100644 --- a/3rdparty/bx/include/bx/platform.h +++ b/3rdparty/bx/include/bx/platform.h @@ -218,7 +218,9 @@ BX_STRINGIZE(__clang_minor__) "." \ BX_STRINGIZE(__clang_patchlevel__) #elif BX_COMPILER_MSVC -# if BX_COMPILER_MSVC >= 1800 +# if BX_COMPILER_MSVC >= 1900 +# define BX_COMPILER_NAME "MSVC 14.0" +# elif BX_COMPILER_MSVC >= 1800 # define BX_COMPILER_NAME "MSVC 12.0" # elif BX_COMPILER_MSVC >= 1700 # define BX_COMPILER_NAME "MSVC 11.0" diff --git a/3rdparty/bx/include/bx/radixsort.h b/3rdparty/bx/include/bx/radixsort.h index 56c59f3ecc5..5f37a269c9d 100644 --- a/3rdparty/bx/include/bx/radixsort.h +++ b/3rdparty/bx/include/bx/radixsort.h @@ -30,14 +30,16 @@ namespace bx memset(histogram, 0, sizeof(uint16_t)*BX_RADIXSORT_HISTOGRAM_SIZE); bool sorted = true; - uint32_t key = keys[0]; - uint32_t prevKey = key; - for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key) { - key = keys[ii]; - uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK; - ++histogram[index]; - sorted &= prevKey <= key; + uint32_t key = keys[0]; + uint32_t prevKey = key; + for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key) + { + key = keys[ii]; + uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK; + ++histogram[index]; + sorted &= prevKey <= key; + } } if (sorted) @@ -101,14 +103,16 @@ done: memset(histogram, 0, sizeof(uint16_t)*BX_RADIXSORT_HISTOGRAM_SIZE); bool sorted = true; - uint64_t key = keys[0]; - uint64_t prevKey = key; - for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key) { - key = keys[ii]; - uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK; - ++histogram[index]; - sorted &= prevKey <= key; + uint64_t key = keys[0]; + uint64_t prevKey = key; + for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key) + { + key = keys[ii]; + uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK; + ++histogram[index]; + sorted &= prevKey <= key; + } } if (sorted) diff --git a/3rdparty/bx/scripts/toolchain.lua b/3rdparty/bx/scripts/toolchain.lua index 85f24e10746..4f6f58da00c 100644 --- a/3rdparty/bx/scripts/toolchain.lua +++ b/3rdparty/bx/scripts/toolchain.lua @@ -494,7 +494,7 @@ function toolchain(_buildDir, _libDir) } buildoptions_cpp { "-std=c++0x", - } + } links { "rt", "dl", @@ -558,7 +558,6 @@ function toolchain(_buildDir, _libDir) } buildoptions { "-fPIC", - "-std=c++0x", "-no-canonical-prefixes", "-Wa,--noexecstack", "-fstack-protector", @@ -567,6 +566,9 @@ function toolchain(_buildDir, _libDir) "-Wunused-value", "-Wundef", } + buildoptions_cpp { + "-std=c++0x", + } linkoptions { "-no-canonical-prefixes", "-Wl,--no-undefined", @@ -670,7 +672,6 @@ function toolchain(_buildDir, _libDir) configuration { "nacl or nacl-arm or pnacl" } buildoptions { - "-std=c++0x", "-U__STRICT_ANSI__", -- strcasecmp, setenv, unsetenv,... "-fno-stack-protector", "-fdiagnostics-show-option", @@ -679,6 +680,9 @@ function toolchain(_buildDir, _libDir) "-Wunused-value", "-Wundef", } + buildoptions_cpp { + "-std=c++0x", + } includedirs { "$(NACL_SDK_ROOT)/include", path.join(bxDir, "include/compat/nacl"), @@ -831,11 +835,13 @@ function toolchain(_buildDir, _libDir) libdirs { path.join(_libDir, "lib/qnx-arm") } -- includedirs { path.join(bxDir, "include/compat/qnx") } buildoptions { - "-std=c++0x", "-Wno-psabi", -- note: the mangling of 'va_list' has changed in GCC 4.4.0 "-Wunused-value", "-Wundef", } + buildoptions_cpp { + "-std=c++0x", + } configuration { "rpi" } targetdir (path.join(_buildDir, "rpi/bin")) diff --git a/3rdparty/bx/tools/bin/darwin/genie b/3rdparty/bx/tools/bin/darwin/genie index 3790b49e895920e828bf790cbc52339309a4cbf7..def737c88d05e592b29e7586cc2a9b6a092f30d4 100644 GIT binary patch delta 137113 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 K%GF>RL;pXj^+l}! delta 120285 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 ZFIu%s=)XDn>9ka$M62`Bf~Qj@=|2<^^uz!F diff --git a/3rdparty/bx/tools/bin/linux/genie b/3rdparty/bx/tools/bin/linux/genie index d151ac982c36068e44baa52205af2970af23bcf5..7fee21357306b5bc0d0225ba9c139609ced41b26 100644 GIT binary patch delta 136400 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⪚NY|Rjjq5uz|6`0?5JbcBdV`}Qfn@A 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 delta 124277 zcmcG%4O~>!_BVb8Mi~*9QBg@viBLgJL9HM&XJn8w3W_3XzNChbr6$RYZ>a|wD38;0 zt<&qhx3aqT_FiUXN;UGLpx$24%B*gIW_6BZLRv_c&i}ji*#oD3zvurv&*$@d#)dg- z?YFhpT6^ua*WUY7^KSo^FZ*pz=zX_n7wDt^6@(@KdT_+Q94ohXW7zPoAS5!_gumVK zZF^ErZ+o(s;lscAQ4AE;E4@q!y`IuDS)S4}S)NjEFx`^0yoZin-Xoi34*#Bt*UO%Y zSE@}jdi|FclmQWUTv4`a*{ubhJANuSJVF@#-R2hq(c?3`D7Qv=G9uyXv}cDVME0n# zC`&6^QkLGCZ8zs{O-c^*8&a9LW!i{uYKG-6RE|enC0Y8N=pJE8o3~v^+z_!uD4%st zFH6Rp=qn@Am5fS3h{*1qGBt6uE9vhsO>b4ji$vENojAdbUk|?PIJ_Re8}QwT?-qP3 z@Vy6L<7X=X8Q*RA-j8qU1Nie7d>_R3A$%Xfmp+f;`xw4|B>bgjFW`F--{0}2&n0|A^Z;!!;TwT( zH+;L}+XLU8_{QNI{`BV0eel~K-vpDOoHq}>VmO{t@Ew6KeMaK<8hl49>D^vePIXHg zlyc?$gOaL>7oY!a!OF3>e)XgE&ad*G$yxpMma87jQ_{MNDK{2Y-z0n9c(N$z{qtYk zHE+iFdi zcMnatVr9z%kG*&A6`$J6ru6u6!vp6%F-H&0`^$#$Z|7_n|84w`-ikSDyg94aOXC%L z)F|!il9FWk2*YwHD9R@PVQJ$++( zKlq@!;HLwbAMM*;_d?8|GTYdN!?Sy)4&K-D`P<5SQKGr-%OP=!+2S;rlm{*SO@3u5 z{yxl}*DAGm{)PTNX8)?2S&5I1H_afhn=M)pdMigveUywI38r^=#$M6=O*gU%7Ah4z z`kV6Da}}$smOa)7A3RI=OEvAiwQT$bZ+EKOs7 zTiD+>+21c%t!XSzE^G65hRJ2A(G34Gdv0QQRr#ss7}I&>ndtsXeoTVtX_jLO`}-N? zP>#nXn3k{-pRy8Vtkz_fqdUVNW6$5P)P4+8q`c81fx#a!_=s{Oc8qBjl~hV&6HFHv zb~np$iakHUYVEB&7&pfBF2g^_YQ34Io@JQ%EYI`o`9Cc6euinIJj&zN1k>vbE7M=) zg`NpY3vjoy8kVz^zAXO$_Iw?C&S1~~Vt=1d-moUHr^Ct-+Za=$V(K-oxzLfFWMJ^JYnucy`nHDW^hX1+oI!_Pyu`-jxQdg97u}|puVI2Q7$5&M8cs6|??H}lX)LZB&B--sftNwE>FEEPBERm<~;XS*1uU-*U zhkatW4s9&c@mU=IE7u8ot&T6|_!*pYgFO!FzaSLwgl)WmzjK|K&+#{M{L`6wMfY+1 zWKL)b=g=ySPv8xEyn6nyXf~Myp_g!lApTP)#lrZHLMGmWRoCeS?&lTV%PIX=rH%*Z z+2=Qo|2Rj-zsd2B^M)Vc1P$l-y~R z!OS`FO^Kah?&A2-9RKpYdVc+{Ah2`*=pZ$evzO?rtI6jx-hoK%e{=%&Ofmie;m+>-Qz!t0b zY%SLbFou0*^87b)mR`m2&+`VJ;hdPw@ymI~_Rg_0%q-ph3BtpirTKqi>C3!Ukli35j9(ND)pC*IBTzkWl%0IahCC}9> z`jl66fa}Cvf8xYdJpZJh_56>cL-bk3@rSwT4RhivUe7q`M!jdZ>iLB`xK_Ww4a;zj z{|oO~GiP-?$G^#SV&4?K9*yG{g4H%yy0DURv=GBZ@ID_+(iom{ls9~zq*t_<<6AlF z{&T_3FgA|Q=MCS_rcpr%6ZAdDU&*KGD|!A1-s3Sh>GhA)@sjX5Z}SVp5Asqh}&wmB4=O&IH!wI^~2}W!ELL967rX--c#m)A_(Qz@!F-PJ15fP>seF77<4W`dFE9fv z?IlZud_Nn%(+r7vcp_7H}L!qnbAHCzk5WTMd608 z<2^8O1CqlFoa6ZWxdjY!;#S_kqufpu^8BChxub|{dw-5k?x7F+g%wn=i|HpB9$I7`q7|xY_(^?%bGXA5oMLgjZ?p6=w z4ODR1pXcMgFUOa0LWlE7-oc@qk$7DZqV`J+0V{(;Fw ziq3Ejg;z*@IOq0zqn}}KVNUSf){Y`0&$P% z1%`3_6i(<7K3wnT_;N1ezM@`F3CG8A!}TN=SscedA@PP!a$7x!Ck){DAh&3F9ItZG z#L?t|&vcG=a@o%nBVSczWc zJzm4-`>0u!>hSiWeBiMKJd# zJHyQ9_%cq=0Z!0u96y~aS1IQxREK?r@==h)l~ETZ#$Pp07{OV+k{39{S#*X^mzy|V z;{c2-2Ztr)$)$rQm%_^C(nN!wM+hg?ru9nxp~55-msbb0by3J<_%kT z55o9l-eYO6-oRL1&kl~SzFx^iH9u`1X~;%4NmtONFA< zWy^)K+wWX1l&oC6dW}$a*BZBgJj;dB)$4?%NETMDURENMtfAa1Z@;x@blK|B*9j#h zD?L=wy{4#igYws*sXfcqEWLA?P_nwT_)ev1=sFvcO5C@vDi&6)D03IDDpeK@yLZ&$ z#kZHOF3QYYTvArF^iEV;>T#C|B}FS&mm%ZQl`B^l2_^1g{9ZR+={r1Y4BDj{g;G6B z$+|VSyNijMrOSjh#dj`6{fif`DqaOD78fmFp*%Ib-({d3GhB>oBPZ#VXr;7CEo z>wk4j_s&!!R?lfxo*8@9>L}#UYYLZ-6fC@^t~!lrRD!;dLJ#(ro~Q;hE2aOX90G&G zby!XGd2M_`q(vxD4vilo6~K_t$AnF%Q~0$p z2>T`vJ_^0>AuL8Z;oMi;4*iW1?%;6z?YHBpyReqS{TbX%DCe+e0OgMqsD3Knhowgd z+W^z2<7qa_NNlewy!fDm@cd1d>qSEFPdIo)_y@yC{Dv2=gn!3?PuRg4V9YTY@QDU| zM0g^i^b|t^aXI`+GvG0_J3ko)JT)Hv*bR8Fu=67t@FX$zAx9+NkO1r2`I%?H!)SGW zmKgA`S)HHd27K5$QevqA&$-XatOuUjXDkX&jRcn)3RnrjKU)p>u%1xTb_2dwI5U19 zH{in#E+y~i!b?IQLxC5%5;|A5l)Te`54+-o-($e{BLx4{81Ui62PGXe;C26#^`4F zPc-0d2K-e9e1ZX=WWXnKyhNIKwILzJP$1cWPcz_$8t@qg{4fLFZom&W;6(#IB^-#N z^n61?s-eI<1Ac@7zr=taX}~Wx;KR-gC6^lT*L3EG{MQ>2Mt3G)6d3Sh4EU`Ee3}8j z-GEOw;2$^O!#)Bf?;t$sABiBmx}k&@3k8}Jzh{1gM;Zoual@M0KG z{TB@h`QZfMTn79+1AeLjzr=u_X235u;ByW5QUg8@c%A=vSZ_!OuWqPZxd9(ucoKfA z0iRC@{@HH8&kQ5+`?vu=s|zm)I}8a0T?xVq27Gu0OUXM8_;A39@OupSIfUS!8UucA z7>VD543GZP@Cz@uD80#0;ATSb&v65Oei(`076U%K2SCZH0l(0Yzs-QZrIY{2&|yee zY$zb`MI;fr#DKRL@JkJNn*o2T0iR&N7jZmmKhcn|%upc3fY--~o|tC9ml*PA81Tyt zc)J0Ay8$mgSFHD+dUl5)A>UA7g#ka$fM03AFEQX(8Su*u_&W{w(oQ_uUu{TO-pv*E5B#twU01=zjdQ4zc5jV8$D* zC4`SOw3-m)plVHo7`lsK3Q}n`41S4V)GBB@8T>54 z;B5pGgSAoy-$Ss4;3a^i(9n&9=s}2lmSGLSg2M|ndp|+jDy$L3FP%CF}G{NKsYNZU0Aeh`gZOLV{9~ye`79hy& z)ACt{a|DySr`Z{NnqYGCv@`~vB$(VgEs?=r5=?HLW@GSCg2|iH1O^`_cnHC5m#Dou zf)fdDkr<+y5ahOLO$^>eFu7}54TE1I_-cZ8GWc17$ve|_F!-+o4<&dzgC8Q8yfLku z!P^KPPH-uM?;$vaU}*_MY$QY~A@Ui#hG6oxG&_UuAeg)?Esepq5=`EemdN1w1d~^# z*%&;FU~;B3fx%M=CMQa3`<*y2nP76BB&~%ZZXg7COxUTm%F;Jz744&k;<{ zj%H`@X@beg(b5=vl3;Rfv_uAfNiaDznvKCn2_|1g6BvA$;7J6x{l;{FU^~sfS_?x| z6M~!;t%gTa3#n0yj#JA)r0n0yhfoWa`&&LOyz z!S@i%HbS%|46%_AF3OP4;57tKCD_j3I|wEpLrY`utpt;Ap(QeSKEdQuXf_7VBA8qW zO_N^pw%#V1i|DYXge94L@>Dq+71Q} zAedYNZ99W|6HKmvR?gsPg2@HYN*NphSXxd~zqW)SE-pj{n)0=L2A?CCrh3iJ;L`-t z6tAT*_$0wJwQGqC{*vHD1lt&Vl;B$k78rb(;Kc;D{mOJ;;ZR9fzJw4h3{g!PXe!s5 z7`%&Mn!>dj2ERmb5y3kd{4BvVV{1DY{8xf$rq;GI_#uL6hStg%yp7=72rgytJquR? zLDP}8gdsLkhT93wXYd+=?;zOD;5!IjL2w#_ZzY&!Vl9!u^9iOIShE2x6y?tfMESRT zQ7*8lKdyQxXRxG#e8(Jze9Tekl79&h_Z+ib@&|?KKNg6-91+>YMmx<io1&Z`_xY zAo`YPh`uOazO=mRsJnMy4zh@HYkG}Z3=MV3HGw;Hj8oQf<&(hY0WbRQP7vh=)xS%x z`w~(5b78?uwIYO6xn7hT)uAuaW3%dsMn%5y$#|9zs8&pffwLb|E6wUB*P4W?A3ZkI z+{Y=OB^2#U$Oq_Y#p}v+aquGAo)Q~t>CBec*hm{0>MKy1pG!tthg1?bgzbBBu*p{_ zUPBQw(c2Lx%HOSvSX94<63P4cdC@*f3bj~=loM_bK`g&=SWL}kX(xGF`NVXHO7Qf8 zjJ{L1KpPh|bQ=tm>3lsoDx!Ddp4rIY9^6@deBnOfDJ8>|7~x#6%y*59FFZ#*Z&cqy zY3g-@`cAs?glmYD#1bHuMwh%_J+=oz+I01oe^jP{^0!y%gad;=L5>84b1s zPEo(*=JXo-+YxH7G!rx!J)o3OI7PiU#v}wc$)|JW6M^1!JpcRTDyhwsv^4!_dOIqa zr=A&W5&}*=%lps~K^=_@qR*W?kErm2iU7?^1jLR9Fjdd1Mj_id(K^DJoJMIgj2Taj zQ~ok_aO5>V3Chl?@gpwaoU|yP4$KHsqK-r1Jw#5hcYqqD8kV6eiqx7QecC1n=|{nj z0Og>hI$+R2QLYWF*6R@E1JJxL&}jNm??;Tfp`)mkM)f}M3{1R=3f{q6UfZ&!aOGN{S<^^UpeM;Q}batOn{&@r2a&24CIUn1-O0rmF_ z)=(%wP60+D29t_Yy}8A)J1@|nX%yuwn_8_z<|SY8$azT0cehPl_%n&@n_L-xBh?Y3 z6?@(Qsd)rRHiJfERR|vV8uWwZ{^A^aNKl*T0em}%-}IUV^#xoyzp2l$vZWTJir$7k z>d}#5p4At!Ok_aBiZhRcNOdjCEW+Q(oqAgXKHht>&y(p}+4SX!*e500UrXNxl{Rq7|1SD4* z5|!&mL5Z8;lqB#Yy}haijo7UZH>m01ih>d8H6)ZjRHi<41~%yujD${;~wZCQ+%*PnWiUC4qfTu3F!b~<=wF2lg0{?(|2R`80 zp3<{9lg*Uxhv9~Nn<(EGJm1=IKGGj`pE2KT%6IZ(XD*o9tWHNpGCno}9L9F9K|b%M z&f$LRS2QB44z8wM7gz!Nbg35s>jYU`F%Zf5Y;Y{)bRCQ#09 zNTfQZ60j1*2-r$MkcOn(JSOlrf@blgF9Gznj(?jY@ASuv>3V>5nQM;?CAY8iK2C91;gQ)>?n7#w|_RUivzo$=AnPzg# znt%*$+-g}l7CkA&b>0C+t14JxmUWrC%XaD0A;TW#DERz4N$<~ zq(BBn_`V7Fqh9{8GYfp)TAkJ4fuN4pm@vrCdqTNs-pB~?6J^D`ZKIcx9rM4Hd=F!5 ztNLLgpW}#qF92z@F+VF;-<&*k)&LB`%mdcHbb}WMB$pScN%%kAGnJ8Z>KrAyu%}0$;8O$9ioG-0Xl9~=NV46x1tW~fP zVUD$`WvE|6=LGdZJV7QR>{$wTRp8T+4U9TDmPy8MzwGTuTHCwYPZNhePFvM}|3P(6 z14DwF1U9(*gUs6^mD5jMDXG_EMCJN2th*x}?dBYdwem@jZk=0$p<~^B(9!OkVY0Zp zdDXNaX7t?TgmczjPRyb9Q{bi#u;`;n1t_0+t5?0=nc22^@HvNd#7APN{+#vZTKED7 z!;p$)-xcx>PL4^z_HieZ3aQLVNH`mx7% zd*VYM0v3yYQIkB=dhv|x%1>PDgMGJT}zv($+ztOdpgsqO_01Ys8m=SotFVkne%q*B(opI8itK0Xr zp}Oykz$Rl2j|~pjU>HEf;JH^dgH~wZUL$MDztC$XR;hcs2Gs6JkO3boT`Pvw#%6ET zfokfXPW|I(28_aZJUK{Nxnz*^c06SL`nSw$a6s5muq4jRAFY3R7G=Vd6R6jt0{7yH z&D_;Q4Xcs_P)QRhxpTaLHvw=}4aS?NSKuf*gG}()n?J|WbFKH1Y0E&-7n?9;s8C(p zSlIfOZ_o}%dAGZX+b>&iK;^& zj`VR3t3jPdbrETl`)1I>n3CSk3K4ETw1hKb5t3n(#Tz;NE`vR>fh#`MeYH1^=>jGV zS3d$_H=_nx>kwkWB5g2~7#P-fwOb!$>8%5#S*#^>B?KI%gBD&#agRC-s}uExQ>uR4 zlB|pGU!QelS05l2g!%C+=6(u2pt)*1I%e-}`OGO)-vkm_eY#&2Lh;K1XZPxtb?J5N9(pFZBJ9)7;<%#-nRNT@Wo%sn`J(@ z-mv<6xYDW`z0z0VYqK76t@ok^WlDF}Bg(sq2JGmV(2#)CXcWo!syP66}jc@d^33d72uiSjv#C6h4J zM_84fDU2}Afo8P>rY8L;cdkZ3gqa*>@Iqvr@WmE=NX4o7`V7dlPY5#4u( zAqX#N23kp-mB*G1NsYkZ#Om}FVjlPS$c23z-3pH*7smUSR;78_U}-tf%v|QlD%@Y* z?I_G)L09$bR7Y4pZ$i#$+I$W7h-!TT28bCO;zLoKNkBD-VWMBB&^~^I0W+qtq$mUCh7?G z{-e5Vg?U39u)nmns}ze^y&6l-uc#B^gjIr4^_-7tpiS=&W(wrk^Y(nmMqgv98{i^v z`}PVVJzYa3A36;Z5VUEoekaT+gtg4NQKltF>JO4rSdd<$z0<_VUZ5qQc}F2dz2Gv@ zz5q=OOkqF5_%}wwh`rThbxDYj81?jbl+Kk;hiY^=*{zQpP%Gg7RMq%bt`a=`8IwoS z5RuR7{FAh`hz3*Hfn?yroF0gZ7^e~K(jy;i4g)oT<9pje>eoK6%L$NZaP4pC33 z8ufXM4dj8W?Z;s4ZaKlaSWWx!fe(;N?Tr>Cs>Oi?zFx-NX?Ask2*(_*Y>rLzt;QzC zO}@33?5aaDMJ)l2_06)#`3a&w9}(+PM3@SYua_w2C;Db0A;r@VNp?cJd`QhtbNKRs zN6D;2(N|`3%7?{;h;qPxHnX6`HZf@rO(o9MgW}_2ZHw7^!X&0PsF$$S=Y&^nM&s^b zC~jlH3)J4`N>y_svk-!%w)5M3_70b9bI5iJspw;_&rC_?#vGII*y_(rea)}Y)7H;S zS0;Z04((&QifnQRXR<>+DEemD*r=`uJ@&vc)5wvIxw-x=36440>FwAy@_ra{%+B@S zmVl5lc!D->!Pd%UT0unpN9lgMOM+De&wM!+Z%3qiqPNAG{uO!H*NMJKqWlYUr9|I4 zo9Jy!P!}T51@#`l+ytfQh!-K-=jS-gMz1x!Qk?s(E zeR5^YWuJ>Oygb#k6qCq$3r0vIvt#bTE?<;O&K4ZtkweaAg3|fVRw|-zqm82JU$o~$ zn>?S0zU&0pbKiEXq6KwIHpr&1LW3tI_zszgZ>Tr(fTlKpmpr!W=|7R{!cxASZ4!J_ zED(dYqq}FQ&dx7UhFWB{@FxeGmK}?zb+#ez2z}s&f}hu}!6*uR1XdzHeB8SWU>fGS zK5vEtX3 zZ=8Z>a;|)i8}{FCRpzW1>_VJYP$xUXoh7MQJa-4*2J1xGM4Xcy7Dt0KIa+YE=UD94 z%736mq_*38L|Q8!Bf8q1$vw=<-W3B!Moc1MpAGvf>hD>d?CRte3lrT}poCTolpKq4 z<)8B84urQDQ=$+xa)dr4ru?EE!^jCVGp3N^pEL_~cg_ZUt?80~XG{U-Mfnp91W#Y@ zMrf%OT8c14iFI^$>ti)R7ZZ!wGsu^vOUUf$CHlrmqHnXH($R%lbx3gNUTkNAdkW_O^k7lS;@xxrp{mA6j}LlceYggricn{3$GdVvYMBKGBjn&EolcI;O@t za9Z69wF5am7{mF>Bddoogwu2Vcegm+L&t^Sm7=cz^lY>V9u3=xEoe>7QiF$GrUpl7e|F}XO~c8u zVc?@e(Z3U(wxCW#_w$NACExUD-imW=F4H%`DKyx*!lu&jZ>*)=V^^-X)s~z3ljyVC z#LR`A({C_@Gu<|qnd zf)A}3(-rNmMCnUxuu-fK3WixlS3ptz5GMB%nA|j)*5FDwlVj8eFJQ8w;6#HHiXP*> zfzlF*5$p669euUKzy2b|odt_jTX(hR5LnAb#0zQm1*(@hIe0a62kUeqL_+Z^*%r75 zMn@m^t?GU-8FnvC?}_7>d|`;@Epl$rdQToX2H=Z1Y5QSK+ZrdTwr!CCI?^dEg<2b`eZ zp+k`Bo;UxggREu*mF!Uy)MI)cK06mGsG` z{)EUrsf^80{=M0Km*|Vc?mpxSS-|a;J4D}_1Thu7>WJ`*V9DeZXdgOTbi^0G9UI|C zAt`hyFGbA!cTbZSAiSV$mU=bL;Q4Tb^0x?$1|oyxooAcFQ+Mo4{$fx7jJ4 zYlz6G#_W8uFrs%whPixNQaSVRz+Ra3R#E|Yb?SrH2?FC;Hb#P6=cql~9U2HVYj;US z4e-QVwLh4>7l%#rFPtb?@B1e$7m`0q_!4KApfD~dOrA*%#sG*TAUD#S>>{y5I(&8u zTt%%6CH^Q6pHQoI*PV6|*@Fd6xu!A8LZqTfM@0+ifgEWSD>G15J7K|?qlC~w(OYk8 z%<4c!!Qt%)dCqA4kb|Q67Rr%VR5R7*tVv|LK+A|epg~(7Qp!E?Qg6|BV>0?xLu5|% z$46lTsAvhHRYFYj&+Z0M!661=K4&B9D76L0f+Mx3y&G2wYc^J607168$gjURK*FsiW8_pWBt2O zBcM|EeU4`kz_d7WE%fNOesJE*>WS)4Q)DVTjQW| z5c&_q4fR9#BW!&f>6AO1J=&la+329P@^>6WbIKt#^9uUC;J_~7X!iK4T$f7$fL8To zoUznCW%(Mw&p1>o)_xD}o^^n;63Gkh5DW|4D>*B{-4~0aKM<`sp-g|)32h9JObz<~ z7d40$iNx zgoe3|WBNLfvRUVLt64}v`d*P3o#Y2;_rq&;(ChzT{cwzmt)`d44btwU1k{6tfuy&N z$$}y~INfSZs|g+U^hmF9cr$1XBvW;uQP6JUrSzIQ4WF6@=S~}hM5kO&1Dx!KZozAV z{ar;hj@08~?YCwzRO9fMn#h;QBdeY(7uwYE5^N7mLuuF|b(s)fh;+$OSk*b?9P&64 zMDO|pVN0URpJQ`nHlu3MIvIxuvTf=U<8X+EEG$86s?;997|q6!mO*-rvOX72^}93L z)R|=v7_!6VQR5sH*z_k)y+%SmBJxb|OSC0$Fr9J(?9+t?W-#IqR%s_&B}R@<4#KK1 zfD9K^@!wmOcxF|)#y9mey~elElDWlVt!iYlXjL^FV1q03NR3t6U8C&+mg&;}$&B{D zXm`BPwzK&T9y87x1n2$#*DM((%m0h2A3@dF5O?=)xcg({k95y{ zb=py^XRq{5fJ)W{d&4bbE8JZsPY=R9QU^D{d(u>S)Lk6Rh2H|@rex#PHJ;4&T0g?36# zS|qaZ_hvea7sfe44c4k%=(zSeBHjozB|6G;latKaR)GIq9q?><6{V~SYt>p-a1~tc zMQ|01vEYczgD*v1x6``2bUkxF2y#i#;k-ysns@yYVN0wF$9>XhX6}iO;Y5i)KGKzW zY;AwhhX*-6$~QX_!*6yJ!g@8fU`wvt;Yw{5Q;)kMv(sE~s?%~KHzQ)Y86n~9j64~> z86(|JX&Je4aiVqrgPQfhrt?99W9N))qk-B<6r%+PY?zO5&uX$!j6p#h>7~F|5;bH9S&D@eqjNW@(}!CVbfZJTCW+a2J+pc#K_tx8R0jbyEy zsgo2p)o-pc3mqY*ZU$qC$E>u*tPEy2laU#r(8yeWSt1>p24T(ma^f}E4J-nfA@M{7 z`eLOU9Ok_{ArgnY{CBf8EZn=x>b=H%u~Og$wj^#<4@|@=`R>~HP{soh$k)=%N`eWtG2_8g#?yI zp1yx>7E@kpcSq>sT;I6t6``@&rpD|ETQasJIOU5hO3hbXX>5l91|CyRc4{NDI;P_w zx#}y);g27(WeVGTLs**~EwZT(xQKr!&~CTb-SEt9|fOnu+zB^q*!u+!M+5FGe-?#Ob~pYh1n=b_9O%^L#lOl87A_G-R#Z0V9zs z*I~s--~;ynEZ=Amth?9raQEPDaS&!{{CUy07K3F|ZKCL{vtjNOGuPSNhqT3HWy%p} zabSq|uvXp&m`zbKVr2`HQ!qQxK1?D-?i17pS5OycOUVhe+me{;Lkq7@BP7_B$@z%_(-4IWRcyG zmY_vybmEOQ_=M`1O>6RH=Q{R*a{^)w+EyZ7?unr_1sJUdR?@JL)KkVuVrzo>{q3|J zKs=P!Ct#prCCv+9BO7c@&~{-#;_{i#GyZB%(gN5^n=S~GNo;4Lo^}}27jV*+w)C() zxj=5v?twAKPK^9%cpFAOhE&yqbNiV427#bJ{#Q=HokZB@FB8@S;Wn#F*oj?Fyq;$j z@{r`l{0tv)9l}-In!bj5oU#NEcD7lKPD7}(!?X@V0sFhCfgCcpYuE=hvlcy9=tns& z98>!vxq1K*unm<5pJkP@TIRD#TY`P~b_7Fa1L-{&qW=Du+Yid2zx0&?=g@K5_&MO| zUHwl~sfRs4$k%TmB{QgRYsTTwiW{72RbN8%2h)6aO#GR_k!;(Ijs>);YvB1+)oh8; zx612?IsvQ6(oL>2oV zM+R(-G2x{C!i0kZSU-W0Z1)yNjJmeuDO0}M{cV;@9gF!Bm7+(iE9$Fg-^h~QX9Okq zz#ysZUb~?FhA^`ph}XAe=L9~dUEqqJ!gZ+g&d}poSaT4%3o#1pNjUhiq<`yO8{WyY zYhOpVpkvTn=mko49wOKZw(;XLEz7os1T>DG0^LN6k#I zsf-f&z=py4p^RE|q_gGGXqmAoIH;4f9mv3nLW$y#F8Q-fbmOCd@ewrOI8TAjXl!h^ zK}_nFnl9$ZpULMs$<0@nU(maQ6IV1~afDzFFpk2m6D9m$v2({<)`{>1Cvb+JQ+Nm~ z0;WivLOt;odPBYmDyE}kvml}>_%&f#)aR=)@MFVS)CtI+c>v>DT7&*KI8x8T;l$EN z8lWHUL1*c34~6jA{@}V-iExarX7!NDhTZ2*|7KHH*AS&vheNOqzw;U)%O5|6?kjX& zRCD13U=O4QTbyzmzdjVMyIyk4F$jy@ll$v?f9b&?*D0S?*GMotT^&&eLG_&SkHJq! zQ2o*4z(arFhPLVzU2a@#XCPvoQ&Mn4JiAX-6AMU@G%$t5NZUR}(8Z$P> z*Z`Hl)UUxDob+>s2~*dgm*G*w>QSrEPG@pFG2xQQ-N!)qGGqvS7*zjo-6S|{>N997 z_?gGba?#*xRu5AiI#Qt?-u2j`;iiF7!Q0I6Q(wYE02|LV2jh$)=@ao1`%*UbqaPR( z2Vf?LKfq4>VASiU4HjxPou#aZT8^xK4`a0lj}B~G!Ix@Qmjlp`s&UJtAJ0@vAWfu0 zTIw|1PrxHn2l#F=YTozQ48a36%O=$DR*M7ohjmfYNd-sd8LNLWiw$;}s^Zo^X!{(1 zXrnqjRrIBocF^KkKFtqpuEAC)EC+2#61_*i1M%|N?9}fa*fp|N;#Gj?jCs^vVoX>+ zpSXbdE*(hjfT|k}r3#q#V8YEkj|VK56Ze(Le{3qn|XLs5H*bSV31y?22$*4ZZFNDwzYqo#2 z!LFZHlm0~02{sA3a~zpJZn6e`>>M{kU+5af>Jz6Z9?%-xm7V!L)VnKJ=y^k~GWuUP z!4nQsjo5(t7N&P%TUZEXtU1q~?98*9ZwVkW&qQ+r3OeDM#u$rkKv5$PZr5RM%pYfA zxzlubAOD@qtaJEtq=?OfA$u&JFh2wbpncAWmB_43L}T)4+H}HJZL@kGDA69rALwF2 zc(mX)f?@vE-HJw7kT6|p#9J@|%z&im;~uIqmoktNNmTFM=nE#`-nwr^Xu^7t2fzA= z%KP>YcK9;bFdql~{^&@w!@)oaI1*`J!;!dZPp2bMAo>>LTmUV6vEezNU7up7rFw*q zOD#~MpPV7Jpq#0x-W%$^Zj~HDRJbXWd}#-eh$kEgA}YM_NDu+zn~wy|h!7t^hB{p4 zxTTgxAlBhHAcem%$?9)!vB+^uG8XJW62J6YA`6>X8EyU>EJN(AQ_OVhqaIgL>LCr2 z_;`DHV)twz!fp2FfRK+9{W&kPlQ4K$04x!9qeohIZx;MHomp+};i$XYgL!5FFE>E@ z=45pj1V`KYju72Y9SQ2Ohqs^Y(_?3w-j>jYlS=HY6PqkRe~LQyO$nlfJ&3{y%3~N# zf%C{jqPXczmSC;i1guDFAlhGtoCN&F&@UlbJSSnB&AR(=d&O1ggaubou~@}8O9*~j ze(@R)tzGpK6*|%elU{ytq{qUuNeQ%YOeoJtb6da>4M#zRZTTke$>#El^E^KSMYbFV zH#Xr$4z7u?TGSTU2wrZqr@uZYupGQ?bssX|&QXluiNcRXa6h-gooxACzu1G*iZ&VG zwqD+o657f4tP}kXtb{^4&W8x>WBI3=R@6kZ{MJBkzth$f{8FyF@MTrVnq6mVLu&|eOK6iCw&C85 zek&-)$@GIZJ=Kw~lIf%V(fp&n2T;re+aYqCGpd}**#Q3A+VA-z|82qV5TX$?kLxFg zppPl~_=Vr;!dBfJ7mTi>FxD{}65*@QPn5Q2;-$b)NEg@S)etpDhcR$rv@nf!sI8SB zkUFGd9er_(6w3xGExn?#P{gTOJ${gzdQlyP(dw`U3Qgq~msu+@tOco0`Ng5u%7rLj zezC}1qLr|xQfsA&J(RiQ$}g5!t7b?5+5U>JkN09)S*+aTt+R-cSvI*(Fb0t<3qn$e z0v3RIX?xnCt~lz3V@;yf*#;@d7xY`>{+S`|H#GadtHj5bY+$ilCnv5#5wR=x@kRz{dfN9Z{q^JpNUNBGy zJaAeM3H+1hcWdAh8`pFQau*_64)6YmJpbkhtq*As6Xy_!lM0F@w3JR@pT&6IRULw3-eri~fSy zj=gEku!ehJG$Z%g&@xpfU4d91cA|qKY`E0z7m;0h!MPMN@ffF0)Scjhlh5{q%50fa zES~Ljz738hj(4hOJ|%C59rd(Ux>0qo1cbPXK1QSpCv+T{U{aZFbG&Fe<_I-XV6V}c z&TJ|j^DD%i@B@0-vJFQBZt)e;839MgnLNHd8xcxe%PJIDh_Y9E76Nv7TLF$QUQiq9 z>Ig=+Q&tV^rFf)Rbj)Yoj^HGY!6NS55yA}POf%I}n)2ZD{Ue)xbt*4EKiV`%`SSVk z_-lP3!!%G4U&xM`oY}A`^70I4z4xZ>$`dc#n3Pa^afs-T*(x`sx1~10OE3vrtog8C z34t5HNgR+>F1%1FrI73F8{=D-=8&84q8r50vgc)Hr8H)x;W@Nv1O_nF!-FH|h4UPH z3z-n$UPyb*qB@QA>&(vmL>3+@O~Wm>sP5<)p|tqm&UZrI`|x1uw1XodT`$uS)|``x{7|FgHbM zeyLyY{^cQwF9;HRtJ4~D(v+x|vtv^xC zML52NNSJkZj?>hD)0NiU`5QBjZ5dc``B(Ha%(+FxIe8&oTfMb(V?CB1)KI?KfadMO z3a3)_N}{w4?kPDF@CbA(?LCu70>th{4O2@CCgcRR*z(QGU>MuRKGwO1*eTsw>)+@s zYGsW(FV|ND)yK3~O)7`!#D#nFm{#znlq+%bz$KfLahROqY(Tc^hsqr?<|ptEUX;JI zO%1_A#IYrtjpihl@0c27xc!Nwd-cBV-i{a#&i6-&Mbj;zy4sU*6({N35QTzCeSD^& zp-JVT9(8iBdT&RpCmUHQ8+M;Wh--=^*Ke+H_=KTQ384qp7|NJeV+^4bGx^w2TQ=%Up6a15oi^@%}_mhS|B@lbC@^yuc zf$n7#%%mb@xtdivjEyxJ24(soED(Wmu)r82U(On(&SV)HkpXF-g)O^ju}Qj48R$iF z`Z|Y}qWfr`i*n$4hYO1^r>`u<=ZVk8aV0tiitRhBa>_=jUxOB($Ciy1k$i$}%Oc_h zTw}Hk9l}pM{W#@f+~p9uD}#0>N1YNbK z`==iY-UQ`w5AIwJy$M3Cy9=CpL^X6+JqS_o@akTiI`HLLvgMX)($)Zl{E0o8=nj4t zEJ{a6<{WGQ20u3s(OsoC(V^JzeY`y0jB;k@fI&@=uy;atPqHs7J`;zl3M?M8+!Vap zx;uNalJv$#@?re1I5;=`+#IB zMS9!_A{!&gazmSgODZ;xr#?s}DC0?j)n%p$82Bx)7PNrKCV*~>VsUb%w?jGn#*krj zD6gxQXn1%NSvB3tKQQ4sslG4#vEte_>Ut6q+n8&nJqx;58HNt1CunnDk69nXBi!+r zs-vD>4sR$yd1coCn-gLt&YGCGg=pp2t`TD_?&02!9_~zUN0jGQQ9h_Ga(vB<&Qz&2h?konQsn|o`wwO>G^r~Uw(#aGv9@_b-2{3I;H0H zt+J>`kjJ_^3p&wEng+HoXIjp-s1JicewlcVoIrFKAHNQm9m#Xyo}BPpIbEZEoE5$&=0%Fwx1brA}H({z@Cb2y%CLL~NZu$vrD zyAZ8v9FBF6!-U7V%FMSCvhU{=N4gVHnY&-;pu0aaMZAvpp@KmR)ypfg=@soFu9n49 zMZf)`y!O^W={=^OmJ((Ld!YLmLEf6Etyw)6)XQz)FkVr&?rIocTMKS#cEH$ciy?09 zKWM>wLpQ7+aWp^VG1Y5pNH{bB%*C8YNH7OQJzR_mwqqiT1sQ=dG*J}{MnLVu)0I|Gg(Xdk@a(D@8R^e_lVfsaxM z4=H${--K>7D)EqrU%|Z?m+01vq6k~n0IUcg3wXCN>eCqP?DW0p$H6#U#R&98ZVdrO z0Zg@4?Z*RSskI8xd@>S~;Wyi2$Btp^S+HxeMLR^9Fp{J+vU`!(X2Q(2ZY5^5t&nqL zBt?RPiy9-z#s>?zuHKK0_8{I_*kw~&)oEaXb$21g5AhE+m5y(5j?F}Vy(pWhq5#y&6)J81-dn{2zPWhjpP`Oz@p_X9-Rb1|EzFITf%Y!6oPiit7E?2&1C+gHA%9 z4)ha*Nw}csZNQ~~{X`ULvGzBNB^TDL4Y&h(gbnOqPX@;UhNUoM{rj)V-n}R8YoI$+`<@@tW(z^*MsgEK9E&LGo^IRENk8VJ_aO7Mq#@nX& zrd+Fy-`DCG8{nqMdPdJs@cl$*D1IyarsOlF1 ze)Dd!^lBZAntB9kFl9tz!*cT&A{kqlv}O)!Q~k3OcZ#W! zDw?n`@ntP>$}8-M2&L(gCwZox79$G~C?L@aL0o6UePzfFSGEXyL`>C06NPW|Cri6M z$>hcz8!-)2h%NXj3!CbDqxA*8xv2cNii`HiR$)stbMe*RF;EoW`{Sfju(JVr7X{{H z1Xs@CEdh91pnU*5(<)yMYZ=!f5w&7>y^i1v>*3&Oapa5)+#@lEYAb%Fs->aw!2osi zi3^tlgz!5}(G%&xI=yWIF-}{DO6v{##bU+CGuu%j*SC6};ZkvB@>U?zYx1go)F-2I z$tAcqD^CY*G96UD2@H_3TtazXQiLP)890;CkmWMDO#5-O4afJeRw%QT7bjg3Ayldd zaU63vj+6KhdR4KX+6>Qnv@R{!roVa@*QQ?R?jHF<1cDVK*JWT!18=<5$KS6Yot&D; zvJBA|$3jIAL{^G*Uv{GMz`lg562%E+wzBiM%m$HdK^Upd7Q(9nH@5ks>2cs)j_r!`$(hBdk?)TwZ$>B#ORO^in0dK#H4eEv35oTbAlv%N@CE|((I~h{jPb&qlHKl37e`!f~lVW}HhtMrWp2i%&okvGItv9awj- zTCWVQ9W4FFQNDSD;E5*M^ZZ+E!BV{n&Hz@NAG?CZYi6^1CaS?5<(OQ&Dpf41#So

HO;0Upc4Iep&UBnD{T|ybYE$Qe3zxs&J0HI(_D$km|hToj^NG3 zY`J&TPRxc2v?38_N7KO0Vmx^099uRz*J8$S$AQv>hU_F0GN5a8{VoglD?v{ee?R%1 z6q`6~t^AOQ7^+0q;nLgL819E5CS~~SzcaNM?1_S!+wHr}kOoP$4|*wjS0Q_i_7@bd zwlN)G+l&#gl?Zj?aB!z)(Uo(zt@>jD8l)^XvUO`d)>`Z>4eLw1>k~tg2WQ|4!2W5tSUS~G zhRJrSg%wKlm>cXaY_342&ECTnlnl|!9R8%2AHYEkK1lq+3qKj(ocrKN zq4tI(FxC)ZfwBA^&0Id@jtbB@w&14?IniM9j12p>(j+lbOtIsNk0@K*QR@51h&RIc z#0(s%#C5-qEYu%F&yqq%m{{nY6A}grCO~$OE)rcq6Y1>>*a1D9=3>`Q@d~06U(S?J zP07SYp+wG^vNow?;z0o?Z>ck|;}tzjLdnDyVJ)}!*TR8=Dw|6}Y{{n1M!jKEkqV;p zv}w+g(6lKMG08E9u3BULQAonW#OHKdN_^9&gldD`^mDpJbwqKAJZ%c8e@SDO6TZrj zx9nt-&;fNR99qO|vCwtfv6?Vh?|q6m>RW;N1h2?x&rY&=#=ykcf~{1Mb8AtwzNIgz zW8fS^384a{sri=Ra{aDza0%RvjNHgoDQE*{uhlh~w0rzLwr+q>JFq6C0lF<)1gKNA zHOr;?Y31z8wquud+nYLla@Kl`tVHM5VwbuXyaAQkJm?3;b=gA31q495rilC!uY@TQ z+Cm3y;o42uLyiI@{vG%o>=v+|WNeQG7ScCit0Q-0P6iF>T-l!D84YoZvY6qHR3)F#cr)B^JxV_v zz7=!TfCLLZLG%Ge23;w0QLo`kIMo&4eXd-zp4_HCgw>feF##gmgvy*QWv06(*OL!6PilYgtljCy< zZ|}m70v_7r1PRND1kAG-b2OjQ>th%l>ZN*ibOMFc$Qo3yzd_@GC*Fm4i#d=9rc#Aa z=Pk;O2Zu@ZI334(rqVgBacLboHz~vDl@uFhRiOB1!?dqSZ#V2nECmi1{E^vY#$Uhot&o74otv z&l97+KDSj>C8AtE=|V0S-n%!O5&oO1T_%NW<`IU51=>|mvBK)bNM_B@(3+{fSYhb8 zHBj8y>lK@k07I*vK3sf~R1mM@KU8}qJ^=X zxV(xv;?3#?&;fWs@Wp~IYEZX2I82K>PQ(Q&df`Sh+XkUmhf8|qP8!aY>olPKE2?ou z^tk|o^;5U^pk4JMF#H(mpBmatWqlcH+I@@?dL0>iFIf6f?TIazF#`I`rk`UvbC^}! zH{8FjgkSSg(K}&q%6$x|1y=X>HuNQGuCqYfB zR0jWhaPkY3P_aKFkvu{cy+*j@eXxfLhN$t|#hEwju|D*0k1o5d#G&bZ2XKP4I^F8rpTn z%kkJN%0q{+NOnh+Z|WI}c1Pt>FM^M{nkyov+v* z?gJYJ?9dmztcSm_18PH_uUfgAc=rQB-orsHP6>Jju>rzEhTme$IQ(~-5N~4lD*c{5 z)lV{UOU+aKo30Hx-Y22rWzp&=D2g-llC=^q5W^tGVgWBDfms>yOn2*a9gW)f=J!T`fUR$*_Lg(ajAQuWVtcdb9?&H;N%-ux-)OQ)3b;f zpY)o*KIA7_BE8VGgC3lTz#CTCc>5V+H+T)CL#I|hAs~}DBq2K@&&_H*r~u)?WDds@ z%(xQlRbAgnh6iK>?Re?*mtZNibod@Jf$q3)XLoNzh9O{_r!T5y2i#NvXN;+hMQE0e zUBNpHM+hbMZk>X_Q6`Pw)Q1uNLDnwo7Ke7oq^ZxsOQe(t#y!}*pFv@lSzN#hHmd(7 zts&>8YwRb3Bv!@Z|BtXYfsd+49{BT;00Dv%AV4_O0RjX$OaL(v12d3>2?hvqh;nKW zQ9Mv*02O$!lk75#S&!&G-PQHjb=SSr-SvPhjGPI$ig+s?L3Fjp5dtWO3e5jo{oYK% z?(hHq^ZAf@uU{Y4)m7Ei)z#IyibnOvmON%cK%|g~2x$@@P4YTk$FHwq#P`$>$8W&# z>u3^J<8Mf&5e7;%iIWHs1~4IJJoc(5C6Fy{#+aGVyR?&W zv=&@0ILG_h7PVS>N|$fDhh~sxH-clzhUoOCl+gfIsyZ80jyT$-YH%>Kn>ehI#0J^} zr|NFq+rzwD`dxFVB9te>PQ;k6r+e!Xk z>^u&91$#7NG>RxEDEXIwEnVHE*@x+ zImkS~a{|liljTwgW?*T_}`|y4V@t zxcHwz1ebk@$@``=1cw=ta_yjn z7niUQ5Vts{N7Dl>Fl*?%k@qMmLg%Kx3z&z@&h`%A;KR6}j}=J2k!y4u&S_HjGAP^UB-u<%|SM+BA$pMNDx6ysowc44cGcJh{C}*%bPYXltlV|c>vCF>U5+mGJ*B7sB7GVM4uIuv`$*JsvRVBDe-1Fw zRX9&%pu^iM7$un^gC?6IK3ou`coE3`KloixVnD|5J=$239(M`{Ff#0#H>ns1kM-Be zY`xgBBg>%*zjKslHP4diV(NDY?Y}gmnAD|15oOnRlH!H*K#H7}dRZE0Mam=vzkD>~ zH(Kh^ioz__8C3etWn)ndEP4lsz7RpsuAW1G1q1VgToh zY&i=u<~7~9iI6tn$+^XY#0Hc8UIj14WM)$7EbNjwe|Szxw1~k8a53-Xv%^sCfK7>_ zDivd_um9(N7$;GJqjyrDmVKt4!lH|KZ&8>Vs1}7;Pr%tomt=c?;{!uGq+aH|r0|_j zE6FT*8YCu7)?x)GVg;@Gr64Xx;Ob6cSdN>?f=4j(C12iw*OMe6gaff5l8(}n&3yY{ zE7b>`PWmb;u=?kn`h^KXeMwcM*DnRr_EbJ}W1?Wb6#QbHT~J>;srGV8#23Eg;m>lV z)TUQ(#M2#ALu9H7U*dN@+(~tM4WYW&AC@{F?v@dKTb*WY?EsC-Zksk2>KG0sxu;l8 zox;3++Sqs3d7%b`GJYxzxbmF*ke~rmJ8G@rorATL;*SRR7$<-5Rc-ez-J0i1o9GtV zBiqj5Sq#QcgbfP*nC72iUKsq*a8VN1Ik&5N1N8-e#EJd^9-@EIZ`uA!fdEGGnuZ_tCi8Mtx90MR=fh?J7bU1}^l(wZF6 z!#wHu4GUJn1}5aNn?FQ;SRvRGa@URhb< zN4Q^2`MnmgUsMda-d(=!w3$|VDoc*RmewxHHG-=y z#X0&5>A+53NCNwa{0EI`zO>SunCbBje%3E|5tiLjUZ2zIoe4V3)FN8xj=9qjd3|2)}j>es6=nB=a(3vg;j z-Su}4#CP{E%VZP4VO2_&1lszFmSM?F6pK-;1XnaojT5%YM%ihdLpMGSe5m2EM@*k2;37l&!15cyk=o9x7p4tRxUX2pLv=d@b#O2U zhAd@a;1Cu^6(+H+5ocB(fv~ibt5jZh@YDV#w{?_ttY8F7ioRh%v1Ur}$M|aPz4qak zQf4^=@>+S-dpcg14B}pr^_HGEd%mWVjok%%*ss9dC_|fdWY1z-R_xo*(n5(ZAa{*v z`XM%I>>deTb$o{yS}$1RikN@UT=X?u^vqGXNS^>$zYRl4y7!&0@g$17?p+2NwM#Dw z+R{CFvM!ti5IVTAY!q=yu&8lOf8Wx5d2+-d4MTk6c()L4<9M5l$7`@+A5N}nELnd= z$H~wF0g&nPA+v%VvDLR%RGk6X&^NL*3Y1sWW)@+@%qgiIZx9=Z!{8F~LGSHXh~Ken z@TaSZV822vp0dlIUQU-wi*Rz=9@rY+<+}G@GB%KZdDXrOHhw{!0RG??AQisckeRF3 zze`fQ@BD{2v6HLLOkNt#yQ22yv52!nD=!MJKE*mpYY94J>LGgskLVFRrQMX@@C6U$ z#oj8{te4`yP{x!t@Xtyp*5$QV;p<0;-acQ{z0j21TaSW7aGR3g4iOEZZPC4F>YAFm zna_eVEr^M<@e%_Q>j@J;ae?lTyTpRsdQWC#Hy;?Tk8neAwrIl4s3M5Ow1BoZfv^Yn zvsY?`w3s@17}dEOqlr2+C4>XkBdYxXVKmPfZR5+>?nJt#^A$ zv*0-5CFdmExl2>@u6=8F?yuFFkELQ2y++PK$kkT46}1oLK1ua-$WbGMThl9w_63d- z%8;zYwboOq-c~63VNLs@AI%Bg&`-$d(7!9HwnIV%CnR1|Nzs0@*W^%RMcO?%lZ`j& z_bDUzSzKa4z#yL+Y+7wi_ZlaRJyN^*5?-se;3oznt{o!xMa>YqVbN=TjNUvzRBj)^ zzD1zbu4?-slXHqcU;K=736PEK$5%)QG+PID_>qO8&?oz5q-p*>&*Z&SBwnTM9E>9-5$#NPI7UDLsVR~O5|UCS-ogQK&ME*XIX zyFwYJm!$Bs&m&9^FDR_}IP@XWNy960YNyAApMtBp6aAEE-l6@2w~MOv^SZjZ*gb73 zzpZwuAuIf^)y1fRdY+snN2!ac-CTabzZmNj8#GtqdwP6F?AzK2@z}^v3}e-{lG>Zk zhcdqQzI6!4TJ^O<=7F}HX7+|YEg_d0{Gm9ny(i(u#Vrs`uJ*1Cxu#3 zywo3W7PZ;Q_to#AW>c0V+ahC=m6uStV|)AL56USoamkWhkoff@@4<PFDR(Rwz!@50FC^d#zi3kx#p*hpKaiKi@7O;k>*~+9*5z*bbKUT- zMwxfrpgSbJe&@IJS}4>8R$OndTc*p`FR;f{J=#)VBOR>Sn&>Z^wtt~`Y=!zgKMwfo z$Wnj3pb-pcOUj-EQ>Q}T1Oqx=kwo$Jx`d!`Y zs^o%4m!zbuU5zA=dBmU1R7!|zC{aYxHMi9bkM`^ScZd+P#|C<@FYH4ktE!vo7Doq9 zTZ;%_>Er)LQr7&H!D0ilerh{$*U;92w{K12TCACB>u-1$3%6AC{w<&uF6u8ET%jB5 zjzoKyBh_;^3Poyj$PVCzPNKAw6f`$egUGoYbpfzNGlhQF?ew_q;juSv#0pgZHifk* zNaIM`v8Smmhy)BY&WJqEoAdY*u;c7)O4}OJ?Z2iSwq$A`5F$RUPPs_$14dFAY$gF$ z=@Ip?kcJ(}rI*SOIVOha2KA>W9n)A8A&ON3K$7EBOp}htxkIGBeNS{Tof0ef8QPax z)GrvoB#r**CW!~ra`mWCO7dfG;MCx8B_*H%1NkG&P0kEGoLRHIX6F0~1h?;2EzC4fVIU}$;m&2oHFlbYlw zXZN20kC<0A^0wQvc=Uz3=f3Sx-1SCOgk3}t8Od~$K=tP!%^t+~8>$Lk6Iz~f6Xw2z zFk1QuSl(0D_Rt09um^4`grj>`Z(c0+wk@RXS14l-B{p&S$bk(%)$ z5cD0l5MKn?-?r&ECF+0Bz1DM^d#R=c#+H5F`qO++W+&2;aGj;7?&vo<$?mFme)K<2 zv+E;7ahx_~drGe@9~HI}tFzN{B!;RHs?|EE*4LV_nX+fSJ#v=D<{>pcyav*o!7M7* zwi1EFbheYkhNMm`fS~s1F;3_=&W5;rNM4vNn_a)MQyi4b*jJNcx2*4zcL;cu=#fsu z%0MqcPw``|I$Ug6b*~)GyY|i}qyYz^Pii*bDnrsmIB+N%5z^1C>W8cC-6;qJVsOy2 zQM$582s8REdLnpgy@59$ZolH|k~&ZG`4=`;iQKiRGLWf81BuOWojBAIy{>LmbMJAt zP{5g1HAyePqDu!{)ipxq;(w@VI<#HYg6bs95qPP7679U-e8J^~+KK)9~qeO+&rhY`A7Pie?v=e1$8#f+EAaTD;-Cr zn#bi0<+eq(ITt;t(~GH1M#`T4OvstR+`Zo;SXG&{U;k{vz$+O~sZ zrN`T)-BCRz>J}J~%F+cn6wT!;(HAPhxra7#v#`uX!%5e*slE@3ME#0)4UMX!C$MdT zDF;0XB19V4TDc@E-xKzhkay#)AZ*hq{?r>(Y+sZ8b1>uGcpmSYrt?RN&XbRfLyEdl zFK(LZI{;c_DamR*Vv83(T#Ng&W@25qR%_|@f2EJcH;K<=xl+KmwA)H*vTQz=~%x&{BU(k#3Nir!n3 zE&i_<*7)A&nAu`qV}~d$I_~-AO0}l@ePd zcFjWUngKb`HctJ5jLu2q#0g~Z7#k~K_Tif@DWv5Mae{D=9+<>=X0^Yr;CPN%9&dOMZ6Z5HZ71(f!#pO{gR7ARETB3r%d%i70YmpX@0C%=^Osb;>|BfjeL{~hgX z?ds=}75gOmg`TTdQ%36fXR<6_))4SOa`TJ*v}MHIb`6WDAs+xooB3*uU7YaTlQDax ztrs;5q9ARN+~K9fWLA+qEn0{r$#5TBtwlx~eiS5!GCT3(b5UCXZP<}h6G)~OyS=Xt< z;>L+ty*ecJ+u`s^&xWE_hapOGeFa-RYvaZKw*2+5#T;jmf%PfYWn(RjPhxMhLDEX_ zJwvnC$6?qx!!qRy^~u$Tu+0tF;e^;Ot?w+u8Ty)7A*0o4nej;-t;^MmRY|=$PutKJ zw@Mf3qh8VJk>Ai{;QUq}+semZ+l4wsp3Ma~ye{x+&;4pj$tR_e)DU$Cef7a>`xZkx%hurH;cG-cDmn4X^;O?{Vo zg->$s;c)o!8V}#pQ}Z>9z^0ylum!nyunA5q+8>(~}zHPs(o>P`|P@H&AUNWfE$6 z^epmRrdOYY`c^wSV!BivLg_QN}PLw-`Au*Dw*RKK^ zZ7)ont7VygI2ibYz*y@qu>JV1PgctOng=yz+y0W>)qOw_d0X>}=*o{yuDkGbU(cQg zffTDxrlVXJ)Ut5VL7;MK4&8;`c`$M^S*Cn4(@$rH4ymp2vME%z_H-Zf4;UK=FPT{o zSF^6cTk#w4d`^@@C3KV^40UrzD}_1QrqHCWpfaeVkNql^a#cuDJrhPs#GOpd)RQ{r zAR@)dv@CTVIZa6%kW9>0KLQ_V@!gRj$hf4aVNm6F0U22SO+iVXOV~ka-OX8z?3G4|$Lc|DM3>$q#7`g?D zoIoe_=`2PgE`dH{8Ok$L@0rUEcPAm;aexplrkO~Q?sBs_3mLIusate5%QWe_H=Lat zNesqTnSUUi^u&0m=bV&`#8{}uoRrMONT>}uh5hx!Fkt&o0Vgp#F$%T!3+mN8Cp{-} z`E~XvNN%5#+9%>|NgSyY=_>n7>u(ihgdUyvr89m>G8_&ON9BZ?ulB{?fmt4d4jl5;_K2R79-d<43~s|P$w(~p)oym$-L7&Otmr$CN+MCsp7!v4 zMsM@;>7=dOIlFI*-HWJz)3v`A(h1#a5R#A{!VFJ}%)gSwxFc~wN2X))WIrnOUBRB( zN_S+Sh_b4;)rc)ADeGrdO^+TX2QPeK@lrC8Jf-ba#iIB^|!gc%X zI^4d{c%)xYUWqhav?S|}ZGmnZD$VvAu9y)#mKHpkR{d6>!}`khu{P{;#2y!0lCQQ5 zPxi7bP9leAQCS(aNToc7#=GI1JZg*nv`tJD9O|&$7X-#|=|WlHEE6w^ilT#e+~5nN zj7(nW*>LBK4Zill6VjfidT*eUsVDbl#i^<|Cw#*`HwW^l9tOOfdgO5mNgc?>HNPC6 z$>CmKL66{tqd^PVy=C`zp}O{8bnF*;TCc2M3tToz(I8S(h;N`gi)S1#m{;_xTYk+( z&qDdtBVzx0n6nB7a2UFF?tz@gBKe89;_;;kKr|r}kdZCu|`ncClol9z7B5$f% zZl^L!-I~+3XL3f7^3pZ3;sJ^v z%;2sp^#>52ln{s3Fc121k`i@+o<9z6NLtBlSB zk5!az$mAf&khLMIQ6T|A6VPcjSGyI ztpogYxb!1CIq-p%(Z)D`N*3=Cw-hFC_E!7%WnnMg`?t}*T8ED0A3`jAs&mxj7;FXj z+Pe#gQhk-7&R;9}YO)OL?lwlh_Chc~pA)g3X=7Y=oxDnI?}{`C9gcmW4<-77W+AUX zamKs$7nJ9DqFX&DP*+X&*hAPf$M*e+K1xv*`C92=54VuR={YK7TT#@`jh45qkz-yb z^@kr;Qdjt;5BU)SY*LeSyKq^Jr1=_aB!~P{*i*3($g)ayAU?y5a~_<&75v8!cxP^s z2fbLew~<-;i=C;NKqUWrC$u+izKa~d^VC&+3FRtkpWR0jjw5M}w&W+M#CzlzY48jjGjy7QsnhqSBuVe$~oi};5q6MFoa-8pzVS2Q_RQkcFQneN3o zNFLndzW1akL2xMOrUIcfej0+@JR!{oPa$5Uxs=8rCvNpWB=94WH57c3pMtH8K{-Mw z|Hz->JT?Y}l$^w8TOK#IJnn0GJm5Sw1PAcchI;Z_K29iXd0yG_=xcfOv^>skdDNFX z+E6XCp2#rV<^kSh?5RINDviOdl-SLO#^BE6({AUfys^4X68PX&LR_5k1-=n(Zi-Ae z2Ij`UY}-kj*j_#F3|bpx*ZSITj%>4F%SIbTV{2C^qTM^sdg^JTtJy~Ve4}8I6}s#& z%V6rL18VJyBITL1QFOWzL4_KE4!^ zTXMMN_rGXweI-JBdWB7ba&nh^3nkzG(pjjof*EUesIpRZm9?;A=NHqQGYQZIB=hn@ z_1lwthc6q%L@I(gA(y3Z(R(%t^b$=(A2~In?+Tl9C9lNple;Ski`daqILZhdU7u~l zzP0Nw_!vjRQJ)?-485{^b3v)K(+yvIhe#=3@TczUD?0=}6~VLatk7QQnAyL!jGI2q z!pL|8TOz1$dZ0~YBJXTR9DAID`ad5ON1IxA_I%2)CJv|Xk|s=UuQm&1@8U+xx#Vqp z-1?!Tk!R8yERVueeF(spqx$?7v*i`(`VLdrt&iS>;4D<7$kJsrz~?0xAjT6l3eD)$VtQo4pJ=aQv2S#+s1s!+y1 zz_E_0B=ME0j`%A=Gq~^+?OT3{Z{rzi;h*U%+P<74o{{SXvd*OVYKP*DMK8Ih8;j(w zSFF>S#_ZH9xMU&umw3bPo;6Q7+( zZKz1aj0~>_MLi9#wl3*t^tP;_M z`R5szngxowLx=_1ZF^aYC@gj zM^0JiZJ3!6e2v%&Z`)BJFf>;lkt=fYQN=RUjqfoYc%=n6A;j3j85!2=Sw`2?z5ld6 z&oa7abCk#Ssyr^U(zNiUYULTr=xz)$D_~4wC5FW5nFwBRWs{QoWx^waXFG697PXm! z@QZiVyw79A68LKlZG29C35r{PfzTRdrqIXW*-ozNwPXvPo#(3g0}t{=B4BW#1LtZ2 zf0p5CQXi9-QTGs7%j(eGxS;#0YU*nfApK;DbZ|6fLe8L#-Fx(+MPy1Y0(d;5X{>iOxjSc&vNSNT3aGo zRTLf)JTuHyeUv)QtAb}T&4Ix)9bL75=RJ6a3zDAY!F8X296S?uRhP0(h~9^08$9E7 zRfnZihv1n`{uR-?+cV#DwtLauwSV+4X{=D4b5#txoYL(8N`Gsq=a zssUTkQBY@UcVl42F<=J?>DIrx8be(X-h!uwf%lqnvRlhK83Q_R(1~+6iZWlyfAym^ zG~4Kv^N!SW1IU9~T-7)65N9**y0e1ZZ0ioPct((@vMC;mNyz}BwPx$eF3xSO9B`H@ zPNAkr$)7P)^?d<3@;bB>eHoZ_`>q#X5TJ?$sBz@ciCJq&45e-9N&aYuM5^nGmaOlC zCp&8oJFCR{jy{!0bsc;@S?eu{#H{B?q}E=NwJ?$Dx~nB?dLl8a)Xv&RvcB0i0c)1d zdYQobn?$1d37!$uDpEMQnAFhW=%0l|ggbn#ULfFY z&IIykik)$#&TzM@dbi!3<*u5`N_DP|lIvsrC~NVks9E04o#b(seuR2cqOwPa{+GUz z7uhc=_);)jTD!)uws$oKT-659v7m&~#)nE?^=`9w-RU^suDN2< z#iDOugh6v|QZJ52BtZEiFSwRMAsUhWWOWsXxuWSJSlJ#ttbE^VB1rA?7i(N^qu2RI zIdLZ2DqDncqw5(q^66cErM}Zyr)`GTLunClBajOJM1@SJ=O+^$Apt+qo`=@$%8^R? zQAs$BDL!#ifvegjNkeQ1mf6+LFQHl_BlA?dEe#A*tb4?#^`|B^z-~fq*`rBVdx&(l z(>g`2a5ANk5FRO7l+#XDpiS`X@W3Sk^-f;` zvVC?pOOD!ejck4C=+A`&EQ+f$8+122Y`IYSM4T>cW=of-4VOu7xcMH|lCDVB`sqtl z>i=ECzjO_Sfru+|r*5x)xKP=9gtx1gN+VO~N%RL~D%VOSI$`*i+f!=CWDh1bJu5wE zL1bAlIjz`d}j0vBT|^-H_ndF13yPURkUJ4-h?y>m=pO&ItCBF7wLetTg=uIbuUO zAd{8OmZI+Le%)DT^G5c{V;rHgbHBhFo6E5y6buyE@gEtac*kn`?qUhF0S*N|6NqKprR*{5?dfogbJM>8zxGss2Se z9auA#cJt4HiJs)^&+$!zClGRI>L5@^E&)ViTa@s<>g=)Ul zp=ePr85$i9#qa=%6PRf<=12y2`0de*bI#7o{q*=Sb!AKWLdD>QO z31X~fXqe{es}B0;iWvAlEWBU2gi^ts9uC3JhzN(Fx>_d&8t%bQT`YVhH&zKPi>Y>3 z!N)2*Qv3;avf|A36@7PSPxbmpYuq5CPwL(g`pT-*zL!`z1B}t#+x>5G_1y?-(EwvW z>R3B(rw2yScp@T;HM74lqP=R?-i3<>Tle=j3NGq+M894%7$Nd+adO~P4a+2Psj_21 zBoCHbI|mqU^V?ytDFPqyAONeI1qy<|W^v({ea(-o4Mj?yB&S?6m(9vg?*EarQ#T=Q znHuOfMKlu=Ev4Kzaz`(T2C%D~FpwKzEBR;oPM$0;+ImOl$Pi$pGz-uh%{<_|!^^Qe zpX>Rvg1H=)&aUUTaW@26h+N2eRrv}8hg)S7IiZ97;_zSsY_SCzf9<>9uj#8BuSkP2 zC2|<goE$+W<*~%K@ykN$y=>f@Hw;1{XU z2PLhsB~5Z>#7y<#xk+ndH>;=4O-hYjt$s;TnbSt_i}aXJtv)xCJ9de>>D(kE)=yp4 zk`(+RBi31!jkd1NGy0|W8*Q!5Gaj7|-@d69Lppf>?y!y4nrqbDi%8Q}FQGm)nO6o} zlcL&ut$x8S?72ZdX;msxHOQNyI^1Z@9c)~BQ>Ek)da0;7g0X-bZoOasxN~E?JsuZu-OCnEF`tQBbK1pHW3Vv%n5aT zsC9O*(L2?5vDNz`)hf-JdojPqIOHdx7%MlK8F12k3t5*>}1PMtlaEP0+JH+i<**-qCK>&0>3 zeLhS+`rlf)4NN{9D=%m;IWV}goo*`z6&!)Od~d1XLBrR6pKO|Q7=8Ah1QcF@;yh{L zi8pO1R%F$`4Fpd6WBSU-ugWcpw8cAJ^^r*i30pRqSm@#r0IozSK^(5gr`Mv9PqOoi zm{o_cX*xAc8z?nVv~@Y+w|S&ojCzD1^PSA?p=ij)Caj5rtl}|7j&)|3QI`7kK>KCh zaHIFg(*Sy+q|(Unx7n0(6u}Inm)qW^0vJ%ux>x}A6WxwavsK9;>n{{cT{O_zJ=_?R zI>@Q*{EH3Oh);yebYDe%7E;eq_Yc;@DE7>pKzAQr8~Ihs&$BB#G|-xVvC*q^C3KkB z1k;7Kv8OBrVx1#x1u8vV47mUj@67~36s{%Fkl2njNHf3-V%_?@*ywsObM&V~KWCa; z?{1Oj>|pz9;wxEvo!a3G{RkE>H8`t&a=&%t?UC$ZLT-Xfe)J3_{1+kc` zKUkkH!@!Q_xI?WXS^NJss-H2hIS!)Ra0jxd7FWrKz9Iqvmk~zvofVzrKJHro`9xdY zA8VJKJDb&A3#dJ~(>^$#u!yyqqqQkqJGIK(V+ep&|9pUGP>1>_0s9V}twQ1yh=mz` z0bmW}Yh-bN+$S1f&Bykd)>X3K2DoUS&oz7X)^u{466{A_P}Q1z8);pN6B<=oFy=)=wz z=y+aahR&fr?QP8)Vf60t<~%5!c^Mt}9yi`ig3RcT^Q`+u7H!uEf$zrLGey*kd=kbTU4_2vjk(EGUh)nRL%2Ob`H%(~lS!K=t%@hm@+2#d2*l8va>MkXc53G(Sr{M8t{Vm@FKT58-;YPw(flh+A zL>1_8%KEItm}Vw+4c2}8h;SvN?QXT)sLowaDp-`r7A;tT+(dW`AyMOkcezvd=}O_P zMr0n&B=lb&L6E%SYm_c{6>*3I^V+fVAxmDeV8ByBLgSrETi&I93|L6ir@~#O#TRpz zFbve8eg_L7ZnGp-Wt=@kj8m)zL^*L+gcjw_W+_y-TaVaW!jm?pBiQT)eav~b4nu>L z0vHZ2>A9}p9n@?JPB@%?4B1Ex3#E|yw>^;PKCbF7nK&qt?c=)23ix)m96%l;$0V;| zp3~5(&{P4Hdf->;QP-c4J1u0_Qf3`FS;RtkF3Q0GJ*|;ZOhTLi+ON!)U{a^g&8j2Z z7nN%U1=ab9`ek`~#g%qvGAdBE@?F6xk_osnrqo`Z=UqE)KwzBudtc~J)IOvZ>Mvgg zqXS(kVYKz67+B<4dv<`I(9=wP^~|U#k!wtwNfvgN>Z)^>ff8R)b?!=j@8}}VRDymj z9n|AO0_2fzGNQiFL-up{A)U*+!L>d!H8z$;^0_w+R5-g%T)< z<4g6wSlMtzT(H8*HKwW8Rc-3k_>5eibh}*e>mcYOsVxCd7me*vgns;5y$cR};d?bN zCVidtc_Z|L`+8|v`-pX0xiPp$IxHx}Lu~M!k@ubOZ_QJ!=gW;T<`HmEUOO~h6n6It z0#w3In)D9~^JvmvEyJO&(j*{ps6j5O6p2z^bO?s^5$)iJG{D+MqRy$aS4eBR76|{a z>WLvR)(*GG*khFBxG9}$S%jMP=g|fRHe}K_xB*cOD#Q!lF*9^?>sQS$e0`m-_IgTd zja!^Hnfv4FHE9z7^vfoht`aZ1C$)O{ot>@KG2z&GA{7&vADd(uQ;n`&24;&weRZ2| zd(-5jIx^KxH+1^^Hb>sD)BkO!cl!jfB}@BSLnZN-GQ`yR1LLRX@i{vxZJvzq8I5i-45M~a zR2HTj1=YvD#q5bKDNBtgcUYJ@P<_;gU2tS@|hI*9`^o>Wktal#E z5;Jdi>?4UJB+cJL^DR~aZHD>prgrlHcN)Eui;z`6z+~gVpCcDe z&5+m!JE@$mBT%(LBB2kN>NzB%jQ7JV+hxI}QI&P4zy5{qnXGJ>nzThUNA=HiD#?l2 z<}|_DEmV*&O6h!D@=OwSG5y_nfn5)LBGl*9^Kr*SJtpfivPs0XZU6wG0-@>$J&?o) zY2fP$JuGeq4UCYR_~Ey%%dH-ex{v@l>bKnlC~@o89RZa&YBEJ_f+9`GNR3GVD~)4vKL@Z9 zDrd4GBJL(!5X(x7Ft87HL%A_C&ZPW2JYuXee+k6<9VHrUy9fWCJ!B)3!mjW2R<2!A4mc^9$~|?xTeriWtRVc z)p8|81ZA1(RUnZ3y(D`T$Nl7`U!rURLpE*LtlVA7GITm>0R2f&3+;_Z^yHODSK)=o61O5)$0uJ@tk z1V1`sWJ5lfT>k}mcam)CP^m&}bpBIB)&B|jH=SstPY*lSE96QxVr5P>GR)ob{Trua z54ZYWkJ?DXGUvR5tYE^aJg%26>MS!X&9`~1(U$NFC{_Q7aJ5V=0!{a+c8;GpIf?~3 zj;1yxGO6#U*pOJ$rW-@e9WaV4|3C!ps{;$lhrJK;BFH`J5-KEWh|y*^3om~L*}=5#)5O;fry z3IH?;Iq{GHYU_Bk&ugew3tVkmZ++@>1D}~b(7hr~6p~U244?ubniV3g)TeBv_J2de zI?1_NQygW0m3Uy^IEOrP1Q-+{jb|S<+rV_S?L8>!nQFv%YvfF$-?&^CJ7yfigBEqq zMKKW8OD#jU6BXFUmNu4k8je)5Rg7x)OZshNDSN#2`~B z^`cSHrDV{TyIgTAILjC^qz>qkm^}dDI33?e2>_WY&hc44A%9lb%_NV0eB<+->4^|t0; zh1c+T(3dY<{MPNcz2Yi~S7#l+${5{k^f(4e9B@%tb7VRH zwHjArd1f1VsoiR<>TANWLSYTejIq?-Idpp`8$y4(-q4u`ei8POG zF-0HHj%;%>{s0lnBFxNN%M}Ver5<;rAz5H61)@Nv^W@uR$and=A?5O0{F5)A5MaYu z_J|nnq1Z)Xkm1SL1)nmod=NvJR7mr8P+MY5)$wA8V5rUPQ`?ykFO}R3II$cSfF-&| zk)|Xhmr|Cvr&Ci1o{V10d3XDhDv};hw1WDE$T(p7Z%{8G)k;IhqZR}zUx%Ob)#9rx zdLE%7`+fs!;Wb9vw3?1_>&9!0OXq*{GcCFD^*SWdMxvNd$-jbNwIVmaX3v`L^2HO$ zu)ol^#R54IR+4*h%a91t#`jG(SYb zwpE+PXo$geqdW-#(gFA|avjiu5s!>N231les0MTptp|Q83cW94sZ#xtf^yna^V(JXkS|lHplgRBiNXxvgnpG8e=b$X};!?)=}TwMUrMa;v8(rdX!|D&k_-2#*|oN z=CgVEykOrE&~u{yL>_qUh}m*UtKHz^@B|BGY(xPr>5_R_Z)LqkA?n~9%!XYy9lU5qpd^p5%{aY{ha7BB#mfT(mlBjP?iXDoiu#bZBZ_S z3Y})Ey?_L9W)|%uhFc3cMhnD-!MjYAb`c^EJw;}@ipHkO`m%Q=R(*6UmE$D4qf@K8 z)kRHhOe_>PJoaf_NZf zFA|S(HN`qi*3_4OvO3;i^kq9}*bPSRh?Yj2Y<(GG3@?3B0zLJ{tDatM1!BB(J8Wg$ zz>2}iJuI2KM@w$4jkF^(qF%1A&2yZs-*p;O%SOw9uEGAVnH7Wm4Gi_1c@?1p;;W$j zrEM&!(*Mc2QnI$4$KHZ>u2s2!uH0nZvA`J6;~9{^6ooLj0;z*uAoJDkGV8eoM$gPn zdMc2Vrcu@x3yi_WG^^7>qkPbDA?aGVfi2CSbq%40Y_r+C=(JHByaIBcu_7zF&0>!v zcZ|9eUMuR){t$smZ1QYYMP$?xNym0-(ymEF=O`llShJi@4<1fcUyZbkYmF)9ND661 zF&PDEnwms;Bxs9XIea8Tusa@GZmTw5jSybcu^!l$y8d!`b69r@*wJtR5y%u{#Zhu2 z!~DI`9qsZXbqW1!ssqS{*m?Gc3VI`ZKS>pN2Oq(!-igscCTrfF$&K|ZJrI&wNX2#= zn7Q6opCL{imcnf<0bx={{~qqW~doQ zM6K#Cx>7(p<)AW2`gcd;*756%ype_PNQ=#?E~TZCKsTvon*)odnfdScKxdac&}>y! z8QoLOqt=otBX>@}OXLd^(c}=)Xj|l!0(;A6l1I9LjZbc~u+E+ZM8bGBNO*4&RU6KU z;7MbPKYthXX1?J3U}PuLYxF8;Tcs3OXR3^zsTpxAXOZFV@aDx*@jlC#5ZyB1LP`&`8~ZioTg>&znevfhsUycMmB|3aBu?x9i{VD1WYURU1e4pH9Lx`n z37a}<{T0$C64JgBjYAX6%k_UFq?02wrm0d5gsaA4NNhm*0f?BThMPGsP=%I25pySD zfCUY^;j7rKdb7k>k#CpSODnN!?B_<{iu~qqiOel`@grv{q}-QMZnT}}O;}Ms$(Hbo z0-{#$23?0IkV<0+8lPmy|Q?VLxNZanU ziM~nYzyQwJmC=Z-Rjzd;O_Lft+*u|jC*Y-IFMyancZ&b#+qfw_L4aiV=1>y0+m1So zG^sbJL_Q`KlRZQLCgyJ0JZ(n?`zVkP<`>qlhPoV}{=r9p(wek?d=j$zhY1zy8QrYl z+0h+DAeFTAXu93Blko|7S!6_LpCj~N7sL>t&kla3{wQ+Q9)=kV!~a2XImn=vxK}cE z(8!c{5~?qOM7o+#B!-LhNW3%+6+!u>zZd1`oO(rPZlXn7Yyq}BSUEQvH=57DwYK&m z$50U@8sD-_GpTlNafKO8{9LaXXF|^dfv$4%^t)qz8S3{qCKe|956B*>(E6OS4 zZ{;SkHnlGZ9;j432*kEWU=6oGp}SycK@4@LGWA!q9}VNl_th_`im3ZRmb_ou_w2?# zkf3tiK!&K5;(%sS_EGfl z`8(FnI&Z_o@$1Vn?IV$%%5Y^~*pt&x)`@FS%b0s6x)+CLLAGsup%v~O1zU?&WCb!S z)pZe+VZFZ5=i%N(TMtjnmkT+#)*F9w7F1;bxgx*8EaPg1vI+bjF95MIeAVp6vOI(_ z_-Jk{gPp|jJfC5Vb1Ot+8SE3wutj6&fEFzdjd^nbt0?*{ET!}`Wym7Z#t*WAwj!Wn$8b5(OtI==dcNue<0G}J< zW=hJY9BNSwi>>wn!)=aVFYysLZ*g;eMtnksEFJX9!M?vuB;9|6y~H&h$-aSF;E$u6 zwxJz1_tc2z(W_-?;YnFBKJ*U*TuUTEW+Jp zr*+NZl^<*$PhF7}%UBn`z0AX8z*vc)9O5G``IB%2w_==Dbl> zW&L*@fiEI&%JqYF%SuAKRF;Q_=6YSPmgIUk_^_y?=*X&p3{1X0yjweSk$2N+$~b%@ zB&POXCuCNdPww(6lzx#m-Xet0aK$&o!*QC$UdX}2apU;b(01<-?$KTMqwYkPdI3jw zK?e4cQ)lC2CS6yHwu+Y8J+`UIxTG)U_seC2+f9ADZUZj}bTA=0qKFGYAv zM|f~U2r__!A*Gcip`(M}GJF}tgc*+;3b!8|S<@@N7t->q*C{8|3D&mZ=?Iz3*heIm zxLz$Ki~wEHjfKYN`Dc~5%vZ1PFgYBkEFH5r$5s1lFf+O8Tj}0pcz1Hztyx}StDd^= znIb(zlDvs**-)D4T`yAN9xiwIO1;7~hJx)4zMB&JC+uAc5AGf_DQER0ktdPiXAn|p z@wG*5 zD6Rz(w21JUCVmQmIaA*qtz^yHtg!ZbY&n6BCF=IYYg;NL} zW2UN_1)xN-f#4jnhOU_Hx>s8>tESsQVv@O2)ods8C^F~CDIcjkG-2+l`P6L(njs>l zU3a>=$jQwtF#-8mk~>Q0p0O%F5v;}p6g*f2lr(jEK9IOxt&mHgC%7el;bL82Apu2L zfxgLi3gSgZjG9)>?3DD-gnXN2rM4IqpBny`pjqat^LTu&h-)T4IRLXt~zCxj*l zuY+jLnB{YoM%FMne8xDg$Sw~DaB1dV@mZLs8gi8PSxt>F!!22)tjtMS1t<*uww0T7#L$^O6sa^c~OcJ z;Xt$AkZVCqSWXu-A%R(j)!vZ>*Qw_yNE%m+id6jr@FdvY_433Cu)QyQad8}iDG6U+ z8F1A6{Ef%TUOcQt6&e&O*vzBSdF4J(udox0;!yF$C7d`KpQh?t}#vi zaz%YcYmLsM)z zB<}k=6*JuSHESCHAH~kK8T&#c&8bFA zzf$;pa!TP92!0N4g-jefzgE+EOEfH;ghV;;Ur;O|h+NfQKs&)x zLnD7=I&;;02#%xsNUA^{+xL`SBl8@>#`W@=67>;M#!g;rC#yzD=|G9d9Zt$ir06{v zHjDr-Qp`uO45{WHY=|Dh4=o}qCIN51lW4Y1eC&uGs}7Q3F&{Wt%Ifpi_oji;lj@+% zrLLEkm+*q*a|=%Ci~e@6eA6nhCTua%o{hf7M-Fw;BNtDR)i$71QC1SdZ>VjuQ?*VP zz6Wmmn$<_0l!JPZkQto9hdfi%Kad>BP8@31@UmWH^}SQ|u=^zPK1{aQ2a!y}w7Yvq zCJKi%OTzc0tJL%O0NZgcBiG}cWKgf*8tM4?o>aet{8+?z$#4ccP>HCKEV8@k3Lyw# zJWUWPi(-f}y>BT*ETlBdYd2^nC_|I13xG8k1#e5H6nUl6U;WMg?M)Y{Sy(h8>p1!L zqHVBLPona&Jv^DPn|_z;ylXiy$PZI9%k3%H$1=@ z07oK}fRR`fd&#NG0yq&nsl!Rtq^zM7Ya^6QaT`^VNp^)*VL1SUJ!IC^s7TTAl7*~$ zS;|I449UxtSY$-9PvM2*-}&kuF-qC1+Ggn$6=(ud&wvMsL?i+~~(B+y#foz(I;(Eww#GZAqf|gzN~~{Wb%LbKJjmieLBLBel2Bgtj|~$bzI; zZ?_P_VF>#r;b6OSod7HUYH2(N{!Duw-VsxPlC$#wgnX}PKmmDNKG zk5@Tkux&!EnO^7}gKoF_4sPD#DmOC1J|(O_n3m+!YrK)0|CsnkAtA*-Y!h=Vng|Mh zhMbejk{izY_+QZ_%WG%lL^i`3;ff5=-6^)Rkfq?{B1DYb#>qrAQLDP@=Z}LD1h~E! zS_xy7hD%vJkID^2wL3A_S%Vh(g(N*nneaVXxL^5X%(k+v;_s^avh;nH%Xmy|@MNw> z=avNpRxJ)TxYc)LjfyjeVDuwasU_j6EZZ;-R^$-;Pc&eP<7N;nGyjkAuhv5>1wzO! zEVXpb6I7X^CwlcaT&rZv`$53i?>(6TH@ZWhx6JImD)Gn0z~rmVzCWBAJg_ym`+`s^ zGyQnEqBJ&uCJd*6X6~rmjZBJ}S?U-3N~TyFbOUjgZf0GKj3^riim>MD4*VrXZ`R2R zBd^NF+NfzzOTk?1W~migw8?l@M~9t;N|cXcI{>#mGf9>NS*fW)W&H~1hA$Jt=|Nkh zMX%QrzTF*EYfp}~^%q9>EbK(MgiI)09QSeBZs!s!`U|7a`44}qiMiLhGcp5HeL%F0 z=!4L{sQo`yCcmu-s-jZzgHw?Qf~BT&`c36@Fu|nQoIeNccldH z$r|jRCmK@@DDz)fEGvb;AS(678`X2RIF&h~9|Ro3Jj5#WkIY__HMr~TduQhP@ln#& zuD&aUYrYbbW+4#PY>ho75HP{1-+x2<8%o6(#|n0(*yYr?VtRr7RQIC5ZcUxWS`eO| zE`CV#`6zAL+DPTi^&%}*h+$^%ISLdRAVtGVxZaV$V<_XQ>T(h0Uy02E8PTklv!ZIr zLw4MXY%toHkYtLglsSj)T*x#I39U>h=p04V+PT=F63ZiW(|q+E&9YP@B$U5fu?}KV zosHmS4>K?(+KneUtp`Db1L^87e~`*Ko7k+QPAV84kXM5Tx?}E_mAktP9$HC%iqGSZ zt9mCunHLwg(=TuEVr!_?5?wNQ>K<3kr99Yms_$t{2jkJB=Boael+7*9ma;Vh+PNBd zW15&=^o(14p^;LM;x8zc7&We%FG+{G5slm`uzQR)T?)36YYCyF=o6ObUZYnoYL~c| zmdf76gbcZx>wnrYtkw4#ea&0-N;2GT?Mf)3Q>4>b(axIHA1!@~NGm-I-asl)dyvNe z4Q(erU}@%(2?~vT2DDF3mzhrRslG;cmAlpT%W9a&cCyKoY%)6YIgj#JDljoc6Q1l% zc|1RO>LNSl7-JMXHN>T{>U}Xicxpgwaqtu|#_l6u@YGoEW+4tjj)5NUi=5)RI968N zlNbMDvtMzRJghA4As;sj|GKI_<*)a}PQ`M@Db~AK0&DrrDR$^4*S%Zy*AB%J8Ox3r z=iMyoUG$IgVY42V$MmBhH~N5nWRZ{({keV=ffHNf-P~S&mwPv(hp}Vo-Ar{UvBfOe zCb(X%9=#U)mK3Qqcb0@p)4`Eh0`+IA)4xj)9V+2|RYXuDvOhF>oeT#8h1scDeWk5k zP$t}lZH-Maj+^U+=l;^r_v!^vRfDHpfrnz5QJh+)Y4fUuFNjYV7) zAOXGMq2sboRH<$ecKj zv?MTK-5R%871wmBFQh-RS!xP9FCZu(4_~QonNNi@zEbzlm^ZGKj%KarsNd?zToh%s z2MLrwhAf^Y3S>5N&|mrJ4Q&;50-R_`#7vw*_%YS}Qs(gWOG^+P`3cdHFsEGn-IXeZ zdcqTOg%R{kqib9(aH`D`BXVneLSAS>F4h}s|9!@g)F($9WI_Ln0X z@1Zq;^44#yHTN4mjd!d^?l;`2TgO=S_Y-(z)JY_ zcQ!f=dYe5HsR0nv`gtYR{dLArkBpeBMp$26#JmzKP}ltygxTEj9*f`vxC!vpsxJhg zHp~3#66v$}!#E#LAnaq0 zMV3mp+lk5pp=^D;Re>kexdp;tT}Vn-{h3gI$a?Z2RH}9yIa=O9Yi#Pl`<#&ry{A6> zOjBC*M|3g)Mnxz$S3L|pipC!NfhdtOUa~Nd-PseYc4uM>`;l;+?E{zda8xr)#_QmA0#8@P~E*tMXx7Guw&w?{PgWCsSE}){c5v^(g=r5tJmUnIq^8 z3Zr1q^@^v=Q1(WQtNy#h9)^139P%tu7*(V) ze_tOyx&5~z$UcWsy+wz(fgI%|ZAnSV;6tAEOG;v0rO-tqt=_*PbVdn!NEQqe*ZPS3 zrsv8`65nmp$w76o3|mlq^7Ia$$WHVR6j0gH9?Oyw9XZ1YNTeivv%4k={qYPXA>Tff zc1!TD)&<*8kem~=0VYFjyF_Od7f7<|TmR0;mLZzJ0;IB*8?SsKU2azU9V5+lqy+hM ztW&=--1rxgQO@gF7b6h5xUoy#jhC=_>FzB-0}Ed7-Qp{im%On^fhCl6ZlAHgMSk_w7+ zm0=W=G^?zSHPCrdpd$#C-(}#yUU@cxEwR8iV}UmyyVyd!V`Q${8SAOuKA#sp89Ksj6AM&J0X1hUsnZQ-*s58dbCMQwOG1S%);M*igZ=mi(iJS)Cs>dghA1 z#p~K#*thQ6QyP1tay5^YupG}+pRS3=>xTZ2Z`O>pAPXt!csO| zxJ^rD6HNFo=B}kKt%2ApuO`vfWpTsB?#wsxz!tVoUPL2;qhHM3t$%-?D~3Szh9zB= zd!xW$p*{n>R?^@4h;-dZ_{H1{d~B9p~Rib$rj-?Cq+F9))Pr;7ud#Q=v0bT`5U8u8nM`| z<-ai|=!ea}!M$Fhv+oFxj(&1E!@`b3cyz&@sDA<@>VzhSIYZxt-dD4M)EDkb+)CTS zTQ=5lXIMSt#Dolwe*m9OjAuupk68Z21tpw+qKwVmOxezsJ(uqIl8Ip1K^X4ffpK!T zcR}!!IWVxMhF#-!YgV{kUfH4Ota%%InmDlp8&ZA5tK*ooJ}ooCkD_M8X8OY8{vXQz z1TLz2fBeVK0HdG=Sf;o(DjDu*R$!&XI>8o0tW zL9TU;%Wkoi{Vv;;f!W~!M{e_RH?osz=wNf+1CC3*gWZLE?~X4z^c=~}*{R!>_RI~) zmY1#EMxmDDBFDz(u@5EJKPEmm5EIB@!)J5`cf$tv$r?OO+O3AFZ7&Msq8X3ggi|d7 z{q{N|MC#Yxd&!76!{2brDd7S>M>m!foE+~qyFBP9^h#@LwL+{?mu~yE#B=L*WgP3O zZhw9Q0--gGkPe|1`{k49^cT*}QA5)}=$m5TU4MYO*nA^3wk(3+2d z1g?@?{^QYz1*2?Y`40J z5Bbr)Q?ocG?>l8a^pK;)aOohdC~@AuOU+;VywQ;!BJjPH`OiayEHT=D!%V(?^|p| zx@#*Bx@$)_c&obm7N3l)>da_1^B{jlH&|Ue(gb8$46GUBw$3~ljLWJWiR0wOG3!2d zE~y1rgmoJDradZ>+!GU4Xw#oq|8=ZXPa z*x6W>6&MwrnipM_rUkztoamAGNooZzksI~D#>5r`>MuC{m--mn8J$JwsMCF6L17;m z6mR7a03;}O%d3ujmv!$iDsRXrHbgbs73rna%Sc`}y)FNOubPP_TC%;@F1xlvj=wuJ zMmuyqugRCB49|tTWT}UbRcWWi6=n_3cE@GC_Jksp*wT_;-)?gf$f_f;*g~qx;n&u$$VXt3UdRBpHKJZbKD#BotX`APHpM;zTc=Hdd$?yh3y%8>Rfe3;_WlVI4hs}p=%(TZGoz2jr4rdCYFC~MIcgixky=lPS68YR^@|GIOd~Ho-KKFk* zF`)hR%F+aeJK~paV(RZ}A2L@w=BS9+H^@Bo7?=156QrQOb&!;m>o%8jrKD^Pl}f=^ z=jB3Ke=-qhD=9zoOh}wo0UHnPkxu(ckq_h>h%{G)@2S?jmdX8|d)&2YtgMY^xjFQn z+gBgY-BO+la|2OvY)*@HAuGhSWk*?7Y*O%`{jH2ycq8A*F!wy}7!wigFgrZqNR0S= zjJb6k^3?$PJ(>bTl8Q=&=)(w7e>8wk|M0;8`DBdLBfhU%|JBjI)CaJ+H zbE>=css=HC19N?rNl8QbmPc8fgR4K`zFe^MX3AMUMtzNUX2TPNBkd_H}B4NL>h8w@|q6(NO_WBg;XJ@)tasIQWjs#HK#u5=y$~fIHhWi z>W7l>FkCa8%>JKhUKOKclJt14*OHo8_#sCk_pUSFevBp27Xmh)`bA`y z$|AKl*qjGw=W&O1jxG@ka#h|&{O5A>nm_(j-kb!>TkHC|&PRoDC+OZEdi!c43n><|Jee#%f?4L2ab9mA}c0wAvHp z%3A*e+t$%fsXkl;mr`2@R>kyn84^hy55)Txon#lQd)II^4iqP*)R@341DU4dBF15SVeEw<20M|wS|HzuBG;-Wr`k$W&Wbe!rS>=qDky4cT z*VAmpYCg-i7(tGcY(KkukEZ=#48-Q%%~vBp<60K?h$UFF8Q=s*v-IOao>AUmlM3v6AwuLPGRp)h!w}z{^lkD{BqHZirWiI5pv(Q^C zg9paD?z(V$oVocKN6Uz@&CPe7LA0Y)vF_%ehQ7x@4S6MAx&E!zV8XF{3ulZbOKHsw zOmE0wk-mkaY9#6e`*MxI!gR~eB&-|@Ah=v4%+`33_M?%Nkm-*PXPm<(`}0*^#Ga`< zvo4X0@V=EU=aba#+mWQi&%T8xM@W*VlaU`VGn9)g&IkJHyVU4i$lKX^CLb~O{ne6N zjj40&kc+$RJ6an5@lfLLYndS1nK_y7TA*Vew;fd$3Zdnw-=wsxrzrwzFBU26We@3` zc=y($E!3?$=)_0PNx0=Z77LB~yRl!rcv3{w`7F!(7AG0B_g9P&~`5PP@c=|WPxE3W~ zGfLoT8KC>`lE1+&aU14L4%$gfQRB}Pg<-qF2vfK^9! zagl+vlH08Gpn28vjuEZxLlb(o<7?~T{^q})XHu!DyNZ{UVb$JS$5=O1Gndp5I@ev+ zJK`i$vR%}=zg;&6FzS<%PZuZRj) zX!VVZ&~7!(j@m*`=^Evq@SRH@RCVa67Lw)Iisa0hfkI_>sTj7(O; zICaGqN8UspP}%R;z|Iz#mQ<5FxFr&e<7KMvQ8@}JB0ri;KFNuSAQByrEMb9IiQn(j zSt&_~(=`_yF*m=6;PdTE*r7BZpIU!2;;C|^zJjOm;cIoQG6EzA>e}Me`5Py)&aREV zw*1elx0TvTlMG_TNWx)VfZVNOp|-RB&ha#fLcS#(rX1YX=gYiECiNqzSF#}0^x5TG z=$X#4BzC%Cr|Fg?>nprsf}0P)+{r9KIObO4b0m;V7d7d8_#$zV1jI}0N#5f8^!fI! z9ZGi)+RtN0!mZ@4MN;&_kuc6gqG^2joB!jxHm`Ddb4YiU8TL>`4vUS(Aw6&jg{#Nr zO$1Op|2dgWF-MoOSv4y$Emdx&eiIYBG+9XmTn@F>5Yncb_tZzm2h}0#-162M40Jge zuWr2YlA3l(yU8p(U;~&+`1jRBz}IBC^#p0H^B`k_dP`YR5{&u=nc9#LzN?1_{7Hcc zC!L%@^bre{=^ve)$~QlYEw2nsC0^6du@lz48auMdSUQ>4MAHtOhrsa-$SpK$XEHPA zg)_cd%@I!-BC1|ImG1RS8Tv@oMgIxD2yj(ZC*rS9z?xLUrc;^U$)xXj_VzC(CmL8E zn1aplX+{dtHas}v_Yz(fp@&h;*Vdk+@^UxPCsctrW_77Ezj?*s zn$~B7%on)rrMq9Aqc^nY9o#2ApoI^;_NO=>_o~W?%bN}dJ|LAXFk~8jFz2>WZm&@R zXDiiWZh*ijOM>!nojHAjqfPt<_5hKrFWP-&_7CQ=4UVo|`jT3{lhIY}7>euGLpdT} zT0ifIxqXA=$NgP_;hRG1-TKJZk5y^l@gvt1O(wsgk?{7g#S>zKmRtO{Ax2X~2$IJ=w*w zdsP)J?__*7wqY z$^1StO*}r_fDc%c+VgqPjC-9+h8-`HoVo^@*VQ@N_e`gnkRB3K>`H2seJ`mY{jawj zQ+Be`?x;2PJM-Z>r0Px71?Jktx@s^m9&l9Na$_L6YPqGhJknZ2Xjm89Tu7nedS6-j zzU3uVZbY{NT^7@JSo6@6yO@t{o{N@mPXzgs@y4@vW*BkVKU!mzsc%mdx~TnL%eOn4 zeMoU*t&Lqtv8F@NU(uaVCa&0AET_0hn-|IIjhBcOA{Y{#EypMz_L2ChBwUmJC|VYg zR+iBZ}+xhkyRl5FG62`Xn0B)UCgqC8FNVgTY z?E-YQorRA)Ng;NAC9Ex-_2r|Ug;hqZBIC{niC+k;LN-mX;)>b z@)L3O3ud3!9sRwxGoeZ^A+pj-2zj_9P3&XxsQTz3l7XH!_U7S!x@b?8_AKk%e0znS zN5WxBcG=ZdZM)gbl2cP)Zl--`QmiDz=5Mb%(!Cesp1gZntr%yl*wWun^TB}Q`wsd} zT@*K_!P-Tes%&!wo~jJCAl+%56gykmruca+HyToNxW9&zTqiycK7O|KpPoF&y4B$v z+x1m6&}UnJ)3%Pow%`^-?XOqEh!darzPV`MmgR59Wj9#83EVYP2_Agol_yWz0+NeIhlP<37+kyc> zL)wZE%l=Ee=bnl`^PMX-evG%C#dls%5terUK~d8Nhy}=;{V1x6ANxzz{ zG%~IHKkfTTd4dmY&&A;nyMAmH+OCE_t|3cm>?}Av(f3|x{OgjqS6R1wA=?>tWTmnx z-G6}AGql~>|3oO%b%!^|mnhVPh1?BBE?b+4&4A;wAL47-0%T1*Qw)^(LzrVm0SU4Y zuj_;O$!<_agMWtoj6LILYqh@=KMU|PW58R%@ZDtpKIoNlh$yMtkxQ8Vr$e&kLI=Ld zq4wfX%o&FY2+BF`oLwo_(;gGzrb_W8YF#OO-ZOQgi*iF3$MG9msRl-xf!>GJ`!oZ| zku(F7koI)6Reae?FmC0D=;~Q9r_=Zh=QiG3keKF-TlTa(#iT`f`qqEUV_GwN*K8Vd zwe>qhqlIUpH}2Ml<*|(?Cas63y#6^9GM~p1RQvk-lwv-!_s2agnG4~|$<|6qemVV% zo=n(9%K5fqR;AMBUN7I4Bv~IC!R$D5draBN^s2mgmDs3dogg(czG_q*@{19?(mgw{ zyjpzWXm5}yr`v4Bh~yyCv|&XtJJp&Lj% zxuN^`FY~=E?AKZ+Ua@T2b>;Y&mD%z!Lc;DlROdSw8MC)0Gse1~vhEIa41O+->Z?*@ z<<4KI;^MnT@!*g62Z`Ki2ndl9+5xsOgg;D9! z*k$+!O3aOJXvYY$PIbR1{ZbEuWhhU3JamjOwM)(N%+Td`r2WrEgB{{ORsp z+eFHzepstWd^v45c(P_%bp=|!pmaK zym8APM4h#A-sG&6l{v_wJ2P{Po!OI(&2K!&6u!MKflF#9M{91G%V1TOH4}eEJnd_= zKZBXe440bwr$Sh(+KUvLRa2RhRWon0Crj>68Yc5s$>P*TgFDOu87JBE!N)O~`UrSg z(B$y{=9c!|q4Y9`*=14ZBuw^9-rMJqV0uNzz5`%_tZS?L8T^eo+-PdokS(70>gh3W z+QaV0N#)?TN|={*-~n$V4%e0+tZ&s$QorG~nK++YcpLN9F^2m-_lZB;ubnpk*yiZi zBadZ_1@Zh(aGy9(-*RFobbMq&Iy)C|MlG2&-!(F!r8#&z!udCBPY5$FNtKc&(#Y8NLtbGhZ%!yFHV&;yg#AgYU3q)$6i9N}QMaXJtW#ZwX(RZy{Svdr>xnqjG9l z14lIo6=UW=cC;s9UAn!6-qVNUVunN~J1+aTV3&32o(`P*mz6-ZY2%pH{A~YxJCcI; zbI#kt1|s{@*xWhb_V<5Krs{&dC5y#mEh-vCOdgcSAPY3hYtHD^n6+>5+15$YUD=&L z;NfbFS7xeaQCf=zBM_%f0l@l^#gRRQU zAFQ#oG{H3U;7*cmJae>M+*s9CiR|);E$a%5$z7&Og3U7CP^E);{@{~xzaxuO%U9!_ z&J%g8|3=j3W{YU=5p9A_iBaS0HaJ`VifwnTK(e*O&R5maN@Q&RNcD_;-{ln^<>C;E z^BlW4(=?x3ob{rm?s`|AU|35r-X}?smwKc!@9a2_How^E=oB>;OJEGz32deNZ!z^T>?1*FgQ6xZy(HIscqc3LQ_xh|W1HkJ?QteMQ)IpV+YJlkoy2<7yEvxKz&Fn*SxeBdq|J%u#5)?HYc z&uF4G62R!`^!20Q1as@#eECk=d(}nQlF#ea5@&n9`%`JEkH{_|H7;`pUXr$pRnT2N zd61ukwHqB>ZeUijRYg-k`pN8;s#O-#Eiw}p{EYg??ms4S&u;D2jWlNT9s=R&mXu0Q{=&L3^bQg(T<6^;IAv)F&S)PL<-D^X{aKmEOpEDYSs6_4!*ae5i!`mDVsL~aV&nj z{mtdAFU{xoIJ&gSrkf31=gQdkeO}>lX~J?G2h49I`kzo$@gi7@G7BiO z{?MHLE^__wR%vG;nIWdT67VYm9{jt@}rtY zQm}ITBV6I3hX{vq8AitO5$<%)`8k34>GqgJ3?5Un%_po!S&$L+J1}GCh>6J5BV6?t z5Y8Om=4x>{Cs6A0v=KY+N$ZHQyQfv}{h4sf3yvIrX_75YX1hc#bf4&ysBYV0yUJf8 z7|8PE@oWhKTX}R4M87NgFt_$u>9wr(5|Y3ZdwHgz_Vms;o|PEWysDGBK1fL_XE*KM zW7Z*7H1pW*?;^i(E>otw*$kc=ctcW9Tn;=d$%CVkcm{o z$Q#vS4Oiu>r@8)T!^#6n`9!s(zZk!dTKQDuvc8h%z$@aMOo|?}+Nlt|vbIU1nbNpN zY;Zy)f!zs#H^h`f$|N20Zq^z#Z-2}hW~Yr+rrgZKlnp5?$y*C;Pu58OiyyC^@k5mB zY^Ci34vOBL_AAOGxvk=u)dX4K;qpIMUeE7xd(Y+0{K!6ud5+Q~>pgL5 z4c%SyT!&Tfl(HF^lq_3}xMqQa2ZK1;t%fJoJ7k3K&xszc?;0`1VP#x7BJJk=XPz_s zBc|N!l(G`(F5Dpw*4Ghw%Hu+53gb6UL}jhO5lZjEU{|pjRezUlrCh9BXj>_?t(4b| zk0AYn3vvQ0q{_(pf_B_Z2!_`xPAb9^cly>dI>GqzF$lS0^d^f`HIrggePR2ZE!kgC zzv-w7Rnu^uAZ0Mb-|PQ{?Zgao1{|lgdPhzgu&-K%Joe^{e=|JFEo3+#oBpQfI=09T zHa^{&vC=ysk%4|OyOAShJQ%n@4ICrG11NPkNL`-BsN^bQgq&2C5Vu^-ns5@r|4H1k zT4H~EcnhRnpConQo@6ppP3Bo#Y)Ut|#WOEAP*k3i`Xv{@VAtRbWoAsxHs7B3n(_8vHm+vx%83(v2kQuY z%-&!#-@!M1yW^SSU}8gU8__e32oHMvFpY}zwG}~MEvsY4tUV2rDPy&j#Z4phV>>e^ zMDEO-WLVotYK+bd-j7-9(L(S^TS|@~--bu^$41o-I*80+t;RffKy~)!+7FS?p2MeL zP-&>5`zxZVL;41XwUH8ngKWggjK^!%H!_og?NuNgIAGr(&kSMc zy82c8Rns;TmminCIKQ27mP5vqJk5B^5sa00ne?P_vG%b#BwM&BUW@Ireaw0WAz-sh zGK(}Af|HxS=8q_nMG-dXjv}M_&j=30ORkA|yx5bOu}HN+iu1&itQYV>&IYux11eTk z^4CxCV$zfs;ZfW;NdvX1Y#MTK662?;)=U8QQ7+qw5WGT#!Fr5Q`G61KoQaDfPo6m8 zE)2+Cv2Y0J`neVG`Q0M<{wF7HgpAS1;mjlnUhu|TZ{cGnmG#U7b)xpQ-KaRva7k|5 zm_y-VJpS_YGTi4N!rO4s9*YD!$NkNZ9^YMgVIG>FI6=b4m-@9;m;+bNu)ax@WstyJvqnw@t;e=C7&cexjdPRMH#Jy{$?6pI-s$YqFOL{H5-~eSCeMK~G|iKMEl+o9Y|2x7r=U9A;zds(0;@scy&?Dd#GyXGb%6zvJQ| z+L}B>z~yfLXO^5kre?>>>>r^sWD9uy=Fd3K!@N#^ zZdH&K3(nT(_&-*s6wN)KIJyo_l`|59WaA+vld%?sBV;}G2ZL)Vd!qP8b(M>0$mKR1 z*3?56NHg@IdC{kQS|rE6M|CCAMrH*%(4%CeZoj!*Hh;Qj`M0v+a?b}yQ=37XECq-9vu09o2 z6(hy_1c#c~?)U;uT@yZVWA6Rbkv3^Fab@qnx+al93qzi?)Q`N)2fSTd6$*~y6v7gw z7k{w&$vmQ52U*CWg+q~Y#fxYss_DhdB$)q8 z09KKbRM}+zoHSJ$MeNS;|E02fhCTX{vppo&sie5uz7?-!&Qn%cjs+&>s|)r5d1-v} zn4QzfwOpIf^`v`EZXj_REsJM-_LVFeRgK8uW3us8!}xHz$WmMecuXDt?6b-&`JB^? zuS@pUOh}BWe}N~NxCyRH%}c4c;1)_%XqdNU?VuQuoUcWNAR<2Lf_H)m(9mw>r@OY* zHh1m#_SQbBpS2tcV2^l~e<26JTTm)lkNb@N^4G_AW+fyTq3o2P+g&?cD#drhC_IHq z;^VMF?KtM2H@6`iI2|a?x0avfoH*q#=K7v{Pbi*Xtx+p zyfEQvrofaWSzF+%G?JTZ0#QDhn3kE$oJ9ZoI_FfI#A-s}=Nb9OM|5-K26}j=A#emn zB%8@!I@({c(A{${pNU^m<#z0=>)M>Uzx7-BD0{BIYp~GmKOvK2Q}G}t&?b@jrNB)I zY{dP3uvz`303oC!NuT+iPw z^Aq{o&2wQepZh4ig&A9e?Xn!7XQb};P7ZnphPI)*WK6Ip8aIy&cEdO}v-WPTu92HR zfAkK@Nc~_*|I|<7a!&=5uv67NBlQpeuNiT9p9T{$j^DbMJ3v`I5|bEAvi$GFFPG4gvZrM0#YzcdA;r8KyLAUx(_7E!ANpaZke^!$XPhC2-mVL161o z%`&zgX~*n6x7Pm_SF5gk@qbmn(`eON;lUtG0$=0frj7{yk;to{RAe~i85P>7gXU2wZjz5o_%Rreda z2!c+$H@klA=sqAmFkH{AdScwWBE|P0eQ$(zF&JlEC+!Gr{5RDpg;ifpHK!kRv`Op6 z+6v`1#qA%N#EtV){9|)f6YC$FUo+V)()<+JP4DJ#aju+c>x~Z6X{)LUiTTDsN8gz; zCs^f@W3>ae_-W*u ze4Dx7I68M;}UO6}9edj_V>id!~KbaUgDkA?N)%r1udtVLY>O43Bb}owHtK^4lDL{y4`!(G|!q4y4ar{$YlH zVxNsyVJCyb8Fj7?%(aKO5Oq9vQ`EnR2OQO970?sM^o3-HG^4*D)nYlR{vYOnLyq3w zSy&UFR;DlFqOHsA$AvszRzF$=@wg|3#lddAgXz-TU~omftRwPWH(3LvL8^{jaqJC3R7p-GA@_1m$_V&!bz^(If3yBfi^4sA9#J=4D;1D^Zn5& z?lxIZrczZ?skpE9R^x@L+WBg^YXeDg8p?a1xaXEPI7@|v`aFfG}@pvV{ zQnwHYCG%2?uU*;!SD$4}pDQ;a%E}_2B)8r>kJ|DT3ng+6JVp9@nSN#LO$Re_Arh$6 zm|S<{$dsn_Mo;t2auchpqX!nSFvmU94Q_wiz@(G%?TJ9VT4tQopvIN{5hvZXEaCco zLZTcQZxwLdSPeu)E`RHYx%xZDvl(~pCk2=;B|68mDUnk|zMn*=sP0FRlFmQr>dMvB z_l0uz0vD9*Okg)1_4>w7%%$HW8s#5V8$*#(H+_tQc(9cIS61?JSdPhxviz_Y_ex8P2_ zKECRE=?>h5Tiy1R&cjnk0lO`3x|)EU#P~xKO!4Ta4rJx_{ME`~CY`ID66ENaT$ttF zdMb+TC0B|tuzZU;q~%GHBT(2t0{(HchvG#)K>W@lUTiG)yhI`}JpZ@?f%z z{74yNeiT7)GBx~o@U#5Dh-m*--#2l-KcYM_NY3;gzXTb^f4p%$Z&@EnVyRSO;{iE< z%%YBP%gOwa>r@%txXE^&H@}k8^pEmNJ~IO(Wgz`>)vp}nRAw8Mi0(kE9g>(VfmF5H z{2^}=@`+ONf3=@;c#gZs3|Wo~JFoe&yD`yS+gCU~x94{QzHo2-6Vd!gwDs&#b3nag zYDD#|<{kBpnT+e4l`pC&nO*F0C1v(>4MX`S6LT=N$db+>=p(j#X79GmVnUf*F-%bE`Z>#^oPmNoh5< zjY+@j1NLeU)9SXl=}JFatJ{sX)nl}}RGUxM>enXO=GSTUplfXPOs#%2-&QZx>icqR zb(vOI<|(z;Sfn*Rur-Y3TK$YxuhQ!4#@G(rr`1bzfF9TCF=K7>r?mRy6kGj@R=+vQ zR==**+f;yPowsO>#K|f}TJF&5Wmk#1LqvM1Ir~)9By;bnsP^ZVl+G+#=qju7xXNa^ zDhf(x7nu#GqV9;DUof|-$W^qkoNOR!gTUFq?tlvQM*T$&6{VIz*^9pV#t0*ZgB>yU^ zN=r*hXB)GNN{cEAM|R+?=!yK5>#{`A-Cm|5w}QSrN6YaE%LuGHCD z{qG`MUC*_h^7Co)Tx~vEn?Iog&}F7=|7vYMdX}xe&9dL0rOofwIrrc+uWjK$?ZA23 z!sFV32WQykGql>g-c}cD_0?K^qgJ1<)eE)ygX?VjUaj_N^$M+iY}~cBg<7rg%M4q6 zzgBmcYO9~;yLIwAu4~VFKG`b2H?{gPZ9ig$l*LXd)ylN#PyVor`wbX0+n8HcR_-b( zbW*v~ixz)0z+eP5u7=p$@oG!GF;YI~=z6rM4H=pRd(_XV^T< z3>{E!SmVEOl(zVj$BtQ}X8S5zouYZQ=6ucjG!JTan{V4+uDRc)*BG?GHu#6;x0+KH z+WPNl4qs%eU)8+sCR_c1X8XmqdW_~A&10HUH&iEZ$c=3Pr|^$(g) z=`zx?+SV`DJnt4;y;8GIGjOY|f0r-aY#HIaCZ@2gf@Zp;w8)$j;Y^)rgn$3}!meU9 zE9@5@(&~cSY;~-za;4h*BW-^Fa@+h%t^SWT|3<4{T&B7Y^NmPnJM&bev!l5`(%HkT ziF96O7DYNQ_DX|q&|a6#FET32cs}R%470rQTNy}KjQ`3G=I4G}UHhf2{?|%d9nk9E zYHW2oZGV7PchTxyt88=Qu1_3s1Akd4W?y31zvOiDmuAj%0A8O4*lZe>uiso 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 KJ@^l5(EkHAN91n+ diff --git a/3rdparty/bx/tools/bin/windows/genie.exe b/3rdparty/bx/tools/bin/windows/genie.exe index c03dd7aeeec881d69eb4d91b3c749e5351a5a7c8..41209789d9f46e88ceba2cbb75addad4f9dd3265 100644 GIT binary patch delta 135647 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 jBJZdEmO%?$`;6YcDXKq6=0o$I2~I(|N;& delta 101429 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%0AWChn!Y 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 - -#define ldump_c -#define LUA_CORE - -#include "lua.h" - -#include "lobject.h" -#include "lstate.h" -#include "lundump.h" - -typedef struct { - lua_State* L; - lua_Writer writer; - void* data; - int strip; - int status; -} DumpState; - -#define DumpMem(b,n,size,D) DumpBlock(b,(n)*(size),D) -#define DumpVar(x,D) DumpMem(&x,1,sizeof(x),D) - -static void DumpBlock(const void* b, size_t size, DumpState* D) -{ - if (D->status==0) - { - lua_unlock(D->L); - D->status=(*D->writer)(D->L,b,size,D->data); - lua_lock(D->L); - } -} - -static void DumpChar(int y, DumpState* D) -{ - char x=(char)y; - DumpVar(x,D); -} - -static void DumpInt(int x, DumpState* D) -{ - DumpVar(x,D); -} - -static void DumpNumber(lua_Number x, DumpState* D) -{ - DumpVar(x,D); -} - -static void DumpVector(const void* b, int n, size_t size, DumpState* D) -{ - DumpInt(n,D); - DumpMem(b,n,size,D); -} - -static void DumpString(const TString* s, DumpState* D) -{ - if (s==NULL) - { - size_t size=0; - DumpVar(size,D); - } - else - { - size_t size=s->tsv.len+1; /* include trailing '\0' */ - DumpVar(size,D); - DumpBlock(getstr(s),size*sizeof(char),D); - } -} - -#define DumpCode(f,D) DumpVector(f->code,f->sizecode,sizeof(Instruction),D) - -static void DumpFunction(const Proto* f, DumpState* D); - -static void DumpConstants(const Proto* f, DumpState* D) -{ - int i,n=f->sizek; - DumpInt(n,D); - for (i=0; ik[i]; - DumpChar(ttypenv(o),D); - switch (ttypenv(o)) - { - case LUA_TNIL: - break; - case LUA_TBOOLEAN: - DumpChar(bvalue(o),D); - break; - case LUA_TNUMBER: - DumpNumber(nvalue(o),D); - break; - case LUA_TSTRING: - DumpString(rawtsvalue(o),D); - break; - default: lua_assert(0); - } - } - n=f->sizep; - DumpInt(n,D); - for (i=0; ip[i],D); -} - -static void DumpUpvalues(const Proto* f, DumpState* D) -{ - int i,n=f->sizeupvalues; - DumpInt(n,D); - for (i=0; iupvalues[i].instack,D); - DumpChar(f->upvalues[i].idx,D); - } -} - -static void DumpDebug(const Proto* f, DumpState* D) -{ - int i,n; - DumpString((D->strip) ? NULL : f->source,D); - n= (D->strip) ? 0 : f->sizelineinfo; - DumpVector(f->lineinfo,n,sizeof(int),D); - n= (D->strip) ? 0 : f->sizelocvars; - DumpInt(n,D); - for (i=0; ilocvars[i].varname,D); - DumpInt(f->locvars[i].startpc,D); - DumpInt(f->locvars[i].endpc,D); - } - n= (D->strip) ? 0 : f->sizeupvalues; - DumpInt(n,D); - for (i=0; iupvalues[i].name,D); -} - -static void DumpFunction(const Proto* f, DumpState* D) -{ - DumpInt(f->linedefined,D); - DumpInt(f->lastlinedefined,D); - DumpChar(f->numparams,D); - DumpChar(f->is_vararg,D); - DumpChar(f->maxstacksize,D); - DumpCode(f,D); - DumpConstants(f,D); - DumpUpvalues(f,D); - DumpDebug(f,D); -} - -static void DumpHeader(DumpState* D) -{ - lu_byte h[LUAC_HEADERSIZE]; - luaU_header(h); - DumpBlock(h,LUAC_HEADERSIZE,D); -} - -/* -** dump Lua function as precompiled chunk -*/ -int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip) -{ - DumpState D; - D.L=L; - D.writer=w; - D.data=data; - D.strip=strip; - D.status=0; - DumpHeader(&D); - DumpFunction(f,&D); - return D.status; -} diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c b/3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c deleted file mode 100644 index e90e1520ce9..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c +++ /dev/null @@ -1,161 +0,0 @@ -/* -** $Id: lfunc.c,v 2.30.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions to manipulate prototypes and closures -** See Copyright Notice in lua.h -*/ - - -#include - -#define lfunc_c -#define LUA_CORE - -#include "lua.h" - -#include "lfunc.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" - - - -Closure *luaF_newCclosure (lua_State *L, int n) { - Closure *c = &luaC_newobj(L, LUA_TCCL, sizeCclosure(n), NULL, 0)->cl; - c->c.nupvalues = cast_byte(n); - return c; -} - - -Closure *luaF_newLclosure (lua_State *L, int n) { - Closure *c = &luaC_newobj(L, LUA_TLCL, sizeLclosure(n), NULL, 0)->cl; - c->l.p = NULL; - c->l.nupvalues = cast_byte(n); - while (n--) c->l.upvals[n] = NULL; - return c; -} - - -UpVal *luaF_newupval (lua_State *L) { - UpVal *uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), NULL, 0)->uv; - uv->v = &uv->u.value; - setnilvalue(uv->v); - return uv; -} - - -UpVal *luaF_findupval (lua_State *L, StkId level) { - global_State *g = G(L); - GCObject **pp = &L->openupval; - UpVal *p; - UpVal *uv; - while (*pp != NULL && (p = gco2uv(*pp))->v >= level) { - GCObject *o = obj2gco(p); - lua_assert(p->v != &p->u.value); - lua_assert(!isold(o) || isold(obj2gco(L))); - if (p->v == level) { /* found a corresponding upvalue? */ - if (isdead(g, o)) /* is it dead? */ - changewhite(o); /* resurrect it */ - return p; - } - pp = &p->next; - } - /* not found: create a new one */ - uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), pp, 0)->uv; - uv->v = level; /* current value lives in the stack */ - uv->u.l.prev = &g->uvhead; /* double link it in `uvhead' list */ - uv->u.l.next = g->uvhead.u.l.next; - uv->u.l.next->u.l.prev = uv; - g->uvhead.u.l.next = uv; - lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); - return uv; -} - - -static void unlinkupval (UpVal *uv) { - lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); - uv->u.l.next->u.l.prev = uv->u.l.prev; /* remove from `uvhead' list */ - uv->u.l.prev->u.l.next = uv->u.l.next; -} - - -void luaF_freeupval (lua_State *L, UpVal *uv) { - if (uv->v != &uv->u.value) /* is it open? */ - unlinkupval(uv); /* remove from open list */ - luaM_free(L, uv); /* free upvalue */ -} - - -void luaF_close (lua_State *L, StkId level) { - UpVal *uv; - global_State *g = G(L); - while (L->openupval != NULL && (uv = gco2uv(L->openupval))->v >= level) { - GCObject *o = obj2gco(uv); - lua_assert(!isblack(o) && uv->v != &uv->u.value); - L->openupval = uv->next; /* remove from `open' list */ - if (isdead(g, o)) - luaF_freeupval(L, uv); /* free upvalue */ - else { - unlinkupval(uv); /* remove upvalue from 'uvhead' list */ - setobj(L, &uv->u.value, uv->v); /* move value to upvalue slot */ - uv->v = &uv->u.value; /* now current value lives here */ - gch(o)->next = g->allgc; /* link upvalue into 'allgc' list */ - g->allgc = o; - luaC_checkupvalcolor(g, uv); - } - } -} - - -Proto *luaF_newproto (lua_State *L) { - Proto *f = &luaC_newobj(L, LUA_TPROTO, sizeof(Proto), NULL, 0)->p; - f->k = NULL; - f->sizek = 0; - f->p = NULL; - f->sizep = 0; - f->code = NULL; - f->cache = NULL; - f->sizecode = 0; - f->lineinfo = NULL; - f->sizelineinfo = 0; - f->upvalues = NULL; - f->sizeupvalues = 0; - f->numparams = 0; - f->is_vararg = 0; - f->maxstacksize = 0; - f->locvars = NULL; - f->sizelocvars = 0; - f->linedefined = 0; - f->lastlinedefined = 0; - f->source = NULL; - return f; -} - - -void luaF_freeproto (lua_State *L, Proto *f) { - luaM_freearray(L, f->code, f->sizecode); - luaM_freearray(L, f->p, f->sizep); - luaM_freearray(L, f->k, f->sizek); - luaM_freearray(L, f->lineinfo, f->sizelineinfo); - luaM_freearray(L, f->locvars, f->sizelocvars); - luaM_freearray(L, f->upvalues, f->sizeupvalues); - luaM_free(L, f); -} - - -/* -** Look for n-th local variable at line `line' in function `func'. -** Returns NULL if not found. -*/ -const char *luaF_getlocalname (const Proto *f, int local_number, int pc) { - int i; - for (i = 0; isizelocvars && f->locvars[i].startpc <= pc; i++) { - if (pc < f->locvars[i].endpc) { /* is variable active? */ - local_number--; - if (local_number == 0) - return getstr(f->locvars[i].varname); - } - } - return NULL; /* not found */ -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/llimits.h b/3rdparty/genie/src/host/lua-5.2.3/src/llimits.h deleted file mode 100644 index 152dd055154..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/llimits.h +++ /dev/null @@ -1,309 +0,0 @@ -/* -** $Id: llimits.h,v 1.103.1.1 2013/04/12 18:48:47 roberto Exp $ -** Limits, basic types, and some other `installation-dependent' definitions -** See Copyright Notice in lua.h -*/ - -#ifndef llimits_h -#define llimits_h - - -#include -#include - - -#include "lua.h" - - -typedef unsigned LUA_INT32 lu_int32; - -typedef LUAI_UMEM lu_mem; - -typedef LUAI_MEM l_mem; - - - -/* chars used as small naturals (so that `char' is reserved for characters) */ -typedef unsigned char lu_byte; - - -#define MAX_SIZET ((size_t)(~(size_t)0)-2) - -#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) - -#define MAX_LMEM ((l_mem) ((MAX_LUMEM >> 1) - 2)) - - -#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ - -/* -** conversion of pointer to integer -** this is for hashing only; there is no problem if the integer -** cannot hold the whole pointer value -*/ -#define IntPoint(p) ((unsigned int)(lu_mem)(p)) - - - -/* type to ensure maximum alignment */ -#if !defined(LUAI_USER_ALIGNMENT_T) -#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; } -#endif - -typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; - - -/* result of a `usual argument conversion' over lua_Number */ -typedef LUAI_UACNUMBER l_uacNumber; - - -/* internal assertions for in-house debugging */ -#if defined(lua_assert) -#define check_exp(c,e) (lua_assert(c), (e)) -/* to avoid problems with conditions too long */ -#define lua_longassert(c) { if (!(c)) lua_assert(0); } -#else -#define lua_assert(c) ((void)0) -#define check_exp(c,e) (e) -#define lua_longassert(c) ((void)0) -#endif - -/* -** assertion for checking API calls -*/ -#if !defined(luai_apicheck) - -#if defined(LUA_USE_APICHECK) -#include -#define luai_apicheck(L,e) assert(e) -#else -#define luai_apicheck(L,e) lua_assert(e) -#endif - -#endif - -#define api_check(l,e,msg) luai_apicheck(l,(e) && msg) - - -#if !defined(UNUSED) -#define UNUSED(x) ((void)(x)) /* to avoid warnings */ -#endif - - -#define cast(t, exp) ((t)(exp)) - -#define cast_byte(i) cast(lu_byte, (i)) -#define cast_num(i) cast(lua_Number, (i)) -#define cast_int(i) cast(int, (i)) -#define cast_uchar(i) cast(unsigned char, (i)) - - -/* -** non-return type -*/ -#if defined(__GNUC__) -#define l_noret void __attribute__((noreturn)) -#elif defined(_MSC_VER) -#define l_noret void __declspec(noreturn) -#else -#define l_noret void -#endif - - - -/* -** maximum depth for nested C calls and syntactical nested non-terminals -** in a program. (Value must fit in an unsigned short int.) -*/ -#if !defined(LUAI_MAXCCALLS) -#define LUAI_MAXCCALLS 200 -#endif - -/* -** maximum number of upvalues in a closure (both C and Lua). (Value -** must fit in an unsigned char.) -*/ -#define MAXUPVAL UCHAR_MAX - - -/* -** type for virtual-machine instructions -** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) -*/ -typedef lu_int32 Instruction; - - - -/* maximum stack for a Lua function */ -#define MAXSTACK 250 - - - -/* minimum size for the string table (must be power of 2) */ -#if !defined(MINSTRTABSIZE) -#define MINSTRTABSIZE 32 -#endif - - -/* minimum size for string buffer */ -#if !defined(LUA_MINBUFFER) -#define LUA_MINBUFFER 32 -#endif - - -#if !defined(lua_lock) -#define lua_lock(L) ((void) 0) -#define lua_unlock(L) ((void) 0) -#endif - -#if !defined(luai_threadyield) -#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} -#endif - - -/* -** these macros allow user-specific actions on threads when you defined -** LUAI_EXTRASPACE and need to do something extra when a thread is -** created/deleted/resumed/yielded. -*/ -#if !defined(luai_userstateopen) -#define luai_userstateopen(L) ((void)L) -#endif - -#if !defined(luai_userstateclose) -#define luai_userstateclose(L) ((void)L) -#endif - -#if !defined(luai_userstatethread) -#define luai_userstatethread(L,L1) ((void)L) -#endif - -#if !defined(luai_userstatefree) -#define luai_userstatefree(L,L1) ((void)L) -#endif - -#if !defined(luai_userstateresume) -#define luai_userstateresume(L,n) ((void)L) -#endif - -#if !defined(luai_userstateyield) -#define luai_userstateyield(L,n) ((void)L) -#endif - -/* -** lua_number2int is a macro to convert lua_Number to int. -** lua_number2integer is a macro to convert lua_Number to lua_Integer. -** lua_number2unsigned is a macro to convert a lua_Number to a lua_Unsigned. -** lua_unsigned2number is a macro to convert a lua_Unsigned to a lua_Number. -** luai_hashnum is a macro to hash a lua_Number value into an integer. -** The hash must be deterministic and give reasonable values for -** both small and large values (outside the range of integers). -*/ - -#if defined(MS_ASMTRICK) || defined(LUA_MSASMTRICK) /* { */ -/* trick with Microsoft assembler for X86 */ - -#define lua_number2int(i,n) __asm {__asm fld n __asm fistp i} -#define lua_number2integer(i,n) lua_number2int(i, n) -#define lua_number2unsigned(i,n) \ - {__int64 l; __asm {__asm fld n __asm fistp l} i = (unsigned int)l;} - - -#elif defined(LUA_IEEE754TRICK) /* }{ */ -/* the next trick should work on any machine using IEEE754 with - a 32-bit int type */ - -union luai_Cast { double l_d; LUA_INT32 l_p[2]; }; - -#if !defined(LUA_IEEEENDIAN) /* { */ -#define LUAI_EXTRAIEEE \ - static const union luai_Cast ieeeendian = {-(33.0 + 6755399441055744.0)}; -#define LUA_IEEEENDIANLOC (ieeeendian.l_p[1] == 33) -#else -#define LUA_IEEEENDIANLOC LUA_IEEEENDIAN -#define LUAI_EXTRAIEEE /* empty */ -#endif /* } */ - -#define lua_number2int32(i,n,t) \ - { LUAI_EXTRAIEEE \ - volatile union luai_Cast u; u.l_d = (n) + 6755399441055744.0; \ - (i) = (t)u.l_p[LUA_IEEEENDIANLOC]; } - -#define luai_hashnum(i,n) \ - { volatile union luai_Cast u; u.l_d = (n) + 1.0; /* avoid -0 */ \ - (i) = u.l_p[0]; (i) += u.l_p[1]; } /* add double bits for his hash */ - -#define lua_number2int(i,n) lua_number2int32(i, n, int) -#define lua_number2unsigned(i,n) lua_number2int32(i, n, lua_Unsigned) - -/* the trick can be expanded to lua_Integer when it is a 32-bit value */ -#if defined(LUA_IEEELL) -#define lua_number2integer(i,n) lua_number2int32(i, n, lua_Integer) -#endif - -#endif /* } */ - - -/* the following definitions always work, but may be slow */ - -#if !defined(lua_number2int) -#define lua_number2int(i,n) ((i)=(int)(n)) -#endif - -#if !defined(lua_number2integer) -#define lua_number2integer(i,n) ((i)=(lua_Integer)(n)) -#endif - -#if !defined(lua_number2unsigned) /* { */ -/* the following definition assures proper modulo behavior */ -#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_NUMBER_FLOAT) -#include -#define SUPUNSIGNED ((lua_Number)(~(lua_Unsigned)0) + 1) -#define lua_number2unsigned(i,n) \ - ((i)=(lua_Unsigned)((n) - floor((n)/SUPUNSIGNED)*SUPUNSIGNED)) -#else -#define lua_number2unsigned(i,n) ((i)=(lua_Unsigned)(n)) -#endif -#endif /* } */ - - -#if !defined(lua_unsigned2number) -/* on several machines, coercion from unsigned to double is slow, - so it may be worth to avoid */ -#define lua_unsigned2number(u) \ - (((u) <= (lua_Unsigned)INT_MAX) ? (lua_Number)(int)(u) : (lua_Number)(u)) -#endif - - - -#if defined(ltable_c) && !defined(luai_hashnum) - -#include -#include - -#define luai_hashnum(i,n) { int e; \ - n = l_mathop(frexp)(n, &e) * (lua_Number)(INT_MAX - DBL_MAX_EXP); \ - lua_number2int(i, n); i += e; } - -#endif - - - -/* -** macro to control inclusion of some hard tests on stack reallocation -*/ -#if !defined(HARDSTACKTESTS) -#define condmovestack(L) ((void)0) -#else -/* realloc stack keeping its size */ -#define condmovestack(L) luaD_reallocstack((L), (L)->stacksize) -#endif - -#if !defined(HARDMEMTESTS) -#define condchangemem(L) condmovestack(L) -#else -#define condchangemem(L) \ - ((void)(!(G(L)->gcrunning) || (luaC_fullgc(L, 0), 1))) -#endif - -#endif diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lmathlib.c b/3rdparty/genie/src/host/lua-5.2.3/src/lmathlib.c deleted file mode 100644 index fe9fc5423d1..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lmathlib.c +++ /dev/null @@ -1,279 +0,0 @@ -/* -** $Id: lmathlib.c,v 1.83.1.1 2013/04/12 18:48:47 roberto Exp $ -** Standard mathematical library -** See Copyright Notice in lua.h -*/ - - -#include -#include - -#define lmathlib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#undef PI -#define PI ((lua_Number)(3.1415926535897932384626433832795)) -#define RADIANS_PER_DEGREE ((lua_Number)(PI/180.0)) - - - -static int math_abs (lua_State *L) { - lua_pushnumber(L, l_mathop(fabs)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_sin (lua_State *L) { - lua_pushnumber(L, l_mathop(sin)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_sinh (lua_State *L) { - lua_pushnumber(L, l_mathop(sinh)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_cos (lua_State *L) { - lua_pushnumber(L, l_mathop(cos)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_cosh (lua_State *L) { - lua_pushnumber(L, l_mathop(cosh)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_tan (lua_State *L) { - lua_pushnumber(L, l_mathop(tan)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_tanh (lua_State *L) { - lua_pushnumber(L, l_mathop(tanh)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_asin (lua_State *L) { - lua_pushnumber(L, l_mathop(asin)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_acos (lua_State *L) { - lua_pushnumber(L, l_mathop(acos)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_atan (lua_State *L) { - lua_pushnumber(L, l_mathop(atan)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_atan2 (lua_State *L) { - lua_pushnumber(L, l_mathop(atan2)(luaL_checknumber(L, 1), - luaL_checknumber(L, 2))); - return 1; -} - -static int math_ceil (lua_State *L) { - lua_pushnumber(L, l_mathop(ceil)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_floor (lua_State *L) { - lua_pushnumber(L, l_mathop(floor)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_fmod (lua_State *L) { - lua_pushnumber(L, l_mathop(fmod)(luaL_checknumber(L, 1), - luaL_checknumber(L, 2))); - return 1; -} - -static int math_modf (lua_State *L) { - lua_Number ip; - lua_Number fp = l_mathop(modf)(luaL_checknumber(L, 1), &ip); - lua_pushnumber(L, ip); - lua_pushnumber(L, fp); - return 2; -} - -static int math_sqrt (lua_State *L) { - lua_pushnumber(L, l_mathop(sqrt)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_pow (lua_State *L) { - lua_Number x = luaL_checknumber(L, 1); - lua_Number y = luaL_checknumber(L, 2); - lua_pushnumber(L, l_mathop(pow)(x, y)); - return 1; -} - -static int math_log (lua_State *L) { - lua_Number x = luaL_checknumber(L, 1); - lua_Number res; - if (lua_isnoneornil(L, 2)) - res = l_mathop(log)(x); - else { - lua_Number base = luaL_checknumber(L, 2); - if (base == (lua_Number)10.0) res = l_mathop(log10)(x); - else res = l_mathop(log)(x)/l_mathop(log)(base); - } - lua_pushnumber(L, res); - return 1; -} - -#if defined(LUA_COMPAT_LOG10) -static int math_log10 (lua_State *L) { - lua_pushnumber(L, l_mathop(log10)(luaL_checknumber(L, 1))); - return 1; -} -#endif - -static int math_exp (lua_State *L) { - lua_pushnumber(L, l_mathop(exp)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_deg (lua_State *L) { - lua_pushnumber(L, luaL_checknumber(L, 1)/RADIANS_PER_DEGREE); - return 1; -} - -static int math_rad (lua_State *L) { - lua_pushnumber(L, luaL_checknumber(L, 1)*RADIANS_PER_DEGREE); - return 1; -} - -static int math_frexp (lua_State *L) { - int e; - lua_pushnumber(L, l_mathop(frexp)(luaL_checknumber(L, 1), &e)); - lua_pushinteger(L, e); - return 2; -} - -static int math_ldexp (lua_State *L) { - lua_Number x = luaL_checknumber(L, 1); - int ep = luaL_checkint(L, 2); - lua_pushnumber(L, l_mathop(ldexp)(x, ep)); - return 1; -} - - - -static int math_min (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - lua_Number dmin = luaL_checknumber(L, 1); - int i; - for (i=2; i<=n; i++) { - lua_Number d = luaL_checknumber(L, i); - if (d < dmin) - dmin = d; - } - lua_pushnumber(L, dmin); - return 1; -} - - -static int math_max (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - lua_Number dmax = luaL_checknumber(L, 1); - int i; - for (i=2; i<=n; i++) { - lua_Number d = luaL_checknumber(L, i); - if (d > dmax) - dmax = d; - } - lua_pushnumber(L, dmax); - return 1; -} - - -static int math_random (lua_State *L) { - /* the `%' avoids the (rare) case of r==1, and is needed also because on - some systems (SunOS!) `rand()' may return a value larger than RAND_MAX */ - lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX; - switch (lua_gettop(L)) { /* check number of arguments */ - case 0: { /* no arguments */ - lua_pushnumber(L, r); /* Number between 0 and 1 */ - break; - } - case 1: { /* only upper limit */ - lua_Number u = luaL_checknumber(L, 1); - luaL_argcheck(L, (lua_Number)1.0 <= u, 1, "interval is empty"); - lua_pushnumber(L, l_mathop(floor)(r*u) + (lua_Number)(1.0)); /* [1, u] */ - break; - } - case 2: { /* lower and upper limits */ - lua_Number l = luaL_checknumber(L, 1); - lua_Number u = luaL_checknumber(L, 2); - luaL_argcheck(L, l <= u, 2, "interval is empty"); - lua_pushnumber(L, l_mathop(floor)(r*(u-l+1)) + l); /* [l, u] */ - break; - } - default: return luaL_error(L, "wrong number of arguments"); - } - return 1; -} - - -static int math_randomseed (lua_State *L) { - srand(luaL_checkunsigned(L, 1)); - (void)rand(); /* discard first value to avoid undesirable correlations */ - return 0; -} - - -static const luaL_Reg mathlib[] = { - {"abs", math_abs}, - {"acos", math_acos}, - {"asin", math_asin}, - {"atan2", math_atan2}, - {"atan", math_atan}, - {"ceil", math_ceil}, - {"cosh", math_cosh}, - {"cos", math_cos}, - {"deg", math_deg}, - {"exp", math_exp}, - {"floor", math_floor}, - {"fmod", math_fmod}, - {"frexp", math_frexp}, - {"ldexp", math_ldexp}, -#if defined(LUA_COMPAT_LOG10) - {"log10", math_log10}, -#endif - {"log", math_log}, - {"max", math_max}, - {"min", math_min}, - {"modf", math_modf}, - {"pow", math_pow}, - {"rad", math_rad}, - {"random", math_random}, - {"randomseed", math_randomseed}, - {"sinh", math_sinh}, - {"sin", math_sin}, - {"sqrt", math_sqrt}, - {"tanh", math_tanh}, - {"tan", math_tan}, - {NULL, NULL} -}; - - -/* -** Open math library -*/ -LUAMOD_API int luaopen_math (lua_State *L) { - luaL_newlib(L, mathlib); - lua_pushnumber(L, PI); - lua_setfield(L, -2, "pi"); - lua_pushnumber(L, HUGE_VAL); - lua_setfield(L, -2, "huge"); - return 1; -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lobject.c b/3rdparty/genie/src/host/lua-5.2.3/src/lobject.c deleted file mode 100644 index 882d994d413..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lobject.c +++ /dev/null @@ -1,287 +0,0 @@ -/* -** $Id: lobject.c,v 2.58.1.1 2013/04/12 18:48:47 roberto Exp $ -** Some generic functions over Lua objects -** See Copyright Notice in lua.h -*/ - -#include -#include -#include -#include - -#define lobject_c -#define LUA_CORE - -#include "lua.h" - -#include "lctype.h" -#include "ldebug.h" -#include "ldo.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "lvm.h" - - - -LUAI_DDEF const TValue luaO_nilobject_ = {NILCONSTANT}; - - -/* -** converts an integer to a "floating point byte", represented as -** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if -** eeeee != 0 and (xxx) otherwise. -*/ -int luaO_int2fb (unsigned int x) { - int e = 0; /* exponent */ - if (x < 8) return x; - while (x >= 0x10) { - x = (x+1) >> 1; - e++; - } - return ((e+1) << 3) | (cast_int(x) - 8); -} - - -/* converts back */ -int luaO_fb2int (int x) { - int e = (x >> 3) & 0x1f; - if (e == 0) return x; - else return ((x & 7) + 8) << (e - 1); -} - - -int luaO_ceillog2 (unsigned int x) { - static const lu_byte log_2[256] = { - 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 - }; - int l = 0; - x--; - while (x >= 256) { l += 8; x >>= 8; } - return l + log_2[x]; -} - - -lua_Number luaO_arith (int op, lua_Number v1, lua_Number v2) { - switch (op) { - case LUA_OPADD: return luai_numadd(NULL, v1, v2); - case LUA_OPSUB: return luai_numsub(NULL, v1, v2); - case LUA_OPMUL: return luai_nummul(NULL, v1, v2); - case LUA_OPDIV: return luai_numdiv(NULL, v1, v2); - case LUA_OPMOD: return luai_nummod(NULL, v1, v2); - case LUA_OPPOW: return luai_numpow(NULL, v1, v2); - case LUA_OPUNM: return luai_numunm(NULL, v1); - default: lua_assert(0); return 0; - } -} - - -int luaO_hexavalue (int c) { - if (lisdigit(c)) return c - '0'; - else return ltolower(c) - 'a' + 10; -} - - -#if !defined(lua_strx2number) - -#include - - -static int isneg (const char **s) { - if (**s == '-') { (*s)++; return 1; } - else if (**s == '+') (*s)++; - return 0; -} - - -static lua_Number readhexa (const char **s, lua_Number r, int *count) { - for (; lisxdigit(cast_uchar(**s)); (*s)++) { /* read integer part */ - r = (r * cast_num(16.0)) + cast_num(luaO_hexavalue(cast_uchar(**s))); - (*count)++; - } - return r; -} - - -/* -** convert an hexadecimal numeric string to a number, following -** C99 specification for 'strtod' -*/ -static lua_Number lua_strx2number (const char *s, char **endptr) { - lua_Number r = 0.0; - int e = 0, i = 0; - int neg = 0; /* 1 if number is negative */ - *endptr = cast(char *, s); /* nothing is valid yet */ - while (lisspace(cast_uchar(*s))) s++; /* skip initial spaces */ - neg = isneg(&s); /* check signal */ - if (!(*s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))) /* check '0x' */ - return 0.0; /* invalid format (no '0x') */ - s += 2; /* skip '0x' */ - r = readhexa(&s, r, &i); /* read integer part */ - if (*s == '.') { - s++; /* skip dot */ - r = readhexa(&s, r, &e); /* read fractional part */ - } - if (i == 0 && e == 0) - return 0.0; /* invalid format (no digit) */ - e *= -4; /* each fractional digit divides value by 2^-4 */ - *endptr = cast(char *, s); /* valid up to here */ - if (*s == 'p' || *s == 'P') { /* exponent part? */ - int exp1 = 0; - int neg1; - s++; /* skip 'p' */ - neg1 = isneg(&s); /* signal */ - if (!lisdigit(cast_uchar(*s))) - goto ret; /* must have at least one digit */ - while (lisdigit(cast_uchar(*s))) /* read exponent */ - exp1 = exp1 * 10 + *(s++) - '0'; - if (neg1) exp1 = -exp1; - e += exp1; - } - *endptr = cast(char *, s); /* valid up to here */ - ret: - if (neg) r = -r; - return l_mathop(ldexp)(r, e); -} - -#endif - - -int luaO_str2d (const char *s, size_t len, lua_Number *result) { - char *endptr; - if (strpbrk(s, "nN")) /* reject 'inf' and 'nan' */ - return 0; - else if (strpbrk(s, "xX")) /* hexa? */ - *result = lua_strx2number(s, &endptr); - else - *result = lua_str2number(s, &endptr); - if (endptr == s) return 0; /* nothing recognized */ - while (lisspace(cast_uchar(*endptr))) endptr++; - return (endptr == s + len); /* OK if no trailing characters */ -} - - - -static void pushstr (lua_State *L, const char *str, size_t l) { - setsvalue2s(L, L->top++, luaS_newlstr(L, str, l)); -} - - -/* this function handles only `%d', `%c', %f, %p, and `%s' formats */ -const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) { - int n = 0; - for (;;) { - const char *e = strchr(fmt, '%'); - if (e == NULL) break; - luaD_checkstack(L, 2); /* fmt + item */ - pushstr(L, fmt, e - fmt); - switch (*(e+1)) { - case 's': { - const char *s = va_arg(argp, char *); - if (s == NULL) s = "(null)"; - pushstr(L, s, strlen(s)); - break; - } - case 'c': { - char buff; - buff = cast(char, va_arg(argp, int)); - pushstr(L, &buff, 1); - break; - } - case 'd': { - setnvalue(L->top++, cast_num(va_arg(argp, int))); - break; - } - case 'f': { - setnvalue(L->top++, cast_num(va_arg(argp, l_uacNumber))); - break; - } - case 'p': { - char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */ - int l = sprintf(buff, "%p", va_arg(argp, void *)); - pushstr(L, buff, l); - break; - } - case '%': { - pushstr(L, "%", 1); - break; - } - default: { - luaG_runerror(L, - "invalid option " LUA_QL("%%%c") " to " LUA_QL("lua_pushfstring"), - *(e + 1)); - } - } - n += 2; - fmt = e+2; - } - luaD_checkstack(L, 1); - pushstr(L, fmt, strlen(fmt)); - if (n > 0) luaV_concat(L, n + 1); - return svalue(L->top - 1); -} - - -const char *luaO_pushfstring (lua_State *L, const char *fmt, ...) { - const char *msg; - va_list argp; - va_start(argp, fmt); - msg = luaO_pushvfstring(L, fmt, argp); - va_end(argp); - return msg; -} - - -/* number of chars of a literal string without the ending \0 */ -#define LL(x) (sizeof(x)/sizeof(char) - 1) - -#define RETS "..." -#define PRE "[string \"" -#define POS "\"]" - -#define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) ) - -void luaO_chunkid (char *out, const char *source, size_t bufflen) { - size_t l = strlen(source); - if (*source == '=') { /* 'literal' source */ - if (l <= bufflen) /* small enough? */ - memcpy(out, source + 1, l * sizeof(char)); - else { /* truncate it */ - addstr(out, source + 1, bufflen - 1); - *out = '\0'; - } - } - else if (*source == '@') { /* file name */ - if (l <= bufflen) /* small enough? */ - memcpy(out, source + 1, l * sizeof(char)); - else { /* add '...' before rest of name */ - addstr(out, RETS, LL(RETS)); - bufflen -= LL(RETS); - memcpy(out, source + 1 + l - bufflen, bufflen * sizeof(char)); - } - } - else { /* string; format as [string "source"] */ - const char *nl = strchr(source, '\n'); /* find first new line (if any) */ - addstr(out, PRE, LL(PRE)); /* add prefix */ - bufflen -= LL(PRE RETS POS) + 1; /* save space for prefix+suffix+'\0' */ - if (l < bufflen && nl == NULL) { /* small one-line source? */ - addstr(out, source, l); /* keep it */ - } - else { - if (nl != NULL) l = nl - source; /* stop at first newline */ - if (l > bufflen) l = bufflen; - addstr(out, source, l); - addstr(out, RETS, LL(RETS)); - } - memcpy(out, POS, (LL(POS) + 1) * sizeof(char)); - } -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lstring.c b/3rdparty/genie/src/host/lua-5.2.3/src/lstring.c deleted file mode 100644 index af96c89c183..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lstring.c +++ /dev/null @@ -1,185 +0,0 @@ -/* -** $Id: lstring.c,v 2.26.1.1 2013/04/12 18:48:47 roberto Exp $ -** String table (keeps all strings handled by Lua) -** See Copyright Notice in lua.h -*/ - - -#include - -#define lstring_c -#define LUA_CORE - -#include "lua.h" - -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" - - -/* -** Lua will use at most ~(2^LUAI_HASHLIMIT) bytes from a string to -** compute its hash -*/ -#if !defined(LUAI_HASHLIMIT) -#define LUAI_HASHLIMIT 5 -#endif - - -/* -** equality for long strings -*/ -int luaS_eqlngstr (TString *a, TString *b) { - size_t len = a->tsv.len; - lua_assert(a->tsv.tt == LUA_TLNGSTR && b->tsv.tt == LUA_TLNGSTR); - return (a == b) || /* same instance or... */ - ((len == b->tsv.len) && /* equal length and ... */ - (memcmp(getstr(a), getstr(b), len) == 0)); /* equal contents */ -} - - -/* -** equality for strings -*/ -int luaS_eqstr (TString *a, TString *b) { - return (a->tsv.tt == b->tsv.tt) && - (a->tsv.tt == LUA_TSHRSTR ? eqshrstr(a, b) : luaS_eqlngstr(a, b)); -} - - -unsigned int luaS_hash (const char *str, size_t l, unsigned int seed) { - unsigned int h = seed ^ cast(unsigned int, l); - size_t l1; - size_t step = (l >> LUAI_HASHLIMIT) + 1; - for (l1 = l; l1 >= step; l1 -= step) - h = h ^ ((h<<5) + (h>>2) + cast_byte(str[l1 - 1])); - return h; -} - - -/* -** resizes the string table -*/ -void luaS_resize (lua_State *L, int newsize) { - int i; - stringtable *tb = &G(L)->strt; - /* cannot resize while GC is traversing strings */ - luaC_runtilstate(L, ~bitmask(GCSsweepstring)); - if (newsize > tb->size) { - luaM_reallocvector(L, tb->hash, tb->size, newsize, GCObject *); - for (i = tb->size; i < newsize; i++) tb->hash[i] = NULL; - } - /* rehash */ - for (i=0; isize; i++) { - GCObject *p = tb->hash[i]; - tb->hash[i] = NULL; - while (p) { /* for each node in the list */ - GCObject *next = gch(p)->next; /* save next */ - unsigned int h = lmod(gco2ts(p)->hash, newsize); /* new position */ - gch(p)->next = tb->hash[h]; /* chain it */ - tb->hash[h] = p; - resetoldbit(p); /* see MOVE OLD rule */ - p = next; - } - } - if (newsize < tb->size) { - /* shrinking slice must be empty */ - lua_assert(tb->hash[newsize] == NULL && tb->hash[tb->size - 1] == NULL); - luaM_reallocvector(L, tb->hash, tb->size, newsize, GCObject *); - } - tb->size = newsize; -} - - -/* -** creates a new string object -*/ -static TString *createstrobj (lua_State *L, const char *str, size_t l, - int tag, unsigned int h, GCObject **list) { - TString *ts; - size_t totalsize; /* total size of TString object */ - totalsize = sizeof(TString) + ((l + 1) * sizeof(char)); - ts = &luaC_newobj(L, tag, totalsize, list, 0)->ts; - ts->tsv.len = l; - ts->tsv.hash = h; - ts->tsv.extra = 0; - memcpy(ts+1, str, l*sizeof(char)); - ((char *)(ts+1))[l] = '\0'; /* ending 0 */ - return ts; -} - - -/* -** creates a new short string, inserting it into string table -*/ -static TString *newshrstr (lua_State *L, const char *str, size_t l, - unsigned int h) { - GCObject **list; /* (pointer to) list where it will be inserted */ - stringtable *tb = &G(L)->strt; - TString *s; - if (tb->nuse >= cast(lu_int32, tb->size) && tb->size <= MAX_INT/2) - luaS_resize(L, tb->size*2); /* too crowded */ - list = &tb->hash[lmod(h, tb->size)]; - s = createstrobj(L, str, l, LUA_TSHRSTR, h, list); - tb->nuse++; - return s; -} - - -/* -** checks whether short string exists and reuses it or creates a new one -*/ -static TString *internshrstr (lua_State *L, const char *str, size_t l) { - GCObject *o; - global_State *g = G(L); - unsigned int h = luaS_hash(str, l, g->seed); - for (o = g->strt.hash[lmod(h, g->strt.size)]; - o != NULL; - o = gch(o)->next) { - TString *ts = rawgco2ts(o); - if (h == ts->tsv.hash && - l == ts->tsv.len && - (memcmp(str, getstr(ts), l * sizeof(char)) == 0)) { - if (isdead(G(L), o)) /* string is dead (but was not collected yet)? */ - changewhite(o); /* resurrect it */ - return ts; - } - } - return newshrstr(L, str, l, h); /* not found; create a new string */ -} - - -/* -** new string (with explicit length) -*/ -TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { - if (l <= LUAI_MAXSHORTLEN) /* short string? */ - return internshrstr(L, str, l); - else { - if (l + 1 > (MAX_SIZET - sizeof(TString))/sizeof(char)) - luaM_toobig(L); - return createstrobj(L, str, l, LUA_TLNGSTR, G(L)->seed, NULL); - } -} - - -/* -** new zero-terminated string -*/ -TString *luaS_new (lua_State *L, const char *str) { - return luaS_newlstr(L, str, strlen(str)); -} - - -Udata *luaS_newudata (lua_State *L, size_t s, Table *e) { - Udata *u; - if (s > MAX_SIZET - sizeof(Udata)) - luaM_toobig(L); - u = &luaC_newobj(L, LUA_TUSERDATA, sizeof(Udata) + s, NULL, 0)->u; - u->uv.len = s; - u->uv.metatable = NULL; - u->uv.env = e; - return u; -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/ltablib.c b/3rdparty/genie/src/host/lua-5.2.3/src/ltablib.c deleted file mode 100644 index 6001224e39b..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/ltablib.c +++ /dev/null @@ -1,283 +0,0 @@ -/* -** $Id: ltablib.c,v 1.65.1.1 2013/04/12 18:48:47 roberto Exp $ -** Library for Table Manipulation -** See Copyright Notice in lua.h -*/ - - -#include - -#define ltablib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#define aux_getn(L,n) (luaL_checktype(L, n, LUA_TTABLE), luaL_len(L, n)) - - - -#if defined(LUA_COMPAT_MAXN) -static int maxn (lua_State *L) { - lua_Number max = 0; - luaL_checktype(L, 1, LUA_TTABLE); - lua_pushnil(L); /* first key */ - while (lua_next(L, 1)) { - lua_pop(L, 1); /* remove value */ - if (lua_type(L, -1) == LUA_TNUMBER) { - lua_Number v = lua_tonumber(L, -1); - if (v > max) max = v; - } - } - lua_pushnumber(L, max); - return 1; -} -#endif - - -static int tinsert (lua_State *L) { - int e = aux_getn(L, 1) + 1; /* first empty element */ - int pos; /* where to insert new element */ - switch (lua_gettop(L)) { - case 2: { /* called with only 2 arguments */ - pos = e; /* insert new element at the end */ - break; - } - case 3: { - int i; - pos = luaL_checkint(L, 2); /* 2nd argument is the position */ - luaL_argcheck(L, 1 <= pos && pos <= e, 2, "position out of bounds"); - for (i = e; i > pos; i--) { /* move up elements */ - lua_rawgeti(L, 1, i-1); - lua_rawseti(L, 1, i); /* t[i] = t[i-1] */ - } - break; - } - default: { - return luaL_error(L, "wrong number of arguments to " LUA_QL("insert")); - } - } - lua_rawseti(L, 1, pos); /* t[pos] = v */ - return 0; -} - - -static int tremove (lua_State *L) { - int size = aux_getn(L, 1); - int pos = luaL_optint(L, 2, size); - if (pos != size) /* validate 'pos' if given */ - luaL_argcheck(L, 1 <= pos && pos <= size + 1, 1, "position out of bounds"); - lua_rawgeti(L, 1, pos); /* result = t[pos] */ - for ( ; pos < size; pos++) { - lua_rawgeti(L, 1, pos+1); - lua_rawseti(L, 1, pos); /* t[pos] = t[pos+1] */ - } - lua_pushnil(L); - lua_rawseti(L, 1, pos); /* t[pos] = nil */ - return 1; -} - - -static void addfield (lua_State *L, luaL_Buffer *b, int i) { - lua_rawgeti(L, 1, i); - if (!lua_isstring(L, -1)) - luaL_error(L, "invalid value (%s) at index %d in table for " - LUA_QL("concat"), luaL_typename(L, -1), i); - luaL_addvalue(b); -} - - -static int tconcat (lua_State *L) { - luaL_Buffer b; - size_t lsep; - int i, last; - const char *sep = luaL_optlstring(L, 2, "", &lsep); - luaL_checktype(L, 1, LUA_TTABLE); - i = luaL_optint(L, 3, 1); - last = luaL_opt(L, luaL_checkint, 4, luaL_len(L, 1)); - luaL_buffinit(L, &b); - for (; i < last; i++) { - addfield(L, &b, i); - luaL_addlstring(&b, sep, lsep); - } - if (i == last) /* add last value (if interval was not empty) */ - addfield(L, &b, i); - luaL_pushresult(&b); - return 1; -} - - -/* -** {====================================================== -** Pack/unpack -** ======================================================= -*/ - -static int pack (lua_State *L) { - int n = lua_gettop(L); /* number of elements to pack */ - lua_createtable(L, n, 1); /* create result table */ - lua_pushinteger(L, n); - lua_setfield(L, -2, "n"); /* t.n = number of elements */ - if (n > 0) { /* at least one element? */ - int i; - lua_pushvalue(L, 1); - lua_rawseti(L, -2, 1); /* insert first element */ - lua_replace(L, 1); /* move table into index 1 */ - for (i = n; i >= 2; i--) /* assign other elements */ - lua_rawseti(L, 1, i); - } - return 1; /* return table */ -} - - -static int unpack (lua_State *L) { - int i, e, n; - luaL_checktype(L, 1, LUA_TTABLE); - i = luaL_optint(L, 2, 1); - e = luaL_opt(L, luaL_checkint, 3, luaL_len(L, 1)); - if (i > e) return 0; /* empty range */ - n = e - i + 1; /* number of elements */ - if (n <= 0 || !lua_checkstack(L, n)) /* n <= 0 means arith. overflow */ - return luaL_error(L, "too many results to unpack"); - lua_rawgeti(L, 1, i); /* push arg[i] (avoiding overflow problems) */ - while (i++ < e) /* push arg[i + 1...e] */ - lua_rawgeti(L, 1, i); - return n; -} - -/* }====================================================== */ - - - -/* -** {====================================================== -** Quicksort -** (based on `Algorithms in MODULA-3', Robert Sedgewick; -** Addison-Wesley, 1993.) -** ======================================================= -*/ - - -static void set2 (lua_State *L, int i, int j) { - lua_rawseti(L, 1, i); - lua_rawseti(L, 1, j); -} - -static int sort_comp (lua_State *L, int a, int b) { - if (!lua_isnil(L, 2)) { /* function? */ - int res; - lua_pushvalue(L, 2); - lua_pushvalue(L, a-1); /* -1 to compensate function */ - lua_pushvalue(L, b-2); /* -2 to compensate function and `a' */ - lua_call(L, 2, 1); - res = lua_toboolean(L, -1); - lua_pop(L, 1); - return res; - } - else /* a < b? */ - return lua_compare(L, a, b, LUA_OPLT); -} - -static void auxsort (lua_State *L, int l, int u) { - while (l < u) { /* for tail recursion */ - int i, j; - /* sort elements a[l], a[(l+u)/2] and a[u] */ - lua_rawgeti(L, 1, l); - lua_rawgeti(L, 1, u); - if (sort_comp(L, -1, -2)) /* a[u] < a[l]? */ - set2(L, l, u); /* swap a[l] - a[u] */ - else - lua_pop(L, 2); - if (u-l == 1) break; /* only 2 elements */ - i = (l+u)/2; - lua_rawgeti(L, 1, i); - lua_rawgeti(L, 1, l); - if (sort_comp(L, -2, -1)) /* a[i]= P */ - while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) { - if (i>=u) luaL_error(L, "invalid order function for sorting"); - lua_pop(L, 1); /* remove a[i] */ - } - /* repeat --j until a[j] <= P */ - while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) { - if (j<=l) luaL_error(L, "invalid order function for sorting"); - lua_pop(L, 1); /* remove a[j] */ - } - if (j - -#define ltm_c -#define LUA_CORE - -#include "lua.h" - -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" - - -static const char udatatypename[] = "userdata"; - -LUAI_DDEF const char *const luaT_typenames_[LUA_TOTALTAGS] = { - "no value", - "nil", "boolean", udatatypename, "number", - "string", "table", "function", udatatypename, "thread", - "proto", "upval" /* these last two cases are used for tests only */ -}; - - -void luaT_init (lua_State *L) { - static const char *const luaT_eventname[] = { /* ORDER TM */ - "__index", "__newindex", - "__gc", "__mode", "__len", "__eq", - "__add", "__sub", "__mul", "__div", "__mod", - "__pow", "__unm", "__lt", "__le", - "__concat", "__call" - }; - int i; - for (i=0; itmname[i] = luaS_new(L, luaT_eventname[i]); - luaS_fix(G(L)->tmname[i]); /* never collect these names */ - } -} - - -/* -** function to be used with macro "fasttm": optimized for absence of -** tag methods -*/ -const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { - const TValue *tm = luaH_getstr(events, ename); - lua_assert(event <= TM_EQ); - if (ttisnil(tm)) { /* no tag method? */ - events->flags |= cast_byte(1u<metatable; - break; - case LUA_TUSERDATA: - mt = uvalue(o)->metatable; - break; - default: - mt = G(L)->mt[ttypenv(o)]; - } - return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject); -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lua.c b/3rdparty/genie/src/host/lua-5.2.3/src/lua.c deleted file mode 100644 index 4345e554e92..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lua.c +++ /dev/null @@ -1,497 +0,0 @@ -/* -** $Id: lua.c,v 1.206.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua stand-alone interpreter -** See Copyright Notice in lua.h -*/ - - -#include -#include -#include -#include - -#define lua_c - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#if !defined(LUA_PROMPT) -#define LUA_PROMPT "> " -#define LUA_PROMPT2 ">> " -#endif - -#if !defined(LUA_PROGNAME) -#define LUA_PROGNAME "lua" -#endif - -#if !defined(LUA_MAXINPUT) -#define LUA_MAXINPUT 512 -#endif - -#if !defined(LUA_INIT) -#define LUA_INIT "LUA_INIT" -#endif - -#define LUA_INITVERSION \ - LUA_INIT "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR - - -/* -** lua_stdin_is_tty detects whether the standard input is a 'tty' (that -** is, whether we're running lua interactively). -*/ -#if defined(LUA_USE_ISATTY) -#include -#define lua_stdin_is_tty() isatty(0) -#elif defined(LUA_WIN) -#include -#include -#define lua_stdin_is_tty() _isatty(_fileno(stdin)) -#else -#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ -#endif - - -/* -** lua_readline defines how to show a prompt and then read a line from -** the standard input. -** lua_saveline defines how to "save" a read line in a "history". -** lua_freeline defines how to free a line read by lua_readline. -*/ -#if defined(LUA_USE_READLINE) - -#include -#include -#include -#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) -#define lua_saveline(L,idx) \ - if (lua_rawlen(L,idx) > 0) /* non-empty line? */ \ - add_history(lua_tostring(L, idx)); /* add it to history */ -#define lua_freeline(L,b) ((void)L, free(b)) - -#elif !defined(lua_readline) - -#define lua_readline(L,b,p) \ - ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ - fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ -#define lua_saveline(L,idx) { (void)L; (void)idx; } -#define lua_freeline(L,b) { (void)L; (void)b; } - -#endif - - - - -static lua_State *globalL = NULL; - -static const char *progname = LUA_PROGNAME; - - - -static void lstop (lua_State *L, lua_Debug *ar) { - (void)ar; /* unused arg. */ - lua_sethook(L, NULL, 0, 0); - luaL_error(L, "interrupted!"); -} - - -static void laction (int i) { - signal(i, SIG_DFL); /* if another SIGINT happens before lstop, - terminate process (default action) */ - lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1); -} - - -static void print_usage (const char *badoption) { - luai_writestringerror("%s: ", progname); - if (badoption[1] == 'e' || badoption[1] == 'l') - luai_writestringerror("'%s' needs argument\n", badoption); - else - luai_writestringerror("unrecognized option '%s'\n", badoption); - luai_writestringerror( - "usage: %s [options] [script [args]]\n" - "Available options are:\n" - " -e stat execute string " LUA_QL("stat") "\n" - " -i enter interactive mode after executing " LUA_QL("script") "\n" - " -l name require library " LUA_QL("name") "\n" - " -v show version information\n" - " -E ignore environment variables\n" - " -- stop handling options\n" - " - stop handling options and execute stdin\n" - , - progname); -} - - -static void l_message (const char *pname, const char *msg) { - if (pname) luai_writestringerror("%s: ", pname); - luai_writestringerror("%s\n", msg); -} - - -static int report (lua_State *L, int status) { - if (status != LUA_OK && !lua_isnil(L, -1)) { - const char *msg = lua_tostring(L, -1); - if (msg == NULL) msg = "(error object is not a string)"; - l_message(progname, msg); - lua_pop(L, 1); - /* force a complete garbage collection in case of errors */ - lua_gc(L, LUA_GCCOLLECT, 0); - } - return status; -} - - -/* the next function is called unprotected, so it must avoid errors */ -static void finalreport (lua_State *L, int status) { - if (status != LUA_OK) { - const char *msg = (lua_type(L, -1) == LUA_TSTRING) ? lua_tostring(L, -1) - : NULL; - if (msg == NULL) msg = "(error object is not a string)"; - l_message(progname, msg); - lua_pop(L, 1); - } -} - - -static int traceback (lua_State *L) { - const char *msg = lua_tostring(L, 1); - if (msg) - luaL_traceback(L, L, msg, 1); - else if (!lua_isnoneornil(L, 1)) { /* is there an error object? */ - if (!luaL_callmeta(L, 1, "__tostring")) /* try its 'tostring' metamethod */ - lua_pushliteral(L, "(no error message)"); - } - return 1; -} - - -static int docall (lua_State *L, int narg, int nres) { - int status; - int base = lua_gettop(L) - narg; /* function index */ - lua_pushcfunction(L, traceback); /* push traceback function */ - lua_insert(L, base); /* put it under chunk and args */ - globalL = L; /* to be available to 'laction' */ - signal(SIGINT, laction); - status = lua_pcall(L, narg, nres, base); - signal(SIGINT, SIG_DFL); - lua_remove(L, base); /* remove traceback function */ - return status; -} - - -static void print_version (void) { - luai_writestring(LUA_COPYRIGHT, strlen(LUA_COPYRIGHT)); - luai_writeline(); -} - - -static int getargs (lua_State *L, char **argv, int n) { - int narg; - int i; - int argc = 0; - while (argv[argc]) argc++; /* count total number of arguments */ - narg = argc - (n + 1); /* number of arguments to the script */ - luaL_checkstack(L, narg + 3, "too many arguments to script"); - for (i=n+1; i < argc; i++) - lua_pushstring(L, argv[i]); - lua_createtable(L, narg, n + 1); - for (i=0; i < argc; i++) { - lua_pushstring(L, argv[i]); - lua_rawseti(L, -2, i - n); - } - return narg; -} - - -static int dofile (lua_State *L, const char *name) { - int status = luaL_loadfile(L, name); - if (status == LUA_OK) status = docall(L, 0, 0); - return report(L, status); -} - - -static int dostring (lua_State *L, const char *s, const char *name) { - int status = luaL_loadbuffer(L, s, strlen(s), name); - if (status == LUA_OK) status = docall(L, 0, 0); - return report(L, status); -} - - -static int dolibrary (lua_State *L, const char *name) { - int status; - lua_getglobal(L, "require"); - lua_pushstring(L, name); - status = docall(L, 1, 1); /* call 'require(name)' */ - if (status == LUA_OK) - lua_setglobal(L, name); /* global[name] = require return */ - return report(L, status); -} - - -static const char *get_prompt (lua_State *L, int firstline) { - const char *p; - lua_getglobal(L, firstline ? "_PROMPT" : "_PROMPT2"); - p = lua_tostring(L, -1); - if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2); - return p; -} - -/* mark in error messages for incomplete statements */ -#define EOFMARK "" -#define marklen (sizeof(EOFMARK)/sizeof(char) - 1) - -static int incomplete (lua_State *L, int status) { - if (status == LUA_ERRSYNTAX) { - size_t lmsg; - const char *msg = lua_tolstring(L, -1, &lmsg); - if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0) { - lua_pop(L, 1); - return 1; - } - } - return 0; /* else... */ -} - - -static int pushline (lua_State *L, int firstline) { - char buffer[LUA_MAXINPUT]; - char *b = buffer; - size_t l; - const char *prmt = get_prompt(L, firstline); - int readstatus = lua_readline(L, b, prmt); - lua_pop(L, 1); /* remove result from 'get_prompt' */ - if (readstatus == 0) - return 0; /* no input */ - l = strlen(b); - if (l > 0 && b[l-1] == '\n') /* line ends with newline? */ - b[l-1] = '\0'; /* remove it */ - if (firstline && b[0] == '=') /* first line starts with `=' ? */ - lua_pushfstring(L, "return %s", b+1); /* change it to `return' */ - else - lua_pushstring(L, b); - lua_freeline(L, b); - return 1; -} - - -static int loadline (lua_State *L) { - int status; - lua_settop(L, 0); - if (!pushline(L, 1)) - return -1; /* no input */ - for (;;) { /* repeat until gets a complete line */ - size_t l; - const char *line = lua_tolstring(L, 1, &l); - status = luaL_loadbuffer(L, line, l, "=stdin"); - if (!incomplete(L, status)) break; /* cannot try to add lines? */ - if (!pushline(L, 0)) /* no more input? */ - return -1; - lua_pushliteral(L, "\n"); /* add a new line... */ - lua_insert(L, -2); /* ...between the two lines */ - lua_concat(L, 3); /* join them */ - } - lua_saveline(L, 1); - lua_remove(L, 1); /* remove line */ - return status; -} - - -static void dotty (lua_State *L) { - int status; - const char *oldprogname = progname; - progname = NULL; - while ((status = loadline(L)) != -1) { - if (status == LUA_OK) status = docall(L, 0, LUA_MULTRET); - report(L, status); - if (status == LUA_OK && lua_gettop(L) > 0) { /* any result to print? */ - luaL_checkstack(L, LUA_MINSTACK, "too many results to print"); - lua_getglobal(L, "print"); - lua_insert(L, 1); - if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != LUA_OK) - l_message(progname, lua_pushfstring(L, - "error calling " LUA_QL("print") " (%s)", - lua_tostring(L, -1))); - } - } - lua_settop(L, 0); /* clear stack */ - luai_writeline(); - progname = oldprogname; -} - - -static int handle_script (lua_State *L, char **argv, int n) { - int status; - const char *fname; - int narg = getargs(L, argv, n); /* collect arguments */ - lua_setglobal(L, "arg"); - fname = argv[n]; - if (strcmp(fname, "-") == 0 && strcmp(argv[n-1], "--") != 0) - fname = NULL; /* stdin */ - status = luaL_loadfile(L, fname); - lua_insert(L, -(narg+1)); - if (status == LUA_OK) - status = docall(L, narg, LUA_MULTRET); - else - lua_pop(L, narg); - return report(L, status); -} - - -/* check that argument has no extra characters at the end */ -#define noextrachars(x) {if ((x)[2] != '\0') return -1;} - - -/* indices of various argument indicators in array args */ -#define has_i 0 /* -i */ -#define has_v 1 /* -v */ -#define has_e 2 /* -e */ -#define has_E 3 /* -E */ - -#define num_has 4 /* number of 'has_*' */ - - -static int collectargs (char **argv, int *args) { - int i; - for (i = 1; argv[i] != NULL; i++) { - if (argv[i][0] != '-') /* not an option? */ - return i; - switch (argv[i][1]) { /* option */ - case '-': - noextrachars(argv[i]); - return (argv[i+1] != NULL ? i+1 : 0); - case '\0': - return i; - case 'E': - args[has_E] = 1; - break; - case 'i': - noextrachars(argv[i]); - args[has_i] = 1; /* go through */ - case 'v': - noextrachars(argv[i]); - args[has_v] = 1; - break; - case 'e': - args[has_e] = 1; /* go through */ - case 'l': /* both options need an argument */ - if (argv[i][2] == '\0') { /* no concatenated argument? */ - i++; /* try next 'argv' */ - if (argv[i] == NULL || argv[i][0] == '-') - return -(i - 1); /* no next argument or it is another option */ - } - break; - default: /* invalid option; return its index... */ - return -i; /* ...as a negative value */ - } - } - return 0; -} - - -static int runargs (lua_State *L, char **argv, int n) { - int i; - for (i = 1; i < n; i++) { - lua_assert(argv[i][0] == '-'); - switch (argv[i][1]) { /* option */ - case 'e': { - const char *chunk = argv[i] + 2; - if (*chunk == '\0') chunk = argv[++i]; - lua_assert(chunk != NULL); - if (dostring(L, chunk, "=(command line)") != LUA_OK) - return 0; - break; - } - case 'l': { - const char *filename = argv[i] + 2; - if (*filename == '\0') filename = argv[++i]; - lua_assert(filename != NULL); - if (dolibrary(L, filename) != LUA_OK) - return 0; /* stop if file fails */ - break; - } - default: break; - } - } - return 1; -} - - -static int handle_luainit (lua_State *L) { - const char *name = "=" LUA_INITVERSION; - const char *init = getenv(name + 1); - if (init == NULL) { - name = "=" LUA_INIT; - init = getenv(name + 1); /* try alternative name */ - } - if (init == NULL) return LUA_OK; - else if (init[0] == '@') - return dofile(L, init+1); - else - return dostring(L, init, name); -} - - -static int pmain (lua_State *L) { - int argc = (int)lua_tointeger(L, 1); - char **argv = (char **)lua_touserdata(L, 2); - int script; - int args[num_has]; - args[has_i] = args[has_v] = args[has_e] = args[has_E] = 0; - if (argv[0] && argv[0][0]) progname = argv[0]; - script = collectargs(argv, args); - if (script < 0) { /* invalid arg? */ - print_usage(argv[-script]); - return 0; - } - if (args[has_v]) print_version(); - if (args[has_E]) { /* option '-E'? */ - lua_pushboolean(L, 1); /* signal for libraries to ignore env. vars. */ - lua_setfield(L, LUA_REGISTRYINDEX, "LUA_NOENV"); - } - /* open standard libraries */ - luaL_checkversion(L); - lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */ - luaL_openlibs(L); /* open libraries */ - lua_gc(L, LUA_GCRESTART, 0); - if (!args[has_E] && handle_luainit(L) != LUA_OK) - return 0; /* error running LUA_INIT */ - /* execute arguments -e and -l */ - if (!runargs(L, argv, (script > 0) ? script : argc)) return 0; - /* execute main script (if there is one) */ - if (script && handle_script(L, argv, script) != LUA_OK) return 0; - if (args[has_i]) /* -i option? */ - dotty(L); - else if (script == 0 && !args[has_e] && !args[has_v]) { /* no arguments? */ - if (lua_stdin_is_tty()) { - print_version(); - dotty(L); - } - else dofile(L, NULL); /* executes stdin as a file */ - } - lua_pushboolean(L, 1); /* signal no errors */ - return 1; -} - - -int main (int argc, char **argv) { - int status, result; - lua_State *L = luaL_newstate(); /* create state */ - if (L == NULL) { - l_message(argv[0], "cannot create state: not enough memory"); - return EXIT_FAILURE; - } - /* call 'pmain' in protected mode */ - lua_pushcfunction(L, &pmain); - lua_pushinteger(L, argc); /* 1st argument */ - lua_pushlightuserdata(L, argv); /* 2nd argument */ - status = lua_pcall(L, 2, 1, 0); - result = lua_toboolean(L, -1); /* get result */ - finalreport(L, status); - lua_close(L); - return (result && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE; -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/luaconf.h b/3rdparty/genie/src/host/lua-5.2.3/src/luaconf.h deleted file mode 100644 index 18be9a9e436..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/luaconf.h +++ /dev/null @@ -1,551 +0,0 @@ -/* -** $Id: luaconf.h,v 1.176.1.1 2013/04/12 18:48:47 roberto Exp $ -** Configuration file for Lua -** See Copyright Notice in lua.h -*/ - - -#ifndef lconfig_h -#define lconfig_h - -#include -#include - - -/* -** ================================================================== -** Search for "@@" to find all configurable definitions. -** =================================================================== -*/ - - -/* -@@ LUA_ANSI controls the use of non-ansi features. -** CHANGE it (define it) if you want Lua to avoid the use of any -** non-ansi feature or library. -*/ -#if !defined(LUA_ANSI) && defined(__STRICT_ANSI__) -#define LUA_ANSI -#endif - - -#if !defined(LUA_ANSI) && defined(_WIN32) && !defined(_WIN32_WCE) -#define LUA_WIN /* enable goodies for regular Windows platforms */ -#endif - -#if defined(LUA_WIN) -#define LUA_DL_DLL -#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ -#endif - - - -#if defined(LUA_USE_LINUX) -#define LUA_USE_POSIX -#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ -#define LUA_USE_READLINE /* needs some extra libraries */ -#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */ -#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ -#define LUA_USE_LONGLONG /* assume support for long long */ -#endif - -#if defined(LUA_USE_MACOSX) -#define LUA_USE_POSIX -#define LUA_USE_DLOPEN /* does not need -ldl */ -#define LUA_USE_READLINE /* needs an extra library: -lreadline */ -#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */ -#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ -#define LUA_USE_LONGLONG /* assume support for long long */ -#endif - - - -/* -@@ LUA_USE_POSIX includes all functionality listed as X/Open System -@* Interfaces Extension (XSI). -** CHANGE it (define it) if your system is XSI compatible. -*/ -#if defined(LUA_USE_POSIX) -#define LUA_USE_MKSTEMP -#define LUA_USE_ISATTY -#define LUA_USE_POPEN -#define LUA_USE_ULONGJMP -#define LUA_USE_GMTIME_R -#endif - - - -/* -@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for -@* Lua libraries. -@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for -@* C libraries. -** CHANGE them if your machine has a non-conventional directory -** hierarchy or if you want to install your libraries in -** non-conventional directories. -*/ -#if defined(_WIN32) /* { */ -/* -** In Windows, any exclamation mark ('!') in the path is replaced by the -** path of the directory of the executable file of the current process. -*/ -#define LUA_LDIR "!\\lua\\" -#define LUA_CDIR "!\\" -#define LUA_PATH_DEFAULT \ - LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ - LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua" -#define LUA_CPATH_DEFAULT \ - LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll;" ".\\?.dll" - -#else /* }{ */ - -#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/" -#define LUA_ROOT "/usr/local/" -#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR -#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR -#define LUA_PATH_DEFAULT \ - LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ - LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" "./?.lua" -#define LUA_CPATH_DEFAULT \ - LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so" -#endif /* } */ - - -/* -@@ LUA_DIRSEP is the directory separator (for submodules). -** CHANGE it if your machine does not use "/" as the directory separator -** and is not Windows. (On Windows Lua automatically uses "\".) -*/ -#if defined(_WIN32) -#define LUA_DIRSEP "\\" -#else -#define LUA_DIRSEP "/" -#endif - - -/* -@@ LUA_ENV is the name of the variable that holds the current -@@ environment, used to access global names. -** CHANGE it if you do not like this name. -*/ -#define LUA_ENV "_ENV" - - -/* -@@ LUA_API is a mark for all core API functions. -@@ LUALIB_API is a mark for all auxiliary library functions. -@@ LUAMOD_API is a mark for all standard library opening functions. -** CHANGE them if you need to define those functions in some special way. -** For instance, if you want to create one Windows DLL with the core and -** the libraries, you may want to use the following definition (define -** LUA_BUILD_AS_DLL to get it). -*/ -#if defined(LUA_BUILD_AS_DLL) /* { */ - -#if defined(LUA_CORE) || defined(LUA_LIB) /* { */ -#define LUA_API __declspec(dllexport) -#else /* }{ */ -#define LUA_API __declspec(dllimport) -#endif /* } */ - -#else /* }{ */ - -#define LUA_API extern - -#endif /* } */ - - -/* more often than not the libs go together with the core */ -#define LUALIB_API LUA_API -#define LUAMOD_API LUALIB_API - - -/* -@@ LUAI_FUNC is a mark for all extern functions that are not to be -@* exported to outside modules. -@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables -@* that are not to be exported to outside modules (LUAI_DDEF for -@* definitions and LUAI_DDEC for declarations). -** CHANGE them if you need to mark them in some special way. Elf/gcc -** (versions 3.2 and later) mark them as "hidden" to optimize access -** when Lua is compiled as a shared library. Not all elf targets support -** this attribute. Unfortunately, gcc does not offer a way to check -** whether the target offers that support, and those without support -** give a warning about it. To avoid these warnings, change to the -** default definition. -*/ -#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ - defined(__ELF__) /* { */ -#define LUAI_FUNC __attribute__((visibility("hidden"))) extern -#define LUAI_DDEC LUAI_FUNC -#define LUAI_DDEF /* empty */ - -#else /* }{ */ -#define LUAI_FUNC extern -#define LUAI_DDEC extern -#define LUAI_DDEF /* empty */ -#endif /* } */ - - - -/* -@@ LUA_QL describes how error messages quote program elements. -** CHANGE it if you want a different appearance. -*/ -#define LUA_QL(x) "'" x "'" -#define LUA_QS LUA_QL("%s") - - -/* -@@ LUA_IDSIZE gives the maximum size for the description of the source -@* of a function in debug information. -** CHANGE it if you want a different size. -*/ -#define LUA_IDSIZE 60 - - -/* -@@ luai_writestring/luai_writeline define how 'print' prints its results. -** They are only used in libraries and the stand-alone program. (The #if -** avoids including 'stdio.h' everywhere.) -*/ -#if defined(LUA_LIB) || defined(lua_c) -#include -#define luai_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) -#define luai_writeline() (luai_writestring("\n", 1), fflush(stdout)) -#endif - -/* -@@ luai_writestringerror defines how to print error messages. -** (A format string with one argument is enough for Lua...) -*/ -#define luai_writestringerror(s,p) \ - (fprintf(stderr, (s), (p)), fflush(stderr)) - - -/* -@@ LUAI_MAXSHORTLEN is the maximum length for short strings, that is, -** strings that are internalized. (Cannot be smaller than reserved words -** or tags for metamethods, as these strings must be internalized; -** #("function") = 8, #("__newindex") = 10.) -*/ -#define LUAI_MAXSHORTLEN 40 - - - -/* -** {================================================================== -** Compatibility with previous versions -** =================================================================== -*/ - -/* -@@ LUA_COMPAT_ALL controls all compatibility options. -** You can define it to get all options, or change specific options -** to fit your specific needs. -*/ -#if defined(LUA_COMPAT_ALL) /* { */ - -/* -@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. -** You can replace it with 'table.unpack'. -*/ -#define LUA_COMPAT_UNPACK - -/* -@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'. -** You can replace it with 'package.searchers'. -*/ -#define LUA_COMPAT_LOADERS - -/* -@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall. -** You can call your C function directly (with light C functions). -*/ -#define lua_cpcall(L,f,u) \ - (lua_pushcfunction(L, (f)), \ - lua_pushlightuserdata(L,(u)), \ - lua_pcall(L,1,0,0)) - - -/* -@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library. -** You can rewrite 'log10(x)' as 'log(x, 10)'. -*/ -#define LUA_COMPAT_LOG10 - -/* -@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base -** library. You can rewrite 'loadstring(s)' as 'load(s)'. -*/ -#define LUA_COMPAT_LOADSTRING - -/* -@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library. -*/ -#define LUA_COMPAT_MAXN - -/* -@@ The following macros supply trivial compatibility for some -** changes in the API. The macros themselves document how to -** change your code to avoid using them. -*/ -#define lua_strlen(L,i) lua_rawlen(L, (i)) - -#define lua_objlen(L,i) lua_rawlen(L, (i)) - -#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) -#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) - -/* -@@ LUA_COMPAT_MODULE controls compatibility with previous -** module functions 'module' (Lua) and 'luaL_register' (C). -*/ -#define LUA_COMPAT_MODULE - -#endif /* } */ - -/* }================================================================== */ - - - -/* -@@ LUAI_BITSINT defines the number of bits in an int. -** CHANGE here if Lua cannot automatically detect the number of bits of -** your machine. Probably you do not need to change this. -*/ -/* avoid overflows in comparison */ -#if INT_MAX-20 < 32760 /* { */ -#define LUAI_BITSINT 16 -#elif INT_MAX > 2147483640L /* }{ */ -/* int has at least 32 bits */ -#define LUAI_BITSINT 32 -#else /* }{ */ -#error "you must define LUA_BITSINT with number of bits in an integer" -#endif /* } */ - - -/* -@@ LUA_INT32 is an signed integer with exactly 32 bits. -@@ LUAI_UMEM is an unsigned integer big enough to count the total -@* memory used by Lua. -@@ LUAI_MEM is a signed integer big enough to count the total memory -@* used by Lua. -** CHANGE here if for some weird reason the default definitions are not -** good enough for your machine. Probably you do not need to change -** this. -*/ -#if LUAI_BITSINT >= 32 /* { */ -#define LUA_INT32 int -#define LUAI_UMEM size_t -#define LUAI_MEM ptrdiff_t -#else /* }{ */ -/* 16-bit ints */ -#define LUA_INT32 long -#define LUAI_UMEM unsigned long -#define LUAI_MEM long -#endif /* } */ - - -/* -@@ LUAI_MAXSTACK limits the size of the Lua stack. -** CHANGE it if you need a different limit. This limit is arbitrary; -** its only purpose is to stop Lua to consume unlimited stack -** space (and to reserve some numbers for pseudo-indices). -*/ -#if LUAI_BITSINT >= 32 -#define LUAI_MAXSTACK 1000000 -#else -#define LUAI_MAXSTACK 15000 -#endif - -/* reserve some space for error handling */ -#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000) - - - - -/* -@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. -** CHANGE it if it uses too much C-stack space. -*/ -#define LUAL_BUFFERSIZE BUFSIZ - - - - -/* -** {================================================================== -@@ LUA_NUMBER is the type of numbers in Lua. -** CHANGE the following definitions only if you want to build Lua -** with a number type different from double. You may also need to -** change lua_number2int & lua_number2integer. -** =================================================================== -*/ - -#define LUA_NUMBER_DOUBLE -#define LUA_NUMBER double - -/* -@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' -@* over a number. -*/ -#define LUAI_UACNUMBER double - - -/* -@@ LUA_NUMBER_SCAN is the format for reading numbers. -@@ LUA_NUMBER_FMT is the format for writing numbers. -@@ lua_number2str converts a number to a string. -@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. -*/ -#define LUA_NUMBER_SCAN "%lf" -#define LUA_NUMBER_FMT "%.14g" -#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) -#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ - - -/* -@@ l_mathop allows the addition of an 'l' or 'f' to all math operations -*/ -#define l_mathop(x) (x) - - -/* -@@ lua_str2number converts a decimal numeric string to a number. -@@ lua_strx2number converts an hexadecimal numeric string to a number. -** In C99, 'strtod' does both conversions. C89, however, has no function -** to convert floating hexadecimal strings to numbers. For these -** systems, you can leave 'lua_strx2number' undefined and Lua will -** provide its own implementation. -*/ -#define lua_str2number(s,p) strtod((s), (p)) - -#if defined(LUA_USE_STRTODHEX) -#define lua_strx2number(s,p) strtod((s), (p)) -#endif - - -/* -@@ The luai_num* macros define the primitive operations over numbers. -*/ - -/* the following operations need the math library */ -#if defined(lobject_c) || defined(lvm_c) -#include -#define luai_nummod(L,a,b) ((a) - l_mathop(floor)((a)/(b))*(b)) -#define luai_numpow(L,a,b) (l_mathop(pow)(a,b)) -#endif - -/* these are quite standard operations */ -#if defined(LUA_CORE) -#define luai_numadd(L,a,b) ((a)+(b)) -#define luai_numsub(L,a,b) ((a)-(b)) -#define luai_nummul(L,a,b) ((a)*(b)) -#define luai_numdiv(L,a,b) ((a)/(b)) -#define luai_numunm(L,a) (-(a)) -#define luai_numeq(a,b) ((a)==(b)) -#define luai_numlt(L,a,b) ((a)<(b)) -#define luai_numle(L,a,b) ((a)<=(b)) -#define luai_numisnan(L,a) (!luai_numeq((a), (a))) -#endif - - - -/* -@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger. -** CHANGE that if ptrdiff_t is not adequate on your machine. (On most -** machines, ptrdiff_t gives a good choice between int or long.) -*/ -#define LUA_INTEGER ptrdiff_t - -/* -@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned. -** It must have at least 32 bits. -*/ -#define LUA_UNSIGNED unsigned LUA_INT32 - - - -/* -** Some tricks with doubles -*/ - -#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) /* { */ -/* -** The next definitions activate some tricks to speed up the -** conversion from doubles to integer types, mainly to LUA_UNSIGNED. -** -@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a -** DirectX idiosyncrasy. -** -@@ LUA_IEEE754TRICK uses a trick that should work on any machine -** using IEEE754 with a 32-bit integer type. -** -@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be -** defined when LUA_INTEGER is a 32-bit integer. -** -@@ LUA_IEEEENDIAN is the endianness of doubles in your machine -** (0 for little endian, 1 for big endian); if not defined, Lua will -** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK). -** -@@ LUA_NANTRICK controls the use of a trick to pack all types into -** a single double value, using NaN values to represent non-number -** values. The trick only works on 32-bit machines (ints and pointers -** are 32-bit values) with numbers represented as IEEE 754-2008 doubles -** with conventional endianess (12345678 or 87654321), in CPUs that do -** not produce signaling NaN values (all NaNs are quiet). -*/ - -/* Microsoft compiler on a Pentium (32 bit) ? */ -#if defined(LUA_WIN) && defined(_MSC_VER) && defined(_M_IX86) /* { */ - -#define LUA_MSASMTRICK -#define LUA_IEEEENDIAN 0 -#define LUA_NANTRICK - - -/* pentium 32 bits? */ -#elif defined(__i386__) || defined(__i386) || defined(__X86__) /* }{ */ - -#define LUA_IEEE754TRICK -#define LUA_IEEELL -#define LUA_IEEEENDIAN 0 -#define LUA_NANTRICK - -/* pentium 64 bits? */ -#elif defined(__x86_64) /* }{ */ - -#define LUA_IEEE754TRICK -#define LUA_IEEEENDIAN 0 - -#elif defined(__POWERPC__) || defined(__ppc__) /* }{ */ - -#define LUA_IEEE754TRICK -#define LUA_IEEEENDIAN 1 - -#else /* }{ */ - -/* assume IEEE754 and a 32-bit integer type */ -#define LUA_IEEE754TRICK - -#endif /* } */ - -#endif /* } */ - -/* }================================================================== */ - - - - -/* =================================================================== */ - -/* -** Local configuration. You can use this space to add your redefinitions -** without modifying the main part of the file. -*/ - - - -#endif - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lundump.c b/3rdparty/genie/src/host/lua-5.2.3/src/lundump.c deleted file mode 100644 index 4163cb5d3b0..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lundump.c +++ /dev/null @@ -1,258 +0,0 @@ -/* -** $Id: lundump.c,v 2.22.1.1 2013/04/12 18:48:47 roberto Exp $ -** load precompiled Lua chunks -** See Copyright Notice in lua.h -*/ - -#include - -#define lundump_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstring.h" -#include "lundump.h" -#include "lzio.h" - -typedef struct { - lua_State* L; - ZIO* Z; - Mbuffer* b; - const char* name; -} LoadState; - -static l_noret error(LoadState* S, const char* why) -{ - luaO_pushfstring(S->L,"%s: %s precompiled chunk",S->name,why); - luaD_throw(S->L,LUA_ERRSYNTAX); -} - -#define LoadMem(S,b,n,size) LoadBlock(S,b,(n)*(size)) -#define LoadByte(S) (lu_byte)LoadChar(S) -#define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x)) -#define LoadVector(S,b,n,size) LoadMem(S,b,n,size) - -#if !defined(luai_verifycode) -#define luai_verifycode(L,b,f) /* empty */ -#endif - -static void LoadBlock(LoadState* S, void* b, size_t size) -{ - if (luaZ_read(S->Z,b,size)!=0) error(S,"truncated"); -} - -static int LoadChar(LoadState* S) -{ - char x; - LoadVar(S,x); - return x; -} - -static int LoadInt(LoadState* S) -{ - int x; - LoadVar(S,x); - if (x<0) error(S,"corrupted"); - return x; -} - -static lua_Number LoadNumber(LoadState* S) -{ - lua_Number x; - LoadVar(S,x); - return x; -} - -static TString* LoadString(LoadState* S) -{ - size_t size; - LoadVar(S,size); - if (size==0) - return NULL; - else - { - char* s=luaZ_openspace(S->L,S->b,size); - LoadBlock(S,s,size*sizeof(char)); - return luaS_newlstr(S->L,s,size-1); /* remove trailing '\0' */ - } -} - -static void LoadCode(LoadState* S, Proto* f) -{ - int n=LoadInt(S); - f->code=luaM_newvector(S->L,n,Instruction); - f->sizecode=n; - LoadVector(S,f->code,n,sizeof(Instruction)); -} - -static void LoadFunction(LoadState* S, Proto* f); - -static void LoadConstants(LoadState* S, Proto* f) -{ - int i,n; - n=LoadInt(S); - f->k=luaM_newvector(S->L,n,TValue); - f->sizek=n; - for (i=0; ik[i]); - for (i=0; ik[i]; - int t=LoadChar(S); - switch (t) - { - case LUA_TNIL: - setnilvalue(o); - break; - case LUA_TBOOLEAN: - setbvalue(o,LoadChar(S)); - break; - case LUA_TNUMBER: - setnvalue(o,LoadNumber(S)); - break; - case LUA_TSTRING: - setsvalue2n(S->L,o,LoadString(S)); - break; - default: lua_assert(0); - } - } - n=LoadInt(S); - f->p=luaM_newvector(S->L,n,Proto*); - f->sizep=n; - for (i=0; ip[i]=NULL; - for (i=0; ip[i]=luaF_newproto(S->L); - LoadFunction(S,f->p[i]); - } -} - -static void LoadUpvalues(LoadState* S, Proto* f) -{ - int i,n; - n=LoadInt(S); - f->upvalues=luaM_newvector(S->L,n,Upvaldesc); - f->sizeupvalues=n; - for (i=0; iupvalues[i].name=NULL; - for (i=0; iupvalues[i].instack=LoadByte(S); - f->upvalues[i].idx=LoadByte(S); - } -} - -static void LoadDebug(LoadState* S, Proto* f) -{ - int i,n; - f->source=LoadString(S); - n=LoadInt(S); - f->lineinfo=luaM_newvector(S->L,n,int); - f->sizelineinfo=n; - LoadVector(S,f->lineinfo,n,sizeof(int)); - n=LoadInt(S); - f->locvars=luaM_newvector(S->L,n,LocVar); - f->sizelocvars=n; - for (i=0; ilocvars[i].varname=NULL; - for (i=0; ilocvars[i].varname=LoadString(S); - f->locvars[i].startpc=LoadInt(S); - f->locvars[i].endpc=LoadInt(S); - } - n=LoadInt(S); - for (i=0; iupvalues[i].name=LoadString(S); -} - -static void LoadFunction(LoadState* S, Proto* f) -{ - f->linedefined=LoadInt(S); - f->lastlinedefined=LoadInt(S); - f->numparams=LoadByte(S); - f->is_vararg=LoadByte(S); - f->maxstacksize=LoadByte(S); - LoadCode(S,f); - LoadConstants(S,f); - LoadUpvalues(S,f); - LoadDebug(S,f); -} - -/* the code below must be consistent with the code in luaU_header */ -#define N0 LUAC_HEADERSIZE -#define N1 (sizeof(LUA_SIGNATURE)-sizeof(char)) -#define N2 N1+2 -#define N3 N2+6 - -static void LoadHeader(LoadState* S) -{ - lu_byte h[LUAC_HEADERSIZE]; - lu_byte s[LUAC_HEADERSIZE]; - luaU_header(h); - memcpy(s,h,sizeof(char)); /* first char already read */ - LoadBlock(S,s+sizeof(char),LUAC_HEADERSIZE-sizeof(char)); - if (memcmp(h,s,N0)==0) return; - if (memcmp(h,s,N1)!=0) error(S,"not a"); - if (memcmp(h,s,N2)!=0) error(S,"version mismatch in"); - if (memcmp(h,s,N3)!=0) error(S,"incompatible"); else error(S,"corrupted"); -} - -/* -** load precompiled chunk -*/ -Closure* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name) -{ - LoadState S; - Closure* cl; - if (*name=='@' || *name=='=') - S.name=name+1; - else if (*name==LUA_SIGNATURE[0]) - S.name="binary string"; - else - S.name=name; - S.L=L; - S.Z=Z; - S.b=buff; - LoadHeader(&S); - cl=luaF_newLclosure(L,1); - setclLvalue(L,L->top,cl); incr_top(L); - cl->l.p=luaF_newproto(L); - LoadFunction(&S,cl->l.p); - if (cl->l.p->sizeupvalues != 1) - { - Proto* p=cl->l.p; - cl=luaF_newLclosure(L,cl->l.p->sizeupvalues); - cl->l.p=p; - setclLvalue(L,L->top-1,cl); - } - luai_verifycode(L,buff,cl->l.p); - return cl; -} - -#define MYINT(s) (s[0]-'0') -#define VERSION MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR) -#define FORMAT 0 /* this is the official format */ - -/* -* make header for precompiled chunks -* if you change the code below be sure to update LoadHeader and FORMAT above -* and LUAC_HEADERSIZE in lundump.h -*/ -void luaU_header (lu_byte* h) -{ - int x=1; - memcpy(h,LUA_SIGNATURE,sizeof(LUA_SIGNATURE)-sizeof(char)); - h+=sizeof(LUA_SIGNATURE)-sizeof(char); - *h++=cast_byte(VERSION); - *h++=cast_byte(FORMAT); - *h++=cast_byte(*(char*)&x); /* endianness */ - *h++=cast_byte(sizeof(int)); - *h++=cast_byte(sizeof(size_t)); - *h++=cast_byte(sizeof(Instruction)); - *h++=cast_byte(sizeof(lua_Number)); - *h++=cast_byte(((lua_Number)0.5)==0); /* is lua_Number integral? */ - memcpy(h,LUAC_TAIL,sizeof(LUAC_TAIL)-sizeof(char)); -} diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lundump.h b/3rdparty/genie/src/host/lua-5.2.3/src/lundump.h deleted file mode 100644 index 5255db259df..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lundump.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -** $Id: lundump.h,v 1.39.1.1 2013/04/12 18:48:47 roberto Exp $ -** load precompiled Lua chunks -** See Copyright Notice in lua.h -*/ - -#ifndef lundump_h -#define lundump_h - -#include "lobject.h" -#include "lzio.h" - -/* load one chunk; from lundump.c */ -LUAI_FUNC Closure* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name); - -/* make header; from lundump.c */ -LUAI_FUNC void luaU_header (lu_byte* h); - -/* dump one chunk; from ldump.c */ -LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); - -/* data to catch conversion errors */ -#define LUAC_TAIL "\x19\x93\r\n\x1a\n" - -/* size in bytes of header of binary files */ -#define LUAC_HEADERSIZE (sizeof(LUA_SIGNATURE)-sizeof(char)+2+6+sizeof(LUAC_TAIL)-sizeof(char)) - -#endif diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lvm.c b/3rdparty/genie/src/host/lua-5.2.3/src/lvm.c deleted file mode 100644 index 141b9fd19c3..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lvm.c +++ /dev/null @@ -1,867 +0,0 @@ -/* -** $Id: lvm.c,v 2.155.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua virtual machine -** See Copyright Notice in lua.h -*/ - - -#include -#include -#include - -#define lvm_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lgc.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" -#include "lvm.h" - - - -/* limit for table tag-method chains (to avoid loops) */ -#define MAXTAGLOOP 100 - - -const TValue *luaV_tonumber (const TValue *obj, TValue *n) { - lua_Number num; - if (ttisnumber(obj)) return obj; - if (ttisstring(obj) && luaO_str2d(svalue(obj), tsvalue(obj)->len, &num)) { - setnvalue(n, num); - return n; - } - else - return NULL; -} - - -int luaV_tostring (lua_State *L, StkId obj) { - if (!ttisnumber(obj)) - return 0; - else { - char s[LUAI_MAXNUMBER2STR]; - lua_Number n = nvalue(obj); - int l = lua_number2str(s, n); - setsvalue2s(L, obj, luaS_newlstr(L, s, l)); - return 1; - } -} - - -static void traceexec (lua_State *L) { - CallInfo *ci = L->ci; - lu_byte mask = L->hookmask; - int counthook = ((mask & LUA_MASKCOUNT) && L->hookcount == 0); - if (counthook) - resethookcount(L); /* reset count */ - if (ci->callstatus & CIST_HOOKYIELD) { /* called hook last time? */ - ci->callstatus &= ~CIST_HOOKYIELD; /* erase mark */ - return; /* do not call hook again (VM yielded, so it did not move) */ - } - if (counthook) - luaD_hook(L, LUA_HOOKCOUNT, -1); /* call count hook */ - if (mask & LUA_MASKLINE) { - Proto *p = ci_func(ci)->p; - int npc = pcRel(ci->u.l.savedpc, p); - int newline = getfuncline(p, npc); - if (npc == 0 || /* call linehook when enter a new function, */ - ci->u.l.savedpc <= L->oldpc || /* when jump back (loop), or when */ - newline != getfuncline(p, pcRel(L->oldpc, p))) /* enter a new line */ - luaD_hook(L, LUA_HOOKLINE, newline); /* call line hook */ - } - L->oldpc = ci->u.l.savedpc; - if (L->status == LUA_YIELD) { /* did hook yield? */ - if (counthook) - L->hookcount = 1; /* undo decrement to zero */ - ci->u.l.savedpc--; /* undo increment (resume will increment it again) */ - ci->callstatus |= CIST_HOOKYIELD; /* mark that it yielded */ - ci->func = L->top - 1; /* protect stack below results */ - luaD_throw(L, LUA_YIELD); - } -} - - -static void callTM (lua_State *L, const TValue *f, const TValue *p1, - const TValue *p2, TValue *p3, int hasres) { - ptrdiff_t result = savestack(L, p3); - setobj2s(L, L->top++, f); /* push function */ - setobj2s(L, L->top++, p1); /* 1st argument */ - setobj2s(L, L->top++, p2); /* 2nd argument */ - if (!hasres) /* no result? 'p3' is third argument */ - setobj2s(L, L->top++, p3); /* 3rd argument */ - /* metamethod may yield only when called from Lua code */ - luaD_call(L, L->top - (4 - hasres), hasres, isLua(L->ci)); - if (hasres) { /* if has result, move it to its place */ - p3 = restorestack(L, result); - setobjs2s(L, p3, --L->top); - } -} - - -void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) { - int loop; - for (loop = 0; loop < MAXTAGLOOP; loop++) { - const TValue *tm; - if (ttistable(t)) { /* `t' is a table? */ - Table *h = hvalue(t); - const TValue *res = luaH_get(h, key); /* do a primitive get */ - if (!ttisnil(res) || /* result is not nil? */ - (tm = fasttm(L, h->metatable, TM_INDEX)) == NULL) { /* or no TM? */ - setobj2s(L, val, res); - return; - } - /* else will try the tag method */ - } - else if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_INDEX))) - luaG_typeerror(L, t, "index"); - if (ttisfunction(tm)) { - callTM(L, tm, t, key, val, 1); - return; - } - t = tm; /* else repeat with 'tm' */ - } - luaG_runerror(L, "loop in gettable"); -} - - -void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) { - int loop; - for (loop = 0; loop < MAXTAGLOOP; loop++) { - const TValue *tm; - if (ttistable(t)) { /* `t' is a table? */ - Table *h = hvalue(t); - TValue *oldval = cast(TValue *, luaH_get(h, key)); - /* if previous value is not nil, there must be a previous entry - in the table; moreover, a metamethod has no relevance */ - if (!ttisnil(oldval) || - /* previous value is nil; must check the metamethod */ - ((tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL && - /* no metamethod; is there a previous entry in the table? */ - (oldval != luaO_nilobject || - /* no previous entry; must create one. (The next test is - always true; we only need the assignment.) */ - (oldval = luaH_newkey(L, h, key), 1)))) { - /* no metamethod and (now) there is an entry with given key */ - setobj2t(L, oldval, val); /* assign new value to that entry */ - invalidateTMcache(h); - luaC_barrierback(L, obj2gco(h), val); - return; - } - /* else will try the metamethod */ - } - else /* not a table; check metamethod */ - if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_NEWINDEX))) - luaG_typeerror(L, t, "index"); - /* there is a metamethod */ - if (ttisfunction(tm)) { - callTM(L, tm, t, key, val, 0); - return; - } - t = tm; /* else repeat with 'tm' */ - } - luaG_runerror(L, "loop in settable"); -} - - -static int call_binTM (lua_State *L, const TValue *p1, const TValue *p2, - StkId res, TMS event) { - const TValue *tm = luaT_gettmbyobj(L, p1, event); /* try first operand */ - if (ttisnil(tm)) - tm = luaT_gettmbyobj(L, p2, event); /* try second operand */ - if (ttisnil(tm)) return 0; - callTM(L, tm, p1, p2, res, 1); - return 1; -} - - -static const TValue *get_equalTM (lua_State *L, Table *mt1, Table *mt2, - TMS event) { - const TValue *tm1 = fasttm(L, mt1, event); - const TValue *tm2; - if (tm1 == NULL) return NULL; /* no metamethod */ - if (mt1 == mt2) return tm1; /* same metatables => same metamethods */ - tm2 = fasttm(L, mt2, event); - if (tm2 == NULL) return NULL; /* no metamethod */ - if (luaV_rawequalobj(tm1, tm2)) /* same metamethods? */ - return tm1; - return NULL; -} - - -static int call_orderTM (lua_State *L, const TValue *p1, const TValue *p2, - TMS event) { - if (!call_binTM(L, p1, p2, L->top, event)) - return -1; /* no metamethod */ - else - return !l_isfalse(L->top); -} - - -static int l_strcmp (const TString *ls, const TString *rs) { - const char *l = getstr(ls); - size_t ll = ls->tsv.len; - const char *r = getstr(rs); - size_t lr = rs->tsv.len; - for (;;) { - int temp = strcoll(l, r); - if (temp != 0) return temp; - else { /* strings are equal up to a `\0' */ - size_t len = strlen(l); /* index of first `\0' in both strings */ - if (len == lr) /* r is finished? */ - return (len == ll) ? 0 : 1; - else if (len == ll) /* l is finished? */ - return -1; /* l is smaller than r (because r is not finished) */ - /* both strings longer than `len'; go on comparing (after the `\0') */ - len++; - l += len; ll -= len; r += len; lr -= len; - } - } -} - - -int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r) { - int res; - if (ttisnumber(l) && ttisnumber(r)) - return luai_numlt(L, nvalue(l), nvalue(r)); - else if (ttisstring(l) && ttisstring(r)) - return l_strcmp(rawtsvalue(l), rawtsvalue(r)) < 0; - else if ((res = call_orderTM(L, l, r, TM_LT)) < 0) - luaG_ordererror(L, l, r); - return res; -} - - -int luaV_lessequal (lua_State *L, const TValue *l, const TValue *r) { - int res; - if (ttisnumber(l) && ttisnumber(r)) - return luai_numle(L, nvalue(l), nvalue(r)); - else if (ttisstring(l) && ttisstring(r)) - return l_strcmp(rawtsvalue(l), rawtsvalue(r)) <= 0; - else if ((res = call_orderTM(L, l, r, TM_LE)) >= 0) /* first try `le' */ - return res; - else if ((res = call_orderTM(L, r, l, TM_LT)) < 0) /* else try `lt' */ - luaG_ordererror(L, l, r); - return !res; -} - - -/* -** equality of Lua values. L == NULL means raw equality (no metamethods) -*/ -int luaV_equalobj_ (lua_State *L, const TValue *t1, const TValue *t2) { - const TValue *tm; - lua_assert(ttisequal(t1, t2)); - switch (ttype(t1)) { - case LUA_TNIL: return 1; - case LUA_TNUMBER: return luai_numeq(nvalue(t1), nvalue(t2)); - case LUA_TBOOLEAN: return bvalue(t1) == bvalue(t2); /* true must be 1 !! */ - case LUA_TLIGHTUSERDATA: return pvalue(t1) == pvalue(t2); - case LUA_TLCF: return fvalue(t1) == fvalue(t2); - case LUA_TSHRSTR: return eqshrstr(rawtsvalue(t1), rawtsvalue(t2)); - case LUA_TLNGSTR: return luaS_eqlngstr(rawtsvalue(t1), rawtsvalue(t2)); - case LUA_TUSERDATA: { - if (uvalue(t1) == uvalue(t2)) return 1; - else if (L == NULL) return 0; - tm = get_equalTM(L, uvalue(t1)->metatable, uvalue(t2)->metatable, TM_EQ); - break; /* will try TM */ - } - case LUA_TTABLE: { - if (hvalue(t1) == hvalue(t2)) return 1; - else if (L == NULL) return 0; - tm = get_equalTM(L, hvalue(t1)->metatable, hvalue(t2)->metatable, TM_EQ); - break; /* will try TM */ - } - default: - lua_assert(iscollectable(t1)); - return gcvalue(t1) == gcvalue(t2); - } - if (tm == NULL) return 0; /* no TM? */ - callTM(L, tm, t1, t2, L->top, 1); /* call TM */ - return !l_isfalse(L->top); -} - - -void luaV_concat (lua_State *L, int total) { - lua_assert(total >= 2); - do { - StkId top = L->top; - int n = 2; /* number of elements handled in this pass (at least 2) */ - if (!(ttisstring(top-2) || ttisnumber(top-2)) || !tostring(L, top-1)) { - if (!call_binTM(L, top-2, top-1, top-2, TM_CONCAT)) - luaG_concaterror(L, top-2, top-1); - } - else if (tsvalue(top-1)->len == 0) /* second operand is empty? */ - (void)tostring(L, top - 2); /* result is first operand */ - else if (ttisstring(top-2) && tsvalue(top-2)->len == 0) { - setobjs2s(L, top - 2, top - 1); /* result is second op. */ - } - else { - /* at least two non-empty string values; get as many as possible */ - size_t tl = tsvalue(top-1)->len; - char *buffer; - int i; - /* collect total length */ - for (i = 1; i < total && tostring(L, top-i-1); i++) { - size_t l = tsvalue(top-i-1)->len; - if (l >= (MAX_SIZET/sizeof(char)) - tl) - luaG_runerror(L, "string length overflow"); - tl += l; - } - buffer = luaZ_openspace(L, &G(L)->buff, tl); - tl = 0; - n = i; - do { /* concat all strings */ - size_t l = tsvalue(top-i)->len; - memcpy(buffer+tl, svalue(top-i), l * sizeof(char)); - tl += l; - } while (--i > 0); - setsvalue2s(L, top-n, luaS_newlstr(L, buffer, tl)); - } - total -= n-1; /* got 'n' strings to create 1 new */ - L->top -= n-1; /* popped 'n' strings and pushed one */ - } while (total > 1); /* repeat until only 1 result left */ -} - - -void luaV_objlen (lua_State *L, StkId ra, const TValue *rb) { - const TValue *tm; - switch (ttypenv(rb)) { - case LUA_TTABLE: { - Table *h = hvalue(rb); - tm = fasttm(L, h->metatable, TM_LEN); - if (tm) break; /* metamethod? break switch to call it */ - setnvalue(ra, cast_num(luaH_getn(h))); /* else primitive len */ - return; - } - case LUA_TSTRING: { - setnvalue(ra, cast_num(tsvalue(rb)->len)); - return; - } - default: { /* try metamethod */ - tm = luaT_gettmbyobj(L, rb, TM_LEN); - if (ttisnil(tm)) /* no metamethod? */ - luaG_typeerror(L, rb, "get length of"); - break; - } - } - callTM(L, tm, rb, rb, ra, 1); -} - - -void luaV_arith (lua_State *L, StkId ra, const TValue *rb, - const TValue *rc, TMS op) { - TValue tempb, tempc; - const TValue *b, *c; - if ((b = luaV_tonumber(rb, &tempb)) != NULL && - (c = luaV_tonumber(rc, &tempc)) != NULL) { - lua_Number res = luaO_arith(op - TM_ADD + LUA_OPADD, nvalue(b), nvalue(c)); - setnvalue(ra, res); - } - else if (!call_binTM(L, rb, rc, ra, op)) - luaG_aritherror(L, rb, rc); -} - - -/* -** check whether cached closure in prototype 'p' may be reused, that is, -** whether there is a cached closure with the same upvalues needed by -** new closure to be created. -*/ -static Closure *getcached (Proto *p, UpVal **encup, StkId base) { - Closure *c = p->cache; - if (c != NULL) { /* is there a cached closure? */ - int nup = p->sizeupvalues; - Upvaldesc *uv = p->upvalues; - int i; - for (i = 0; i < nup; i++) { /* check whether it has right upvalues */ - TValue *v = uv[i].instack ? base + uv[i].idx : encup[uv[i].idx]->v; - if (c->l.upvals[i]->v != v) - return NULL; /* wrong upvalue; cannot reuse closure */ - } - } - return c; /* return cached closure (or NULL if no cached closure) */ -} - - -/* -** create a new Lua closure, push it in the stack, and initialize -** its upvalues. Note that the call to 'luaC_barrierproto' must come -** before the assignment to 'p->cache', as the function needs the -** original value of that field. -*/ -static void pushclosure (lua_State *L, Proto *p, UpVal **encup, StkId base, - StkId ra) { - int nup = p->sizeupvalues; - Upvaldesc *uv = p->upvalues; - int i; - Closure *ncl = luaF_newLclosure(L, nup); - ncl->l.p = p; - setclLvalue(L, ra, ncl); /* anchor new closure in stack */ - for (i = 0; i < nup; i++) { /* fill in its upvalues */ - if (uv[i].instack) /* upvalue refers to local variable? */ - ncl->l.upvals[i] = luaF_findupval(L, base + uv[i].idx); - else /* get upvalue from enclosing function */ - ncl->l.upvals[i] = encup[uv[i].idx]; - } - luaC_barrierproto(L, p, ncl); - p->cache = ncl; /* save it on cache for reuse */ -} - - -/* -** finish execution of an opcode interrupted by an yield -*/ -void luaV_finishOp (lua_State *L) { - CallInfo *ci = L->ci; - StkId base = ci->u.l.base; - Instruction inst = *(ci->u.l.savedpc - 1); /* interrupted instruction */ - OpCode op = GET_OPCODE(inst); - switch (op) { /* finish its execution */ - case OP_ADD: case OP_SUB: case OP_MUL: case OP_DIV: - case OP_MOD: case OP_POW: case OP_UNM: case OP_LEN: - case OP_GETTABUP: case OP_GETTABLE: case OP_SELF: { - setobjs2s(L, base + GETARG_A(inst), --L->top); - break; - } - case OP_LE: case OP_LT: case OP_EQ: { - int res = !l_isfalse(L->top - 1); - L->top--; - /* metamethod should not be called when operand is K */ - lua_assert(!ISK(GETARG_B(inst))); - if (op == OP_LE && /* "<=" using "<" instead? */ - ttisnil(luaT_gettmbyobj(L, base + GETARG_B(inst), TM_LE))) - res = !res; /* invert result */ - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_JMP); - if (res != GETARG_A(inst)) /* condition failed? */ - ci->u.l.savedpc++; /* skip jump instruction */ - break; - } - case OP_CONCAT: { - StkId top = L->top - 1; /* top when 'call_binTM' was called */ - int b = GETARG_B(inst); /* first element to concatenate */ - int total = cast_int(top - 1 - (base + b)); /* yet to concatenate */ - setobj2s(L, top - 2, top); /* put TM result in proper position */ - if (total > 1) { /* are there elements to concat? */ - L->top = top - 1; /* top is one after last element (at top-2) */ - luaV_concat(L, total); /* concat them (may yield again) */ - } - /* move final result to final position */ - setobj2s(L, ci->u.l.base + GETARG_A(inst), L->top - 1); - L->top = ci->top; /* restore top */ - break; - } - case OP_TFORCALL: { - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_TFORLOOP); - L->top = ci->top; /* correct top */ - break; - } - case OP_CALL: { - if (GETARG_C(inst) - 1 >= 0) /* nresults >= 0? */ - L->top = ci->top; /* adjust results */ - break; - } - case OP_TAILCALL: case OP_SETTABUP: case OP_SETTABLE: - break; - default: lua_assert(0); - } -} - - - -/* -** some macros for common tasks in `luaV_execute' -*/ - -#if !defined luai_runtimecheck -#define luai_runtimecheck(L, c) /* void */ -#endif - - -#define RA(i) (base+GETARG_A(i)) -/* to be used after possible stack reallocation */ -#define RB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgR, base+GETARG_B(i)) -#define RC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgR, base+GETARG_C(i)) -#define RKB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgK, \ - ISK(GETARG_B(i)) ? k+INDEXK(GETARG_B(i)) : base+GETARG_B(i)) -#define RKC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgK, \ - ISK(GETARG_C(i)) ? k+INDEXK(GETARG_C(i)) : base+GETARG_C(i)) -#define KBx(i) \ - (k + (GETARG_Bx(i) != 0 ? GETARG_Bx(i) - 1 : GETARG_Ax(*ci->u.l.savedpc++))) - - -/* execute a jump instruction */ -#define dojump(ci,i,e) \ - { int a = GETARG_A(i); \ - if (a > 0) luaF_close(L, ci->u.l.base + a - 1); \ - ci->u.l.savedpc += GETARG_sBx(i) + e; } - -/* for test instructions, execute the jump instruction that follows it */ -#define donextjump(ci) { i = *ci->u.l.savedpc; dojump(ci, i, 1); } - - -#define Protect(x) { {x;}; base = ci->u.l.base; } - -#define checkGC(L,c) \ - Protect( luaC_condGC(L,{L->top = (c); /* limit of live values */ \ - luaC_step(L); \ - L->top = ci->top;}) /* restore top */ \ - luai_threadyield(L); ) - - -#define arith_op(op,tm) { \ - TValue *rb = RKB(i); \ - TValue *rc = RKC(i); \ - if (ttisnumber(rb) && ttisnumber(rc)) { \ - lua_Number nb = nvalue(rb), nc = nvalue(rc); \ - setnvalue(ra, op(L, nb, nc)); \ - } \ - else { Protect(luaV_arith(L, ra, rb, rc, tm)); } } - - -#define vmdispatch(o) switch(o) -#define vmcase(l,b) case l: {b} break; -#define vmcasenb(l,b) case l: {b} /* nb = no break */ - -void luaV_execute (lua_State *L) { - CallInfo *ci = L->ci; - LClosure *cl; - TValue *k; - StkId base; - newframe: /* reentry point when frame changes (call/return) */ - lua_assert(ci == L->ci); - cl = clLvalue(ci->func); - k = cl->p->k; - base = ci->u.l.base; - /* main loop of interpreter */ - for (;;) { - Instruction i = *(ci->u.l.savedpc++); - StkId ra; - if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) && - (--L->hookcount == 0 || L->hookmask & LUA_MASKLINE)) { - Protect(traceexec(L)); - } - /* WARNING: several calls may realloc the stack and invalidate `ra' */ - ra = RA(i); - lua_assert(base == ci->u.l.base); - lua_assert(base <= L->top && L->top < L->stack + L->stacksize); - vmdispatch (GET_OPCODE(i)) { - vmcase(OP_MOVE, - setobjs2s(L, ra, RB(i)); - ) - vmcase(OP_LOADK, - TValue *rb = k + GETARG_Bx(i); - setobj2s(L, ra, rb); - ) - vmcase(OP_LOADKX, - TValue *rb; - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_EXTRAARG); - rb = k + GETARG_Ax(*ci->u.l.savedpc++); - setobj2s(L, ra, rb); - ) - vmcase(OP_LOADBOOL, - setbvalue(ra, GETARG_B(i)); - if (GETARG_C(i)) ci->u.l.savedpc++; /* skip next instruction (if C) */ - ) - vmcase(OP_LOADNIL, - int b = GETARG_B(i); - do { - setnilvalue(ra++); - } while (b--); - ) - vmcase(OP_GETUPVAL, - int b = GETARG_B(i); - setobj2s(L, ra, cl->upvals[b]->v); - ) - vmcase(OP_GETTABUP, - int b = GETARG_B(i); - Protect(luaV_gettable(L, cl->upvals[b]->v, RKC(i), ra)); - ) - vmcase(OP_GETTABLE, - Protect(luaV_gettable(L, RB(i), RKC(i), ra)); - ) - vmcase(OP_SETTABUP, - int a = GETARG_A(i); - Protect(luaV_settable(L, cl->upvals[a]->v, RKB(i), RKC(i))); - ) - vmcase(OP_SETUPVAL, - UpVal *uv = cl->upvals[GETARG_B(i)]; - setobj(L, uv->v, ra); - luaC_barrier(L, uv, ra); - ) - vmcase(OP_SETTABLE, - Protect(luaV_settable(L, ra, RKB(i), RKC(i))); - ) - vmcase(OP_NEWTABLE, - int b = GETARG_B(i); - int c = GETARG_C(i); - Table *t = luaH_new(L); - sethvalue(L, ra, t); - if (b != 0 || c != 0) - luaH_resize(L, t, luaO_fb2int(b), luaO_fb2int(c)); - checkGC(L, ra + 1); - ) - vmcase(OP_SELF, - StkId rb = RB(i); - setobjs2s(L, ra+1, rb); - Protect(luaV_gettable(L, rb, RKC(i), ra)); - ) - vmcase(OP_ADD, - arith_op(luai_numadd, TM_ADD); - ) - vmcase(OP_SUB, - arith_op(luai_numsub, TM_SUB); - ) - vmcase(OP_MUL, - arith_op(luai_nummul, TM_MUL); - ) - vmcase(OP_DIV, - arith_op(luai_numdiv, TM_DIV); - ) - vmcase(OP_MOD, - arith_op(luai_nummod, TM_MOD); - ) - vmcase(OP_POW, - arith_op(luai_numpow, TM_POW); - ) - vmcase(OP_UNM, - TValue *rb = RB(i); - if (ttisnumber(rb)) { - lua_Number nb = nvalue(rb); - setnvalue(ra, luai_numunm(L, nb)); - } - else { - Protect(luaV_arith(L, ra, rb, rb, TM_UNM)); - } - ) - vmcase(OP_NOT, - TValue *rb = RB(i); - int res = l_isfalse(rb); /* next assignment may change this value */ - setbvalue(ra, res); - ) - vmcase(OP_LEN, - Protect(luaV_objlen(L, ra, RB(i))); - ) - vmcase(OP_CONCAT, - int b = GETARG_B(i); - int c = GETARG_C(i); - StkId rb; - L->top = base + c + 1; /* mark the end of concat operands */ - Protect(luaV_concat(L, c - b + 1)); - ra = RA(i); /* 'luav_concat' may invoke TMs and move the stack */ - rb = b + base; - setobjs2s(L, ra, rb); - checkGC(L, (ra >= rb ? ra + 1 : rb)); - L->top = ci->top; /* restore top */ - ) - vmcase(OP_JMP, - dojump(ci, i, 0); - ) - vmcase(OP_EQ, - TValue *rb = RKB(i); - TValue *rc = RKC(i); - Protect( - if (cast_int(equalobj(L, rb, rc)) != GETARG_A(i)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - ) - vmcase(OP_LT, - Protect( - if (luaV_lessthan(L, RKB(i), RKC(i)) != GETARG_A(i)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - ) - vmcase(OP_LE, - Protect( - if (luaV_lessequal(L, RKB(i), RKC(i)) != GETARG_A(i)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - ) - vmcase(OP_TEST, - if (GETARG_C(i) ? l_isfalse(ra) : !l_isfalse(ra)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - vmcase(OP_TESTSET, - TValue *rb = RB(i); - if (GETARG_C(i) ? l_isfalse(rb) : !l_isfalse(rb)) - ci->u.l.savedpc++; - else { - setobjs2s(L, ra, rb); - donextjump(ci); - } - ) - vmcase(OP_CALL, - int b = GETARG_B(i); - int nresults = GETARG_C(i) - 1; - if (b != 0) L->top = ra+b; /* else previous instruction set top */ - if (luaD_precall(L, ra, nresults)) { /* C function? */ - if (nresults >= 0) L->top = ci->top; /* adjust results */ - base = ci->u.l.base; - } - else { /* Lua function */ - ci = L->ci; - ci->callstatus |= CIST_REENTRY; - goto newframe; /* restart luaV_execute over new Lua function */ - } - ) - vmcase(OP_TAILCALL, - int b = GETARG_B(i); - if (b != 0) L->top = ra+b; /* else previous instruction set top */ - lua_assert(GETARG_C(i) - 1 == LUA_MULTRET); - if (luaD_precall(L, ra, LUA_MULTRET)) /* C function? */ - base = ci->u.l.base; - else { - /* tail call: put called frame (n) in place of caller one (o) */ - CallInfo *nci = L->ci; /* called frame */ - CallInfo *oci = nci->previous; /* caller frame */ - StkId nfunc = nci->func; /* called function */ - StkId ofunc = oci->func; /* caller function */ - /* last stack slot filled by 'precall' */ - StkId lim = nci->u.l.base + getproto(nfunc)->numparams; - int aux; - /* close all upvalues from previous call */ - if (cl->p->sizep > 0) luaF_close(L, oci->u.l.base); - /* move new frame into old one */ - for (aux = 0; nfunc + aux < lim; aux++) - setobjs2s(L, ofunc + aux, nfunc + aux); - oci->u.l.base = ofunc + (nci->u.l.base - nfunc); /* correct base */ - oci->top = L->top = ofunc + (L->top - nfunc); /* correct top */ - oci->u.l.savedpc = nci->u.l.savedpc; - oci->callstatus |= CIST_TAIL; /* function was tail called */ - ci = L->ci = oci; /* remove new frame */ - lua_assert(L->top == oci->u.l.base + getproto(ofunc)->maxstacksize); - goto newframe; /* restart luaV_execute over new Lua function */ - } - ) - vmcasenb(OP_RETURN, - int b = GETARG_B(i); - if (b != 0) L->top = ra+b-1; - if (cl->p->sizep > 0) luaF_close(L, base); - b = luaD_poscall(L, ra); - if (!(ci->callstatus & CIST_REENTRY)) /* 'ci' still the called one */ - return; /* external invocation: return */ - else { /* invocation via reentry: continue execution */ - ci = L->ci; - if (b) L->top = ci->top; - lua_assert(isLua(ci)); - lua_assert(GET_OPCODE(*((ci)->u.l.savedpc - 1)) == OP_CALL); - goto newframe; /* restart luaV_execute over new Lua function */ - } - ) - vmcase(OP_FORLOOP, - lua_Number step = nvalue(ra+2); - lua_Number idx = luai_numadd(L, nvalue(ra), step); /* increment index */ - lua_Number limit = nvalue(ra+1); - if (luai_numlt(L, 0, step) ? luai_numle(L, idx, limit) - : luai_numle(L, limit, idx)) { - ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ - setnvalue(ra, idx); /* update internal index... */ - setnvalue(ra+3, idx); /* ...and external index */ - } - ) - vmcase(OP_FORPREP, - const TValue *init = ra; - const TValue *plimit = ra+1; - const TValue *pstep = ra+2; - if (!tonumber(init, ra)) - luaG_runerror(L, LUA_QL("for") " initial value must be a number"); - else if (!tonumber(plimit, ra+1)) - luaG_runerror(L, LUA_QL("for") " limit must be a number"); - else if (!tonumber(pstep, ra+2)) - luaG_runerror(L, LUA_QL("for") " step must be a number"); - setnvalue(ra, luai_numsub(L, nvalue(ra), nvalue(pstep))); - ci->u.l.savedpc += GETARG_sBx(i); - ) - vmcasenb(OP_TFORCALL, - StkId cb = ra + 3; /* call base */ - setobjs2s(L, cb+2, ra+2); - setobjs2s(L, cb+1, ra+1); - setobjs2s(L, cb, ra); - L->top = cb + 3; /* func. + 2 args (state and index) */ - Protect(luaD_call(L, cb, GETARG_C(i), 1)); - L->top = ci->top; - i = *(ci->u.l.savedpc++); /* go to next instruction */ - ra = RA(i); - lua_assert(GET_OPCODE(i) == OP_TFORLOOP); - goto l_tforloop; - ) - vmcase(OP_TFORLOOP, - l_tforloop: - if (!ttisnil(ra + 1)) { /* continue loop? */ - setobjs2s(L, ra, ra + 1); /* save control variable */ - ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ - } - ) - vmcase(OP_SETLIST, - int n = GETARG_B(i); - int c = GETARG_C(i); - int last; - Table *h; - if (n == 0) n = cast_int(L->top - ra) - 1; - if (c == 0) { - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_EXTRAARG); - c = GETARG_Ax(*ci->u.l.savedpc++); - } - luai_runtimecheck(L, ttistable(ra)); - h = hvalue(ra); - last = ((c-1)*LFIELDS_PER_FLUSH) + n; - if (last > h->sizearray) /* needs more space? */ - luaH_resizearray(L, h, last); /* pre-allocate it at once */ - for (; n > 0; n--) { - TValue *val = ra+n; - luaH_setint(L, h, last--, val); - luaC_barrierback(L, obj2gco(h), val); - } - L->top = ci->top; /* correct top (in case of previous open call) */ - ) - vmcase(OP_CLOSURE, - Proto *p = cl->p->p[GETARG_Bx(i)]; - Closure *ncl = getcached(p, cl->upvals, base); /* cached closure */ - if (ncl == NULL) /* no match? */ - pushclosure(L, p, cl->upvals, base, ra); /* create a new one */ - else - setclLvalue(L, ra, ncl); /* push cashed closure */ - checkGC(L, ra + 1); - ) - vmcase(OP_VARARG, - int b = GETARG_B(i) - 1; - int j; - int n = cast_int(base - ci->func) - cl->p->numparams - 1; - if (b < 0) { /* B == 0? */ - b = n; /* get all var. arguments */ - Protect(luaD_checkstack(L, n)); - ra = RA(i); /* previous call may change the stack */ - L->top = ra + n; - } - for (j = 0; j < b; j++) { - if (j < n) { - setobjs2s(L, ra + j, base - n + j); - } - else { - setnilvalue(ra + j); - } - } - ) - vmcase(OP_EXTRAARG, - lua_assert(0); - ) - } - } -} - diff --git a/3rdparty/genie/src/host/lua-5.2.3/src/lvm.h b/3rdparty/genie/src/host/lua-5.2.3/src/lvm.h deleted file mode 100644 index 5380270da63..00000000000 --- a/3rdparty/genie/src/host/lua-5.2.3/src/lvm.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -** $Id: lvm.h,v 2.18.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua virtual machine -** See Copyright Notice in lua.h -*/ - -#ifndef lvm_h -#define lvm_h - - -#include "ldo.h" -#include "lobject.h" -#include "ltm.h" - - -#define tostring(L,o) (ttisstring(o) || (luaV_tostring(L, o))) - -#define tonumber(o,n) (ttisnumber(o) || (((o) = luaV_tonumber(o,n)) != NULL)) - -#define equalobj(L,o1,o2) (ttisequal(o1, o2) && luaV_equalobj_(L, o1, o2)) - -#define luaV_rawequalobj(o1,o2) equalobj(NULL,o1,o2) - - -/* not to called directly */ -LUAI_FUNC int luaV_equalobj_ (lua_State *L, const TValue *t1, const TValue *t2); - - -LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r); -LUAI_FUNC int luaV_lessequal (lua_State *L, const TValue *l, const TValue *r); -LUAI_FUNC const TValue *luaV_tonumber (const TValue *obj, TValue *n); -LUAI_FUNC int luaV_tostring (lua_State *L, StkId obj); -LUAI_FUNC void luaV_gettable (lua_State *L, const TValue *t, TValue *key, - StkId val); -LUAI_FUNC void luaV_settable (lua_State *L, const TValue *t, TValue *key, - StkId val); -LUAI_FUNC void luaV_finishOp (lua_State *L); -LUAI_FUNC void luaV_execute (lua_State *L); -LUAI_FUNC void luaV_concat (lua_State *L, int total); -LUAI_FUNC void luaV_arith (lua_State *L, StkId ra, const TValue *rb, - const TValue *rc, TMS op); -LUAI_FUNC void luaV_objlen (lua_State *L, StkId ra, const TValue *rb); - -#endif diff --git a/3rdparty/genie/src/host/lua-5.2.3/Makefile b/3rdparty/genie/src/host/lua-5.3.0/Makefile similarity index 97% rename from 3rdparty/genie/src/host/lua-5.2.3/Makefile rename to 3rdparty/genie/src/host/lua-5.3.0/Makefile index d2c7db4a2da..7fa91c858bb 100644 --- a/3rdparty/genie/src/host/lua-5.2.3/Makefile +++ b/3rdparty/genie/src/host/lua-5.3.0/Makefile @@ -36,7 +36,7 @@ RM= rm -f # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= # Convenience platforms targets. -PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris +PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris # What to install. TO_BIN= lua luac @@ -45,8 +45,8 @@ TO_LIB= liblua.a TO_MAN= lua.1 luac.1 # Lua version and release. -V= 5.2 -R= $V.3 +V= 5.3 +R= $V.0 # Targets start here. all: $(PLAT) diff --git a/3rdparty/genie/src/host/lua-5.2.3/README b/3rdparty/genie/src/host/lua-5.3.0/README similarity index 70% rename from 3rdparty/genie/src/host/lua-5.2.3/README rename to 3rdparty/genie/src/host/lua-5.3.0/README index 49033adb5bf..32fb68e77e3 100644 --- a/3rdparty/genie/src/host/lua-5.2.3/README +++ b/3rdparty/genie/src/host/lua-5.3.0/README @@ -1,5 +1,5 @@ -This is Lua 5.2.3, released on 11 Nov 2013. +This is Lua 5.3.0, released on 06 Jan 2015. For installation instructions, license details, and further information about Lua, see doc/readme.html. diff --git a/3rdparty/genie/src/host/lua-5.2.3/doc/contents.html b/3rdparty/genie/src/host/lua-5.3.0/doc/contents.html similarity index 74% rename from 3rdparty/genie/src/host/lua-5.2.3/doc/contents.html rename to 3rdparty/genie/src/host/lua-5.3.0/doc/contents.html index 0ce297da19c..e59e4215eee 100644 --- a/3rdparty/genie/src/host/lua-5.2.3/doc/contents.html +++ b/3rdparty/genie/src/host/lua-5.3.0/doc/contents.html @@ -1,7 +1,7 @@ -Lua 5.2 Reference Manual - contents +Lua 5.3 Reference Manual - contents