From 51c326484623c719bf0d0de8ff7ca0511a01feb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=80=D0=B0=D0=BD=D0=B8=D0=BC=D0=B8=D1=80=20=D0=9A?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D1=9F=D0=B8=D1=9B?= Date: Mon, 25 Oct 2021 18:59:11 -0700 Subject: [PATCH] Fixed assert macros, and improved error handling. --- include/bx/bx.h | 1 + include/bx/config.h | 8 +++--- include/bx/debug.h | 4 ++- include/bx/error.h | 30 +++++++++++++++++++++ include/bx/file.h | 8 +++--- include/bx/inline/error.inl | 51 ++++++++++++++++++++++++++++++------ include/bx/macros.h | 40 +++++++++++++++++++++++++--- include/bx/os.h | 4 ++- include/bx/readerwriter.h | 40 ++++++++++++++-------------- include/bx/settings.h | 4 +-- include/bx/string.h | 6 ++--- scripts/bin2c.lua | 8 +----- scripts/bx.lua | 37 ++++++++++++++++++++++---- scripts/genie.lua | 15 ++++++++--- src/allocator.cpp | 7 +++-- src/bounds.cpp | 1 - src/bx.cpp | 1 - src/bx_p.h | 45 ------------------------------- src/commandline.cpp | 1 - src/crtnone.cpp | 1 - src/debug.cpp | 1 - src/dtoa.cpp | 3 +-- src/easing.cpp | 1 - src/file.cpp | 7 +++-- src/filepath.cpp | 1 - src/hash.cpp | 1 - src/math.cpp | 1 - src/mutex.cpp | 7 +++-- src/os.cpp | 16 ++++++----- src/process.cpp | 1 - src/semaphore.cpp | 1 - src/settings.cpp | 1 - src/sort.cpp | 1 - src/string.cpp | 1 - src/thread.cpp | 3 +-- src/timer.cpp | 1 - src/url.cpp | 1 - tests/easing_test.cpp | 2 +- tests/settings_test.cpp | 8 +++--- tests/test.h | 6 ++--- tools/bin/linux/bin2c | Bin 92368 -> 96464 bytes tools/bin2c/bin2c.cpp | 4 +-- 42 files changed, 226 insertions(+), 154 deletions(-) delete mode 100644 src/bx_p.h diff --git a/include/bx/bx.h b/include/bx/bx.h index 63d726e..63c5404 100644 --- a/include/bx/bx.h +++ b/include/bx/bx.h @@ -15,6 +15,7 @@ #include "platform.h" #include "config.h" #include "macros.h" +#include "debug.h" /// #define BX_COUNTOF(_x) sizeof(bx::CountOfRequireArrayArgumentT(_x) ) diff --git a/include/bx/config.h b/include/bx/config.h index 9a96707..dc7a3a2 100644 --- a/include/bx/config.h +++ b/include/bx/config.h @@ -6,11 +6,13 @@ #ifndef BX_CONFIG_H_HEADER_GUARD #define BX_CONFIG_H_HEADER_GUARD -#include "bx.h" +#ifndef BX_CONFIG_DEBUG +# error "BX_CONFIG_DEBUG must be defined in build script!" +#endif // BX_CONFIG_DEBUG #ifndef BX_CONFIG_ALLOCATOR_DEBUG -# define BX_CONFIG_ALLOCATOR_DEBUG 0 -#endif // BX_CONFIG_DEBUG_ALLOC +# define BX_CONFIG_ALLOCATOR_DEBUG BX_CONFIG_DEBUG +#endif // BX_CONFIG_ALLOCATOR_DEBUG #ifndef BX_CONFIG_SUPPORTS_THREADING # define BX_CONFIG_SUPPORTS_THREADING !(0 \ diff --git a/include/bx/debug.h b/include/bx/debug.h index d8cf15e..74d456c 100644 --- a/include/bx/debug.h +++ b/include/bx/debug.h @@ -6,10 +6,12 @@ #ifndef BX_DEBUG_H_HEADER_GUARD #define BX_DEBUG_H_HEADER_GUARD -#include "string.h" +#include "bx.h" namespace bx { + class StringView; + /// void debugBreak(); diff --git a/include/bx/error.h b/include/bx/error.h index d00d8af..fb09b33 100644 --- a/include/bx/error.h +++ b/include/bx/error.h @@ -71,6 +71,36 @@ namespace bx uint32_t m_code; }; + /// Do nothing even if error is set. + class ErrorIgnore : public Error + { + public: + /// + operator Error*(); + }; + + /// In debug build assert if error is set. + class ErrorAssert : public Error + { + public: + /// + ~ErrorAssert(); + + /// + operator Error*(); + }; + + /// Exit application if error is set. + class ErrorFatal : public Error + { + public: + /// + ~ErrorFatal(); + + /// + operator Error*(); + }; + /// class ErrorScope { diff --git a/include/bx/file.h b/include/bx/file.h index e692224..8df0dda 100644 --- a/include/bx/file.h +++ b/include/bx/file.h @@ -124,19 +124,19 @@ namespace bx /// Creates a directory named `_filePath`. /// - bool make(const FilePath& _filePath, Error* _err = NULL); + bool make(const FilePath& _filePath, Error* _err = bx::ErrorIgnore{}); /// Creates a directory named `_filePath` along with all necessary parents. /// - bool makeAll(const FilePath& _filePath, Error* _err = NULL); + bool makeAll(const FilePath& _filePath, Error* _err = bx::ErrorIgnore{}); /// Removes file or directory. /// - bool remove(const FilePath& _filePath, Error* _err = NULL); + bool remove(const FilePath& _filePath, Error* _err = bx::ErrorIgnore{}); /// Removes file or directory recursivelly. /// - bool removeAll(const FilePath& _filePath, Error* _err = NULL); + bool removeAll(const FilePath& _filePath, Error* _err = bx::ErrorIgnore{}); } // namespace bx diff --git a/include/bx/inline/error.inl b/include/bx/inline/error.inl index 382c624..b4ab8df 100644 --- a/include/bx/inline/error.inl +++ b/include/bx/inline/error.inl @@ -7,6 +7,8 @@ # error "Must be included from bx/error!" #endif // BX_ERROR_H_HEADER_GUARD +#include + namespace bx { inline Error::Error() @@ -59,6 +61,42 @@ namespace bx return _rhs.code != m_code; } + inline ErrorIgnore::operator Error*() + { + return this; + } + + inline ErrorAssert::~ErrorAssert() + { + BX_ASSERT(isOk(), "Error: 0x%08x `%S`" + , get().code + , &getMessage() + ); + } + + inline ErrorFatal::operator Error*() + { + return this; + } + + inline ErrorFatal::~ErrorFatal() + { + if (!isOk() ) + { + printf("Error: 0x%08x `%S`" + , get().code + , &getMessage() + ); + + exit(kExitFailure); + } + } + + inline ErrorAssert::operator Error*() + { + return this; + } + inline ErrorScope::ErrorScope(Error* _err, const StringView& _name) : m_err(_err) , m_name(_name) @@ -70,20 +108,17 @@ namespace bx { if (m_name.isEmpty() ) { - BX_ASSERT(m_err->isOk(), "Error: 0x%08x `%.*s`" + BX_ASSERT(m_err->isOk(), "Error: 0x%08x `%S`" , m_err->get().code - , m_err->getMessage().getLength() - , m_err->getMessage().getPtr() + , &m_err->getMessage() ); } else { - BX_ASSERT(m_err->isOk(), "Error: %.*s - 0x%08x `%.*s`" - , m_name.getLength() - , m_name.getPtr() + BX_ASSERT(m_err->isOk(), "Error: %S - 0x%08x `%S`" + , &m_name , m_err->get().code - , m_err->getMessage().getLength() - , m_err->getMessage().getPtr() + , &m_err->getMessage() ); } } diff --git a/include/bx/macros.h b/include/bx/macros.h index 0d13cc9..341ab03 100644 --- a/include/bx/macros.h +++ b/include/bx/macros.h @@ -229,17 +229,51 @@ #endif // BX_COMPILER_MSVC #ifndef BX_ASSERT -# define BX_ASSERT(_condition, ...) BX_NOOP() +# if BX_CONFIG_DEBUG +# define BX_ASSERT _BX_ASSERT +# else +# define BX_ASSERT(_condition, ...) BX_NOOP() +# endif // BX_CONFIG_DEBUG #endif // BX_ASSERT #ifndef BX_TRACE -# define BX_TRACE(...) BX_NOOP() +# if BX_CONFIG_DEBUG +# define BX_TRACE _BX_TRACE +# else +# define BX_TRACE(...) BX_NOOP() +# endif // BX_CONFIG_DEBUG #endif // BX_TRACE #ifndef BX_WARN -# define BX_WARN(_condition, ...) BX_NOOP() +# if BX_CONFIG_DEBUG +# define BX_WARN _BX_WARN +# else +# define BX_WARN(_condition, ...) BX_NOOP() +# endif // BX_CONFIG_DEBUG #endif // BX_ASSERT +#define _BX_TRACE(_format, ...) \ + BX_MACRO_BLOCK_BEGIN \ + bx::debugPrintf(__FILE__ "(" BX_STRINGIZE(__LINE__) "): BX " _format "\n", ##__VA_ARGS__); \ + BX_MACRO_BLOCK_END + +#define _BX_WARN(_condition, _format, ...) \ + BX_MACRO_BLOCK_BEGIN \ + if (!BX_IGNORE_C4127(_condition) ) \ + { \ + BX_TRACE("WARN " _format, ##__VA_ARGS__); \ + } \ + BX_MACRO_BLOCK_END + +#define _BX_ASSERT(_condition, _format, ...) \ + BX_MACRO_BLOCK_BEGIN \ + if (!BX_IGNORE_C4127(_condition) ) \ + { \ + BX_TRACE("ASSERT " _format, ##__VA_ARGS__); \ + bx::debugBreak(); \ + } \ + BX_MACRO_BLOCK_END + // static_assert sometimes causes unused-local-typedef... BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG("-Wunused-local-typedef") diff --git a/include/bx/os.h b/include/bx/os.h index f210281..95b56b0 100644 --- a/include/bx/os.h +++ b/include/bx/os.h @@ -6,7 +6,6 @@ #ifndef BX_OS_H_HEADER_GUARD #define BX_OS_H_HEADER_GUARD -#include "debug.h" #include "filepath.h" #if BX_PLATFORM_OSX @@ -56,6 +55,9 @@ namespace bx /// void* exec(const char* const* _argv); + /// + BX_NO_RETURN void exit(int32_t _exitCode); + } // namespace bx #include "inline/os.inl" diff --git a/include/bx/readerwriter.h b/include/bx/readerwriter.h index 45265b2..4b078d3 100644 --- a/include/bx/readerwriter.h +++ b/include/bx/readerwriter.h @@ -81,7 +81,7 @@ namespace bx virtual ~ReaderOpenI() = 0; /// - virtual bool open(const FilePath& _filePath, Error* _err) = 0; + virtual bool open(const FilePath& _filePath, Error* _err = ErrorIgnore{}) = 0; }; /// Open for writing interface. @@ -91,7 +91,7 @@ namespace bx virtual ~WriterOpenI() = 0; /// - virtual bool open(const FilePath& _filePath, bool _append, Error* _err) = 0; + virtual bool open(const FilePath& _filePath, bool _append = false, Error* _err = ErrorIgnore{}) = 0; }; /// Open process interface. @@ -101,7 +101,7 @@ namespace bx virtual ~ProcessOpenI() = 0; /// - virtual bool open(const FilePath& _filePath, const StringView& _args, Error* _err) = 0; + virtual bool open(const FilePath& _filePath, const StringView& _args, Error* _err = ErrorIgnore{}) = 0; }; /// Closer interface. @@ -265,25 +265,25 @@ namespace bx }; /// Read data. - int32_t read(ReaderI* _reader, void* _data, int32_t _size, Error* _err = NULL); + int32_t read(ReaderI* _reader, void* _data, int32_t _size, Error* _err); /// Read value. template - int32_t read(ReaderI* _reader, Ty& _value, Error* _err = NULL); + int32_t read(ReaderI* _reader, Ty& _value, Error* _err); /// Read value and converts it to host endianess. _fromLittleEndian specifies /// underlying stream endianess. template - int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err = NULL); + int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err); /// Write data. - int32_t write(WriterI* _writer, const void* _data, int32_t _size, Error* _err = NULL); + int32_t write(WriterI* _writer, const void* _data, int32_t _size, Error* _err); /// Write C string. - int32_t write(WriterI* _writer, const char* _str, Error* _err = NULL); + int32_t write(WriterI* _writer, const char* _str, Error* _err); /// Write string view. - int32_t write(WriterI* _writer, const StringView& _str, Error* _err = NULL); + int32_t write(WriterI* _writer, const StringView& _str, Error* _err); /// Write formatted string. int32_t write(WriterI* _writer, const StringView& _format, va_list _argList, Error* _err); @@ -295,19 +295,19 @@ namespace bx int32_t write(WriterI* _writer, Error* _err, const char* _format, ...); /// Write repeat the same value. - int32_t writeRep(WriterI* _writer, uint8_t _byte, int32_t _size, Error* _err = NULL); + int32_t writeRep(WriterI* _writer, uint8_t _byte, int32_t _size, Error* _err); /// Write value. template - int32_t write(WriterI* _writer, const Ty& _value, Error* _err = NULL); + int32_t write(WriterI* _writer, const Ty& _value, Error* _err); /// Write value as little endian. template - int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err = NULL); + int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err); /// Write value as big endian. template - int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err = NULL); + int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err); /// Skip _offset bytes forward. int64_t skip(SeekerI* _seeker, int64_t _offset); @@ -322,26 +322,26 @@ namespace bx int64_t getRemain(SeekerI* _seeker); /// Peek data. - int32_t peek(ReaderSeekerI* _reader, void* _data, int32_t _size, Error* _err = NULL); + int32_t peek(ReaderSeekerI* _reader, void* _data, int32_t _size, Error* _err); /// Peek value. template - int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err = NULL); + int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err); /// Align reader stream. - int32_t align(ReaderSeekerI* _reader, uint32_t _alignment, Error* _err = NULL); + int32_t align(ReaderSeekerI* _reader, uint32_t _alignment, Error* _err); /// Align writer stream (pads stream with zeros). - int32_t align(WriterSeekerI* _writer, uint32_t _alignment, Error* _err = NULL); + int32_t align(WriterSeekerI* _writer, uint32_t _alignment, Error* _err); /// Open for read. - bool open(ReaderOpenI* _reader, const FilePath& _filePath, Error* _err = NULL); + bool open(ReaderOpenI* _reader, const FilePath& _filePath, Error* _err = ErrorIgnore{}); /// Open for write. - bool open(WriterOpenI* _writer, const FilePath& _filePath, bool _append = false, Error* _err = NULL); + bool open(WriterOpenI* _writer, const FilePath& _filePath, bool _append = false, Error* _err = ErrorIgnore{}); /// Open process. - bool open(ProcessOpenI* _process, const FilePath& _filePath, const StringView& _args, Error* _err = NULL); + bool open(ProcessOpenI* _process, const FilePath& _filePath, const StringView& _args, Error* _err = ErrorIgnore{}); /// Close. void close(CloserI* _reader); diff --git a/include/bx/settings.h b/include/bx/settings.h index e5dbc8a..ca5d030 100644 --- a/include/bx/settings.h +++ b/include/bx/settings.h @@ -51,10 +51,10 @@ namespace bx }; /// - int32_t read(ReaderSeekerI* _reader, Settings& _settings, Error* _err = NULL); + int32_t read(ReaderSeekerI* _reader, Settings& _settings, Error* _err); /// - int32_t write(WriterI* _writer, const Settings& _settings, Error* _err = NULL); + int32_t write(WriterI* _writer, const Settings& _settings, Error* _err); } // namespace bx diff --git a/include/bx/string.h b/include/bx/string.h index 5360e12..82dcec0 100644 --- a/include/bx/string.h +++ b/include/bx/string.h @@ -372,7 +372,7 @@ namespace bx { public: /// - LineReader(const bx::StringView& _str); + LineReader(const StringView& _str); /// void reset(); @@ -387,8 +387,8 @@ namespace bx uint32_t getLine() const; private: - const bx::StringView m_str; - bx::StringView m_curr; + const StringView m_str; + StringView m_curr; uint32_t m_line; }; diff --git a/scripts/bin2c.lua b/scripts/bin2c.lua index 3ebc001..86d48a2 100644 --- a/scripts/bin2c.lua +++ b/scripts/bin2c.lua @@ -6,18 +6,12 @@ project "bin2c" kind "ConsoleApp" - includedirs { - "../include", - } - files { "../tools/bin2c/**.cpp", "../tools/bin2c/**.h", } - links { - "bx", - } + using_bx() configuration { "mingw-*" } targetextension ".exe" diff --git a/scripts/bx.lua b/scripts/bx.lua index ed0fcbd..f1c5f39 100644 --- a/scripts/bx.lua +++ b/scripts/bx.lua @@ -15,6 +15,28 @@ local function userdefines() return defines end +function using_bx() + includedirs { + path.join(BX_DIR, "include"), + } + + links { + "bx", + } + + configuration { "Debug" } + defines { + "BX_CONFIG_DEBUG=1", + } + + configuration { "Release" } + defines { + "BX_CONFIG_DEBUG=0", + } + + configuration {} +end + project "bx" kind "StaticLib" @@ -32,11 +54,6 @@ project "bx" defines (userdefines()) - configuration { "Debug" } - defines { - "BX_CONFIG_DEBUG=1", - } - configuration { "linux-*" } buildoptions { "-fPIC", @@ -75,4 +92,14 @@ project "bx" } end + configuration { "Debug" } + defines { + "BX_CONFIG_DEBUG=1", + } + + configuration { "Release" } + defines { + "BX_CONFIG_DEBUG=0", + } + configuration {} diff --git a/scripts/genie.lua b/scripts/genie.lua index 8801b22..39f32aa 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -51,7 +51,6 @@ project "bx.test" } includedirs { - path.join(BX_DIR, "include"), BX_THIRD_PARTY_DIR, } @@ -61,9 +60,7 @@ project "bx.test" path.join(BX_DIR, "tests/dbg.*"), } - links { - "bx", - } + using_bx() configuration { "vs* or mingw*" } links { @@ -131,6 +128,16 @@ project "bx.bench" "Cocoa.framework", } + configuration { "Debug" } + defines { + "BX_CONFIG_DEBUG=1", + } + + configuration { "Release" } + defines { + "BX_CONFIG_DEBUG=0", + } + configuration {} strip() diff --git a/src/allocator.cpp b/src/allocator.cpp index 0bcf2cd..8b3883b 100644 --- a/src/allocator.cpp +++ b/src/allocator.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include @@ -38,7 +37,7 @@ namespace bx BX_UNUSED(_file, _line); _aligned_free(_ptr); # else - bx::alignedFree(this, _ptr, _align, _file, _line); + alignedFree(this, _ptr, _align, _file, _line); # endif // BX_ } @@ -55,7 +54,7 @@ namespace bx BX_UNUSED(_file, _line); return _aligned_malloc(_size, _align); # else - return bx::alignedAlloc(this, _size, _align, _file, _line); + return alignedAlloc(this, _size, _align, _file, _line); # endif // BX_ } @@ -68,7 +67,7 @@ namespace bx BX_UNUSED(_file, _line); return _aligned_realloc(_ptr, _size, _align); # else - return bx::alignedRealloc(this, _ptr, _size, _align, _file, _line); + return alignedRealloc(this, _ptr, _size, _align, _file, _line); # endif // BX_ } diff --git a/src/bounds.cpp b/src/bounds.cpp index 68c6efe..2005b12 100644 --- a/src/bounds.cpp +++ b/src/bounds.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause */ -#include "bx_p.h" #include #include #include diff --git a/src/bx.cpp b/src/bx.cpp index 3329d20..43b1238 100644 --- a/src/bx.cpp +++ b/src/bx.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include diff --git a/src/bx_p.h b/src/bx_p.h deleted file mode 100644 index d44901c..0000000 --- a/src/bx_p.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2010-2021 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bx#license-bsd-2-clause - */ - -#ifndef BX_P_H_HEADER_GUARD -#define BX_P_H_HEADER_GUARD - -#ifndef BX_CONFIG_DEBUG -# define BX_CONFIG_DEBUG 0 -#endif // BX_CONFIG_DEBUG - -#if BX_CONFIG_DEBUG -# define BX_TRACE _BX_TRACE -# define BX_WARN _BX_WARN -# define BX_ASSERT _BX_ASSERT -# define BX_CONFIG_ALLOCATOR_DEBUG 1 -#endif // BX_CONFIG_DEBUG - -#define _BX_TRACE(_format, ...) \ - BX_MACRO_BLOCK_BEGIN \ - bx::debugPrintf(__FILE__ "(" BX_STRINGIZE(__LINE__) "): BX " _format "\n", ##__VA_ARGS__); \ - BX_MACRO_BLOCK_END - -#define _BX_WARN(_condition, _format, ...) \ - BX_MACRO_BLOCK_BEGIN \ - if (!BX_IGNORE_C4127(_condition) ) \ - { \ - BX_TRACE("WARN " _format, ##__VA_ARGS__); \ - } \ - BX_MACRO_BLOCK_END - -#define _BX_ASSERT(_condition, _format, ...) \ - BX_MACRO_BLOCK_BEGIN \ - if (!BX_IGNORE_C4127(_condition) ) \ - { \ - BX_TRACE("CHECK " _format, ##__VA_ARGS__); \ - bx::debugBreak(); \ - } \ - BX_MACRO_BLOCK_END - -#include -#include - -#endif // BX_P_H_HEADER_GUARD diff --git a/src/commandline.cpp b/src/commandline.cpp index 2ff57f6..758b3e0 100644 --- a/src/commandline.cpp +++ b/src/commandline.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include diff --git a/src/crtnone.cpp b/src/crtnone.cpp index 7852f37..3b00ee3 100644 --- a/src/crtnone.cpp +++ b/src/crtnone.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include #include diff --git a/src/debug.cpp b/src/debug.cpp index b02e53f..59e12a3 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include // isPrint #include // WriterI diff --git a/src/dtoa.cpp b/src/dtoa.cpp index 99b27a5..5ae5ad9 100644 --- a/src/dtoa.cpp +++ b/src/dtoa.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include #include @@ -1120,7 +1119,7 @@ namespace bx bool fromString(int32_t* _out, const StringView& _str) { - StringView str = bx::strLTrimSpace(_str); + StringView str = strLTrimSpace(_str); const char* ptr = str.getPtr(); const char* term = str.getTerm(); diff --git a/src/easing.cpp b/src/easing.cpp index ec4c451..1de7a95 100644 --- a/src/easing.cpp +++ b/src/easing.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include namespace bx diff --git a/src/file.cpp b/src/file.cpp index c47eb37..f3d6534 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #ifndef BX_CONFIG_CRT_FILE_READER_WRITER @@ -923,7 +922,7 @@ namespace bx Error err; DirectoryReader dr; - if (!bx::open(&dr, _filePath) ) + if (!open(&dr, _filePath, &err) ) { BX_ERROR_SET(_err, kErrorNotDirectory, "File already exist, and is not directory."); return false; @@ -931,7 +930,7 @@ namespace bx while (err.isOk() ) { - bx::read(&dr, fi, &err); + read(&dr, fi, &err); if (err.isOk() ) { @@ -951,7 +950,7 @@ namespace bx } } - bx::close(&dr); + close(&dr); return remove(_filePath, _err); } diff --git a/src/filepath.cpp b/src/filepath.cpp index 14b3478..6bc1a02 100644 --- a/src/filepath.cpp +++ b/src/filepath.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include #include diff --git a/src/hash.cpp b/src/hash.cpp index bdef607..a76e483 100644 --- a/src/hash.cpp +++ b/src/hash.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include namespace bx diff --git a/src/math.cpp b/src/math.cpp index 71f96c5..b572fc0 100644 --- a/src/math.cpp +++ b/src/math.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include diff --git a/src/mutex.cpp b/src/mutex.cpp index 6f6da64..d04d85e 100644 --- a/src/mutex.cpp +++ b/src/mutex.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #if BX_CONFIG_SUPPORTS_THREADING @@ -59,12 +58,12 @@ namespace bx { uint32_t* futex = (uint32_t*)m_internal; - if (State::Unlocked == bx::atomicCompareAndSwap(futex, State::Unlocked, State::Locked) ) + if (State::Unlocked == atomicCompareAndSwap(futex, State::Unlocked, State::Locked) ) { return; } - while (State::Unlocked != bx::atomicCompareAndSwap(futex, State::Locked, State::Contested) ) + while (State::Unlocked != atomicCompareAndSwap(futex, State::Locked, State::Contested) ) { crt0::futexWait(futex, State::Contested); } @@ -74,7 +73,7 @@ namespace bx { uint32_t* futex = (uint32_t*)m_internal; - if (State::Contested == bx::atomicCompareAndSwap(futex, State::Locked, State::Unlocked) ) + if (State::Contested == atomicCompareAndSwap(futex, State::Locked, State::Unlocked) ) { crt0::futexWake(futex, State::Locked); } diff --git a/src/os.cpp b/src/os.cpp index 65ce48a..e1e85be 100644 --- a/src/os.cpp +++ b/src/os.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include #include @@ -209,7 +208,7 @@ namespace bx { const int32_t symbolMax = _symbol.getLength()+1; char* symbol = (char*)alloca(symbolMax); - bx::strCopy(symbol, symbolMax, _symbol); + strCopy(symbol, symbolMax, _symbol); #if BX_PLATFORM_WINDOWS return (void*)::GetProcAddress( (HMODULE)_handle, symbol); @@ -229,7 +228,7 @@ namespace bx { const int32_t nameMax = _name.getLength()+1; char* name = (char*)alloca(nameMax); - bx::strCopy(name, nameMax, _name); + strCopy(name, nameMax, _name); #if BX_PLATFORM_WINDOWS DWORD len = ::GetEnvironmentVariableA(name, _out, *_inOutSize); @@ -267,14 +266,14 @@ namespace bx { const int32_t nameMax = _name.getLength()+1; char* name = (char*)alloca(nameMax); - bx::strCopy(name, nameMax, _name); + strCopy(name, nameMax, _name); char* value = NULL; if (!_value.isEmpty() ) { int32_t valueMax = _value.getLength()+1; value = (char*)alloca(valueMax); - bx::strCopy(value, valueMax, _value); + strCopy(value, valueMax, _value); } #if BX_PLATFORM_WINDOWS @@ -344,7 +343,7 @@ namespace bx int32_t len = 0; for(uint32_t ii = 0; NULL != _argv[ii]; ++ii) { - len += snprintf(&temp[len], bx::uint32_imax(0, total-len) + len += snprintf(&temp[len], uint32_imax(0, total-len) , "%s " , _argv[ii] ); @@ -373,4 +372,9 @@ namespace bx #endif // BX_PLATFORM_LINUX || BX_PLATFORM_HURD } + void exit(int32_t _exitCode) + { + ::exit(_exitCode); + } + } // namespace bx diff --git a/src/process.cpp b/src/process.cpp index 8dc2a6b..9fe2636 100644 --- a/src/process.cpp +++ b/src/process.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include diff --git a/src/semaphore.cpp b/src/semaphore.cpp index 4b62d08..f61071c 100644 --- a/src/semaphore.cpp +++ b/src/semaphore.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #if BX_CONFIG_SUPPORTS_THREADING diff --git a/src/settings.cpp b/src/settings.cpp index daed2f1..a536781 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include namespace diff --git a/src/sort.cpp b/src/sort.cpp index ce1b3e3..670c3bc 100644 --- a/src/sort.cpp +++ b/src/sort.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include namespace bx diff --git a/src/string.cpp b/src/string.cpp index 9cfd948..b95c69c 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include #include diff --git a/src/thread.cpp b/src/thread.cpp index c53aa87..87cbc9a 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #include @@ -267,7 +266,7 @@ namespace bx if (NULL != SetThreadDescription) { - uint32_t length = (uint32_t)bx::strLen(_name)+1; + uint32_t length = (uint32_t)strLen(_name)+1; uint32_t size = length*sizeof(wchar_t); wchar_t* name = (wchar_t*)alloca(size); mbstowcs(name, _name, size-2); diff --git a/src/timer.cpp b/src/timer.cpp index b6ef62e..664939b 100644 --- a/src/timer.cpp +++ b/src/timer.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#include "bx_p.h" #include #if BX_CRT_NONE diff --git a/src/url.cpp b/src/url.cpp index ce02bd3..0a3f615 100644 --- a/src/url.cpp +++ b/src/url.cpp @@ -3,7 +3,6 @@ * License: https://github.com/bkaradzic/bnet#license-bsd-2-clause */ -#include "bx_p.h" #include namespace bx diff --git a/tests/easing_test.cpp b/tests/easing_test.cpp index ff0a819..1c0448a 100644 --- a/tests/easing_test.cpp +++ b/tests/easing_test.cpp @@ -42,7 +42,7 @@ TEST_CASE("easing", "") if (vv >= ys && vv < ye) { - bx::write(writer, "*"); + bx::write(writer, &err, "*"); break; } } diff --git a/tests/settings_test.cpp b/tests/settings_test.cpp index 85b72c4..b1f1824 100644 --- a/tests/settings_test.cpp +++ b/tests/settings_test.cpp @@ -21,9 +21,9 @@ TEST_CASE("Settings", "") settings.set("test/foo/bar/abvgd", "1389"); bx::FileWriter writer; - if (bx::open(&writer, filePath) ) + if (bx::open(&writer, filePath, false, bx::ErrorIgnore{}) ) { - bx::write(&writer, settings); + bx::write(&writer, settings, bx::ErrorIgnore{}); bx::close(&writer); } @@ -37,9 +37,9 @@ TEST_CASE("Settings", "") settings.clear(); bx::FileReader reader; - if (bx::open(&reader, filePath) ) + if (bx::open(&reader, filePath, bx::ErrorIgnore{}) ) { - bx::read(&reader, settings); + bx::read(&reader, settings, bx::ErrorIgnore{}); bx::close(&reader); } diff --git a/tests/test.h b/tests/test.h index 88c39f8..cb7fd05 100644 --- a/tests/test.h +++ b/tests/test.h @@ -3,8 +3,8 @@ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause */ -#ifndef __TEST_H__ -#define __TEST_H__ +#ifndef BX_TEST_H_HEADER_GUARD +#define BX_TEST_H_HEADER_GUARD #include @@ -18,4 +18,4 @@ BX_PRAGMA_DIAGNOSTIC_POP(); #include "dbg.h" -#endif // __TEST_H__ +#endif // BX_TEST_H_HEADER_GUARD diff --git a/tools/bin/linux/bin2c b/tools/bin/linux/bin2c index 2b8fca8ccc19e183549e78cfd80651da98992a82..a79a17d9182a3d3eb2b80b79dfea2e1a33296cae 100755 GIT binary patch literal 96464 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

)ETP2#c<&TJC=*EEQooY@R=X0s`wp9LCT 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 Kr~@Nj9sdtoHlLCJ literal 92368 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

} zJ)}G)7D?wb221h#+5ZHQ;%6#fWi6&$0_j;s*+ZDfP2|NMYX)%sOy_^mZ-j537MmZb zANh;uL>DoWc}3?ey7A-cmkiY95FYpa?P@vkzA_WMS?Jzc_r3Gl| z2Fi;j$KNce4q&f8x52D{@{ zc0uKri3We@tI#|0wY?x1pP*>d9;Y~jNH_`q zA+)utF{X79`BZuE{w{XfxD?yOY3}c3>P)`P`W|}nG`Z>4yRyG1YVupH;$NP|0fdbQ7Ym;217&UJptbGPN=v>yQK1rGQx-1_|)}KR6l0>uPi`Xs&A8@>pzzK1ay8b z{GZOx>-Y@cIzO_JD=|M}&#Kw=HeM$gDwGW{tFdNp=q-Pvt?~90>biaTmtdMEu>nnt zo73%No{xQaBR!!{F~pV9{xWsfb+XhG!!O<$xJ&HZNA!j-ZhHg18zI6t$DWJKQ3LYu z*#K!!dE=DVtG%JOGk19N-)12Cwnv}(INyxwwfow;&Y%$Yj-eAXUf1@8`te0*zC|pb zu!t>B3_F?zQJy4<=*iRMv3l;7*G}&W%u)tKT`=Rxx^=Yhk4a+{dZFtHGkGL0gG-ca zyyW%!k6(PNjj zVb5Y8W3+QE;WSqC8A^Q^O`lx7G1|yg(**0?hgF{Lh_2o7bpu&JmEK5?k35ZqyfHgp zz0XHx9wc&z8TmOdLedGZ{Q+X>)hV;n3AjMyL29He=xGeh{LA~J(wFVJmKx-YS%+XGE$>&UMdR5xe`-&NI8)(z#@5nd z#jLW)i)>DRD6BHLHGEAGX&Lh!s(pra>=H*T>qV$ZA9Xkr$1H&_dr4LIBJE=Mh%YV& zdOn5813jO@u7ztx8M_upaE3T7zQ)l$^oZ{imoo-q@=8%9L$+w1RwH62%*yplz}JfU_oU)0?;zJ5HV ztWBMvP-H!%Gqo2fNw-KQaI`!!q#Wc&Dn}7+T>Swk3@d6H`zaoiu#S%7!j-J5JuCY0 zhdyMx3$buuWr=6IB4rpEev%f>+qfh>qmWjq;V|r;W2J|tiQUQn3_o>H?M2}GScinO z6Nxhjl|6q~z2GZT??$=o4I9Kn41IO(<=*r!49TR&4ZpizOozM9#}z?P*x*eo63I_W zcrzq^w2L!4jXA&_Xg@x;4aW8|H)W8V9`(stu8$v!9)Yt^V3{*w2BXxc7=9bV-K76A$h#2o*8TF6-%an${F^Q^d)W9Mc$mNRdHJoEsL_8h~If_=qV^qXr zQV~ndintxjcHZ@4xlGrpiBb_?!qN2N)=O2S1vjf=k(_4omN$Pp^Pt^qoGp6QXT@iH z&G-2&8S@pXRK~${13i`T z3(|_MjOVe#89Vq_mGPI@vsRtfSm*1Yq#x3TBK7fVq*3(|8~U*dmidU#+nNM(3ui&1 z^Q!DmCK>u+ZarO83_q*M4?TCvY@zD+zOkN)E_<)1zD7PKNb^f=kqJ|$FT_-@G0?$v z`Mu9d%ep(HHx$|BDyJmlYDBFJg<|je1@FV!>f8Km#%+V zYDZx2^>1I;K`747Jux~s`e9V3T@Qu#d*V7n(TA#!J^l>N3@#0W^!d`tuY3@FFvj*Z z&9c&6^|5s&arOfPuA||D@8MYmkKPnW#xb7k!+9an+=xHFyLNA8SJWk;VgGEn;os;{ zV3ryMihm_To*3uGnC}pODYL6uc;QlOIJ^ z)>88P`M6~==OAxTcb#LDgFEl50N*}pvl;|}^LZES9CzN=wg2QOYP)y01Tm~LLTlfP zAOGu|u(LXlJSC)>bJJ5a<;7DLUv?+2)jp(r=%$ko42$v6uo9U$FpK_tJ(5!&m=woT z+}Eh~x*pa=xi6gCsmiuJI)2r=K-iOKU-?Ti>1(w5%V@_rW~FJs8A<~VAD_9b`w@Xk z6?bzJ{QBeoJ8qcsZdz(xeun)SXui7jf}(tmm+*y-5nTJOp&bWt0)3boTEw>@dq$xY z=!N9R9IjmC%iI^z!`a%CqtY%5i{DMZX?o?_pPmz^&%bg^g)qWpN^^-1@)g zdgU?57X**Vx82@UM^mXyFgR>KNJ(_ljJnX{tpHl}lUHX?j88Bsc=+s?C6ZGCO(Wdtnp@otF3z>=%(wNoyZ063(NcWTGc8 z8-Kl=!-bBST@T-~y6RJ3*<12rxhpUX2e-S&!3_kI%8q?Og}9X%yZ3;Hm% zVXr@rG>bxgJI_#UoKfGOccR?zFWzCWaUYSJ`8eZd5ltjb36J}yG+*3xj#F{ScU*sP zo(dO7M4XP8{$yV`iJ(q7)!dMWg8uB`2Vnm#k<;lk>(3PpFDQxRGLkTXMZ|-Fmpj!MB<**jJ^aq}%Ygu8yU8Na) zBc&@Hp^W_NIFax)6=#WYwv#{qv%qLtnH+h^*rA3x`@^3y<&Ax0u&cDx-*^X~k=jaq zi4!7H`x~V$Us)mAFT|U@K=)DsT5hYDS6+09q_$R`VYAH_XIx4zn?*TBZ~Q4EN`L4Q zbEwGJ62)N8&cJUH2AI4>;|qPo7}IblyH=^($t+Cm`??^z-Ve{aTosCuf5RU%7q{79 zw>X(;i$;&b-*~Ya^8QV*Qd{gOmEyvPRDVwH|%1El{zOwt$N9R|8cB|bxqRt zC|PY>%-QPphF_C4-jW|T#9l8>pX8D{v_&s-yra&la9CMBQ~KdUg=qXvU*oWJnfwS| z*_1nsEP2%CLzX+nS^SwFvwY>#FTU~0a=77RapLUWHyI`IR?!se(eOX6RWIW=$dKAl z3!l((Vf#1yLp&_VdwsjjUSHi$L^N_7EjxR|6n5m1r@_1pAS#P1L9fIZ5GSrbv-9|~ zH5?o!@u`>D3Z~etABWwDsAhbr_w^t4fr*;!k-?YocBQzue?3(`y*kNlQOKl`2YBe_PReQQZnaxUSduOeWL4K!Ek&1Al9brtNubl1sB=t z&*rJ%QhUPzo>A-7SZj~Qb4BCoge+;6Umf_IqwZRt)4S%aqXPf&R*WLn6Pk zV5q&JQ*sm|S&uDX2Jtq4c%K)__PYa9te=P9o2Cq)e!nPIhPRFV>JE*t-}@@hp%?1f zsIb>NLj4+TXx81(c3bL~yGisat2|1dG%olxC$pS|q)p?0UyyCTH(y2^vLqPn&&L;# ze2cwq2slI4TF=3+i|qAIHWfFGUtMsj{obh(sp;gVEXjSFuPpg)pLOTBNQc=Tnc22C z^hXJP#*UrK$#Jy3!sOh3RxZ363aXrZIh7IQMNsNdZ$yhS4m0S&i-8P<#?y6zn!#;kyFPx}#T@Q$4F{-KE`y$I#x*F_Z?K`%X zzJog!zV4k9s9Wq=m9e&YrV%0uHh<4qk|nb9E_PvLXIZw8sb*cAhvOUe&I_5241PVA zQ&kX?YBq%_n|Ry#=3Jbfkc&Z*i{`(dAQ#dy8b&kMc<qCjO6^5(e{RxUQG9! zlYek(yb>Q8O7f?iDEVumO&55Eh{a3A6KN%-kx$k%v1yGLX@{-l)7 zVPwe=scGzi47B?L$a-t!8VtosHvR-%G#i%*TT!f0vAh0an0Cf;j)iEvKKbsie;fT)kw~WgV!p?oP1xBlJ`4F>;P|Kg9W9_V>{up8B$A+zvu=}a-iJgft zSkP^{YHHOWA>KjU!UCA=jgv{Yo^oDvL!2(f?e4skMu@M8)5vh9Ug-LiPCG-xIK;iG zOkybBk=(>axjX^U^>|#fWl;=b+Oe%9VYCxXV~3_wI6r?2jx6|=z1Z-V(Ca={U-Sp# zjU``uL!J~s)7YaIMYXphJfBFN=M!N1n{kQWktlU02&_Sk=sLe-Dq59$((&c4zCdgg zeAG-!%SgDBBd?ub@~SD6g&eBrQ8 zC3u4P((ZI^HjL-J3!|#pAHL>IqF+JdLmS

#Sr*dM<1bNiu;ur@AF$5l9yz!aB&{yQ#8a@-rW9M_24?f5g z4(9qhw+^G}5W@{f20NC0QsT3%6Iwyy>WPaw3|mGS5F%dtv8r{wZqc zQ+NvuxM!(xlTsxwu5JyjS6|7+gOK^MJkmfzMq)g>XBfwaP<<(RRV;prrRf1x!0HGQ-ri-> zROXpd!t-U)SUM^?QdZQU=Y;^4{lPix^|CL|v)!8!v5?j0ejujHKHzAcnyTD7k8Y7p z=|uj$D#ySYIrP{U4rKCAUgQzLPh*BBbWEQT=q1A`KKs<&4SPJHz2<3w z9yQ|=zMnS(WP+|r@$y@bJM6PzkC^V_+Vc$KXd3J0ZTfH*J_UvARIM8kxpNT{rRn{C|T@GY;3pHBylXeKv zjsx}?ZS2<@5@CXv8QTUc)tiMpdwrN2f9M59fG5v72MM2j?aOKZc;b<5PT!UflMdLw z$8Mi?-vu`p@Z6rcz&37Bp9@T4fi)F|y%#cyKc0N9C1+`!y!?kUn`=mAMX9E)@`#CZ3){YO@kP| z1EYjbLnuKTWr$hV(T};R>a%H#H;(7ozIlMHF#Dy>KX9)U@HRJ+`v{=I1fB8LfH;T zElCMqvLg~fK5jkFN(MZk-S*8pv2ll29Vek)X1b9)ZlJEwyLUcAwKdx5=Y^i-?5DNA zqvFeON45^q|Es87^$^!X$ctZyX;B|-G2(Bu$@6m%$39<8^RAy6E*qZ_kA4184?W{* zOXuwg&!_an?<3*Xgy+doda-w0GtM(83Pof^_f_Limv%9gbFz z7v_2E-`7;w>bHBlH@Zp3Q+Lq4!#EKjvwcTl8z{?`L+5)h=-@=_6R|3Mj+3H` zE|=^5jU0UUR4MvFzi-KkId2~D3auQ`vP6PkE+bgQCubvmEsJ_g(NT4%NUAv&HG*D5_o*~PWiuntxZ#yAD zVRiMw>dX3D`uDe#mj+5Lb1N#VEHf{(%v^9`|C0dKJg6HB;PU*cJ}Zb zS5CHbe0Ax9dGqI0JFhIQE-k-(URjpYQ(5U$WHrv}ikgb*TggCw|Gct_1vM3yIp+of zRW+B57;*Ewz}(u|S!E07kC=Unjyq!Z;)^N`!r`-P%7^C+FRLuAt*IbWmTPNDZzj4D z%Q<|GvtZtWan9ijodpYP1Kccd7Az>8UoozK|EX1hc?%cRT-M*I$mYzetZ-J92Ih`) zauqG8stq`!xGW)pM--umrq%|Ir!o@|F6#1BSC`)Alti=o_n)}1+F4p&K2MS^t#r;? zFlS-){8D)u=B%lx_*c0me=(8?Pv`vFnt*e5g|nurqHNxrd4>^CF0sOW6Jbq&2R<)nZxBMHGXf)GX)F5n>_wii=-6Z$TjMrhwvb zia!Hn9X9;xkdI~5?Hhj2cPHAOLg@p=H zA>z#+!N8r(3QPIf`903Bp&%0Z9=|&n@R#$O%x@&WLHw-zJ|yf7e*eL5!{kV02|q8t zde-aG`K{qMfailO2JZrzdN83(=ZM7R{N$`q$0Zg^%QCA)&I%1axY}ZQ_wzoMKRtZ8 zNuLN^E?2fI$2HQG>l)=6?Hc3CbLD4Kjk0sHM`q_{kIEjMJtjLZJ6~#5PEO9qoZOsI zIiqvNrra zjmjRCGiv0h+)<-OjUF{-RNkok(XP?iqjN@&9GyFQ)acQp$BfP!oj=AkCVNcIn2}?0 z$BY^?dd!$Hd1LbPTzT1fIe8=Va`Q&zjm{gBmzS5HkBIpspAYMNqUD21%$NCGaQOPe z)rVIc{^j8xBr1Z!gM;<)#+aoU@`R5VK(Q}TDI$C`6mZJ?vTaG?= z^v$FDkM=({k;c2wrrcW zt#6Vu>GGs&ld6&$lb%RwOZr>V=SlYDp)!}2a4okDPHA~_)z`N^Kknyuz5DCuZe4$^ z%X#>W#t%omI%{%h{A$X!1?iq94;VGjZaJ(>ewJ&eshYvRIxa^)GFE<3xYqx?es0bmQbDm3?lSeeX2amfVuarkAe0 z___O5G+g!IAD3oUr7!ww->QxOz46gM?)$|9cLtWfcGHuGUVCKSsvlQ*pS|UD`}2po zQ-1VJc6PS;>FNKO_9si-fv4|1+I99R z_m`*q_oi2t7cV^Nl}#&#Rh;$Sj5B}#x}k3O8i9@{c7^F-*1y=b_*eBOJ#c7o{uOus z?(}{y-SO&A+p1=Mc*m?=No_Uik2t7hf{<(Mt|*+m-$EvX9sOYUhf) zig#M~R6KR|%9I^-51;$P@n4-gYuk(u&iTc#c~kEHu&L_o@=vUPo4jcM!w)?^|K|<2 z+_~Y7#U~wDH0bZQJ@)?e4KKX-$c^_eyK&jrSr6`faoVVzziavF*E2T^{mDOWYI*37 zk4}7N$cp?uxi38O#LP!mKVJRt_Ag%D+&O*P^Lu~)p69{?XMT2M`4fw0zVXPb&R6zL zyWoz`Za8E0Wv=soy7%dp_a6M+KW0vQ{jci^yuV!g*Cme}c6itR((k|Z4`;7&KeK=3 zQ;oywum6Q(|M~5i+4pt+_gcpzKO3;-vBQrzKFB;(kH0S3_uPW#AMCp2lkP_@x83`j z1*HotbT<}PmMn2wEXQtpwD>gd8&{}@)>^lM(SO}{8MobL`xZ2VCemETdlz$53!Y{1 z&a18{3*dZQQ&Czj-bvxqiCGq*KOv$TN@s<*Bw3cy*_K7KE!DFvBP>}sGRJXC=m5&i z)WqrGicLrEo%3p(rInJvZK`L{WQxv|KY`^OqM2mz{NnqlIJ)U`#cimrSP*bVMRJxe ztf+A=SQtQp%7u%xn^sj(J%3(J4Sl`zb^(c3y|ApJrbeZyWHtq^SUj&LFw9xHpj@&c zjH0}=EYqhHdyB3SV3}U1{|RD5V1AXwH+4#(WrQ#uQBzSlXM}Xm^DRS$)(ojEw`44+ zt*p$noZR0s#FdpZ$2p`-{ zktaX>%aqy0hMilAudtqzbomk11<#|S?nsVATqm(VpI2080GokTKxcn;+YGQ++E2wV z;JNKI`~aSvr$-{2fNj9#;M;*~fE~bAU^j3Z(0N8AvKv?eJP51;rr;C=frC>?Mz!^MS&Vmom4q&B(1B1XS-~+%`V5`ub9f`aG zbO2{S?*ex4>;`&yE&(3oxe8dxb2D%quA)bcO2Y9I*8p39JAp3z#Dl;#pp!LqR}Q`+&<$J+EC#LsmH=CT?Z6EZK9cyrHsD?f zA03Hgu&2S9Pds2da0RgBa%`2&92We|TwwD!^a|_-HUq2NlpnAicu<~sEjZ(J^Z+ad z201fh4X_>925i9>9l*AqHsA_YBpvvr>w(3eAg178@K`34BQ3m03HNd z{OF4%Stqa@SOTmEwgA@xJAef&Shq|;4qzLw64(J;4zyea9ncAE6FhL2;HO3+-GT=W zV6UJXm;o#Segte0{JGErhXJdKBM~>S8#o=4`2=4K9EM!2Kp)U@C-nh4=>WE3 z2W?BSTd|iQb|7|9hu)m%y&ihX*|iM&=h<>Ec7$EHmXm+*RUyika%}r4`2xCD)7}7E zff+-<0}Fs1z!|{epJAuK65vK)@IRoJaA3y8qz^0rwm(X~fUPai13MmrzdZjOdU*!Q zc(VC%=z)&4)C+kA*2_2(xEk07Yz3A)K|2Ht0uKV4fhift^9$@9*!)ZM3+z~j9)aD! z7NF}%>MO7qn4C#|frEg}z+u2PpdZ))ECD+H6MX<(zz2Xq;7(vW@CeZP6zL6x53n5A z23!qvtfxGHB|yui!~+fnwgL-)mS3R{U@@>o!ht)1?Z88V|26eu82o<&9kBVg$PMfO zCJ!h6e^F0>PGEt+r^zSK4Qv6n0Cxi&&!E>V_yai|)6xyh13EUMS76JtlmoE+Ino=! z^B<^Bz^YBOv%ro&lCHqbVAVgc7oh8X+FhXY10dxW45KHW zyMgXp^ua}UqAu(0*I2BJ9oBOO^h;^R7ZN;G%+h*NBtlkj!23A_VAd9ix{m!TEjDh_ z923(9O}3{lN(ox7IQz1pBh#r7M*NvT=doiE6;Y5}!Z*Ng5cp<^uP>ol!Ot}y66q6z zYvFzvxRYXV8@SH^mlA{9$$dIFid$VY2bR73+~D#BGbPPYXPc9jQn=M3X&vHMp1@-O z`7Qw$o4ylVCAc364=#zD3vThr@pL|L_26RZW`b)@i>Ipsw+5U?aWnYUgWC-*P2)uN z)!=r4%M+YG&9TgObDHE=!Zr|gh_ETquq7%?WNRmEn7xOW;NA!4OTZlhSDt_yKzVd0 zyMa=|T6(320`L1a2rWa5%^XM$@@z*T`el7OoRx0*C!b+;PawivyO9@c~F zAnso!fr)936*f=Wpk+y(G-qA1ZA$;NL7p_n__P#Xs;wmYP?$>IArBL`p8V#MZ;89g zR+u(uWl~|9vnhFeTE>b#o;268zTULFx_*<=+_shd)AGD&E>Bv<_%!GEv_az)=SiuG zS8fvJ@1TxHc|ox<3CgDALg7WsWql_IFK=2^(pYP+%)F@uh!TWXLBB}kTFtA;2Co&8 zr)9~cUe{-GTB|K-6f82pkzYd+581M0@M|Of%oN&B?hT!IMJHbJaCcM*Q2Pm%SI%5V zk42smLsB}J6qUP22OdKQEvF|vpN!z>B|!@+Z7JV^Wa`T)J+>jXSqyF_IJ$2Rrxv@t zTG?hZkCmE!y3XrL$!nA7ZH44@ndq&qFX~^=UnNS0qpJ6&+A6_LQfi1|C#L#APKZZN zPQCT`_~TQjr@6fGgpvmfm3`Q$k;rLs&n38l;PSwoip|I+xD0UKfxP4)vU3Tp0Gy2d z%(h9|yJB#gz%>a`kDV#oP&!t&q3q0?R&4Y2s^JN#lhX2h$0=UYY=!?v@Em6C;>MU+?|5!(MNCf4x6p+RUJjC z6VvjFj#G!qdmH?hz@KhSU80X&;MRdN%SCWuaBIPdJ1Cd*Lr1{1f*YVP#y_bi1N#~A z<;)60W(@AQ`mO58m1#k1(kW8GzoDL#!*A!=k%-h;xg?Fn;I@Iw5*t%`=}9A@E_&0N ztx4N@Ps1lXrQYp?-`c^E$VJ>sy{og$iuM=p6Sk2sX)lbh+0p(&jv9Q0usHh%w;P=B zl}mIbAIW_m9PTjEocFUVqVk_*e;Zb%v7arTr@3A$p$tB?0z)?Kv5?nL5P2l8SE`e*oZ3OoN zg)wj&!3}gqBJ*N!uYjupSF3S8Uu$XR7|GzDo6blZ`gNBx$e>Q$D`qyE0X5 zc36MwZtw3$N6RaPKxdL2Op#AAT)EB9X_myj8$va0M6Z zb{1Xh{?IG^AUt%SD>W2sGo8 zNaUxwd{@|tj6M{oIK)e%ZNnoiN@*iMI_FC;?NTtaVDlJzggzi zoI@j#t0ljxZ=|D3DNOb9-=FGJbuy12nd6%QoxGSU_I8|4fT<-}QEpsje5vV>w-a~G zrL1XkZ=_KL_bcPl5cv;5w+p%-3ms|1=J`saB8q;ac^2NoXeiyov_GxnCx>-OlhT}X z6eYD*`A5^Cn*rSmw68|nrhF}5ysxGFqlx5Xp_mE9n&4(kNOcmu1zvk|7+-R4v?C;U zTmLkN(L|{9wn39JG7@=JXvoVd@hfzD-P7l4yDYIa^_m>MowQpHIGz^+yl&?CDIG80AYD$v3)~{(z2x8OxO~_JdzHV(60qIqdXFs zDhM?eS{kL7dE{X?#Oq(?l$SHdhYO@G;Tr~5pMX08E|`FG*r`7WxO8yqz{Qqv9=KiL zV#hmva2*M_5^x{I;8gy>&7FOG{s$vxGhxHBBaulWx#~B6Nd29hT1bv1yp`~ogpY}a z&nCPm8ZPtXOHL3jX?GJY`RmP=2B4_6Ucy9w8T`vdX0u!bSHQoj1Y9w=0@801`M4y_ za&Q~LnQ5A10tpKeww^S5v(Yt#IVju2Fww(C!s_99B0cRUe8UOCCEY`WzfZXGTU1*n z9*rUIz*Df76NI@48%&U%715V+)7 z@o|TND+U)!=LWY1x&A1La)}oOdM{y;r)`AI zAS_mf-QbdG$9t3EAYsy9^p=hTM|i*q!iEv%I6;_?uz~1C`D3b$vdu8lO_iKeQaFyU(x$(FlxL3gaDu(U>aC1k+ z)2#!SJUSk?30w;}Gj1+C+QALGDH3^I_$j{zUwxVQsCCI#M<+xkq|S}r7p6+Q6xPj> z$3!CU=y**wpUlJHW!5EM2QAYsG{MwYe`Q~O6n_qQ*XYy8(zENm75=le9FD(AvQmFoq8I{ zn_3>d_oXs=(fPz1CE8%tdb;6J5tS!l&P>f^MCCd8MDhr)x$qiTz`aeS&<*w$C;g;U+vCTf;FZB|IsDdEu%5xa)XQZyS9~{C%k& z@W=xjnM$?HNM;+>RwV*(Kwbi@Av z_^-R7XHHbfsm2+$Mx>db=VGM_lY2Ge%MePWF6^vnpZVGQ}tP9-E>|j ziwydHyyQ>pYv5V*V{=&hlej%)!NB8Yh)JHZC``2lc_4irij4VHSyM0mAF>H)i`T%< z;@0Du@-zpc((2fnr0KW{nQk%Zx^O5q`67{Nz03_J%-c;$+vxPCwOweVz3ru)mYp}Ki(frF!;EjP zWIWRA__e3qpOn^ZO)5=>A-IGAvziOcfQ9U_2v@TggL}h%na`+8x(Zcl%QptkLMw(e ztcLZ)D6MKsMC~^jHN&8lvL6O*5L%{`)Fox_2Db#d$6sdYSh>alZ7L zOYkfk6}p#fO-z-v*THKo`vlCi-QYHXYXLV%m!F=OqYaKn&xEQL^ljlQY!z@wn8iUlgq_V_NA-`w@VOaTf8hu+3r;4f$C%Df%JS+ zfH*U5J1&m$QLgGGj>x%=ILWuO9v!t+)ppBN(^LfYnr)xZ?t(Vu4%X7+WfEGdlBUJ! zkUX(P+Oi&6r3)Sf4g|Lo+%F_twSQ9#`zf~Jz=%?M?8gnQe~GU9J#8iSGe1fy`V(8J zgti6RMZ(vIh0Rk9nvz5IT_oSxQ@&zPYrx4K4QU2t&bb)N68ScOPXYg+;8mJaMLv35 z+xMf1QX7Ov2eeC|6;{GS{9MWRArSR3>B;=o00sm>aDNn9#dqS#eZ5UdE0S#w_h(&P z`rly$aat)eIYJhSneK(E}!KSqshwE}MHvug*3N#i{D9`-wy5paMC^+I;Q`YGIlPE7BMrYW)H0D;w!{y{Ws%S zE@1reZ^p?bPWa!9GnY8YcmI3&SwkG>zZs{UI0gSk9I2Pd7h*rek@7X{OHJ)5AHzx5 zOv0p0jB=Psc~4U1EjTyfmH$S1Qhx%(Sxy{}@SH4j&#En(ApL!r+2|H+-7f8y)XTNd zuY-QL(3@>+UDA{^C-vTNaaBEd1-jO6$ye5_w4wq^0)> z^o-|v`r?VSU^1XPz9;siQYmzoKQU$zn>Kd|Yy+gRjx=W5%rs884lj#J+oNe<{ft;_1n6BlVu(Ay50wgG6Yt#HN$Vky*=xZx!~7=TMh0y z?xjp(*M#ta>iRHtTpYg`qWt*1#A_p7#W%#Wv2cZ2qk|H$i-AMvABcC0#N!g2?Bkoh zya(q4Cwux@!JTX6LD>p+e4=#+x9!=eO~e)#t6{=xIlSsa%&SCs^^8q>_LQixHftuf zNUyvY=;gs{7rb`B-|Tsy`F^D1l$WivJmYZuqr|eDIqen>W=j*j^?#X5C=YTsv>nlkqVD1@Jfs zk8l%5I&m*~?0xJYn}{S&(Tb(&kFC9}^ccofFlcvN5U80pcGbez%UV$M@*kRuff5 zQL4=yQ;4GX^~7s^FcSG^d_2bGwqHc!O-Q}TGy@-W9mJ{pDf8IzZEeE(x1OJCw%Y#L zYsD&5^I@{rHTV$z>xt?pTXv#*$bwee`@I&6PpzddhS!FNBav0C#~5YYQ{RspN4B1n zG*a5l7?FmM%5XSZ!Y}S{+fNrB7>6eQ6-;~$9lr@ zeiMoOT*8!pE8X7x(M4W~zYdyh&^#wJD*lryzSz??!sfQ}uC6ZQ6*lJL^qenZCVh(T z7>N(U{imtBQkpt7A9jRz!3{nA!zx+#*Lwnc+FV`F+zWcszv>&jmm(j0`UvCiuJ1JP zod&+sz;_z>e_8|GSw{9+HB8K`LrvB&e%DYwF)LS#bXdJyC1$vW@?MBsttX&wHR(qg zbnPb8_(KunGC~;#nfx?eNsbv354$zqt?61v8{rPMV2t0Ez}KSj#hSiFKgV-r-bm-8 z>Ra-4Yx>~7;9IQex=lDHF=gYqBj14C8agiPovwL>fp<3FapThm7z< zxl43Br%tcijF+HCi>7P6Pp7lmfQfQ9YkAz7&Y}4k)II-8<{9_S9~dww6FXe(a|~Eq zVZgTA4VWl*N2P%;(eXQOHl7pp-LlZYyER?gt;Tbr+}#Tde9+{lp@HrB@0@GgcW79A zn~taDZq{-a*BJOjx!pP)x6Xgd3FK~`Z^U(0 z#|+r5?a;NxcuthJMaOH_@tpcOQP15bUej3~Huxp}Z`b-MG0SB#%na>+V{TrLe|T|%y64NEkv(lDrDvxY4iwrXg^X8%({0h;}j+21Div)#JCGW##H z-7@!J@{^lspe>fHnz=QB>Hr7qWN|)QMRk=Wiz8(!vTj~bo5e{noJ$k9Ee18ac3x%q z@OkALhuyp=BI2*iX*VI_#B*FQd)^nU*{|^z;+(?Pobo@cOfiR)jj+*R^(lehd zmeaVEw#$s4r{kN@*+Z)C%=XGeU(8Kx{24mF30V?}yOQIcEEaK(W8*K;@lEJVpihiH ziSRFI`%L-G{=tN1`ey%-DF4;O7af}M&HlrLt961Rqv+0zZ?@y#11BPz@y-6ogl7K( ziMkT?UkX;*b~C=&o||yCj%Uhm(wR`)Bk3#5XS2UBVT+D0@{63N{2Fb!lN-sR8Q<)` zOlbCBX8LA)GynJM_~SK0vp+Q9Ze5-dUwnYX`1gSmotXSBP9EfPs{e9KN8FWI{xV#N zjqh|C$WvGLn3Gzd&+((7ny{#EWxd<*xn@!NHL6ULr75F5{o|71e^ zk|9E6v6%49cZ_HAzZuVb{tY*=>6`wR2~9uDq)*h}(>i`sO%CD4rJ>t&oD8hRsi6sE z?~24Q;+s&;x{AFL(|?)3xcF+rk%e_$gU^ghV`KN&kBNPg8*#C;nORK#a)Bg;9%lID?S0pvlU#|Vv1Ty+ zH1hAzik12+ml@x*gGa!{rf>SMhh`b^Q_O-