From 7aca66ff06ca39445913fce3f6ebdeda5b863587 Mon Sep 17 00:00:00 2001 From: bailwillharr Date: Tue, 28 Nov 2023 12:50:55 +0000 Subject: [PATCH] pbr work --- CMakeLists.txt | 3 + res/engine/shaders/fancy.frag | 4 +- .../engine/textures/normal.png | Bin src/application.cpp | 6 +- src/gfx_device_vulkan.cpp | 2 +- src/libs/json.hpp | 26753 ++++++++++++++++ src/libs/tiny_gltf.h | 8485 +++++ src/libs/tiny_gltf_impl.cpp | 2 + src/util/gltf_loader.cpp | 59 +- src/util/model_loader.cpp | 3 +- test/res/models/teapot.glb | Bin 0 -> 2729324 bytes test/src/camera_controller.cpp | 146 +- test/src/game.cpp | 19 +- 13 files changed, 35396 insertions(+), 86 deletions(-) rename test/res/textures/emptynormal.png => res/engine/textures/normal.png (100%) create mode 100644 src/libs/json.hpp create mode 100644 src/libs/tiny_gltf.h create mode 100644 src/libs/tiny_gltf_impl.cpp create mode 100644 test/res/models/teapot.glb diff --git a/CMakeLists.txt b/CMakeLists.txt index 2fd1a1c..b88dbeb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,10 @@ set(SRC_FILES "src/imgui/imgui_widgets.cpp" "src/imgui/imstb_textedit.h" "src/input_manager.cpp" + "src/libs/json.hpp" "src/libs/stb_impl.cpp" + "src/libs/tiny_gltf.h" + "src/libs/tiny_gltf_impl.cpp" "src/renderer.cpp" "src/resources/font.cpp" "src/resources/material.cpp" diff --git a/res/engine/shaders/fancy.frag b/res/engine/shaders/fancy.frag index b0fad9d..5bba92e 100644 --- a/res/engine/shaders/fancy.frag +++ b/res/engine/shaders/fancy.frag @@ -15,8 +15,8 @@ layout(location = 0) out vec4 outColor; void main() { // constants - vec3 lightColor = vec3(1.0, 1.0, 1.0); - vec3 ambientColor = vec3(1.0, 1.0, 1.0); + vec3 lightColor = vec3(1.0, 0.9, 0.9); + vec3 ambientColor = vec3(1.0, 0.0, 0.0); float ambientStrength = 0.05; vec3 emission = vec3(0.0, 0.0, 0.0); diff --git a/test/res/textures/emptynormal.png b/res/engine/textures/normal.png similarity index 100% rename from test/res/textures/emptynormal.png rename to res/engine/textures/normal.png diff --git a/src/application.cpp b/src/application.cpp index 8c3dbae..d9c7268 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -167,9 +167,13 @@ Application::Application(const char* appName, const char* appVersion, gfx::Graph /* default textures */ { - auto whiteTexture = LoadTextureFromFile(GetResourcePath("engine/textures/white.png"), Texture::Filtering::kOff, renderer()); + auto whiteTexture = LoadTextureFromFile(GetResourcePath("engine/textures/white.png"), Texture::Filtering::kOff, renderer(), true); GetResourceManager()->AddPersistent("builtin.white", std::move(whiteTexture)); } + { + auto normalTexture = LoadTextureFromFile(GetResourcePath("engine/textures/normal.png"), Texture::Filtering::kOff, renderer(), false); + GetResourceManager()->AddPersistent("builtin.normal", std::move(normalTexture)); + } } Application::~Application() diff --git a/src/gfx_device_vulkan.cpp b/src/gfx_device_vulkan.cpp index fff1915..ab4aeee 100644 --- a/src/gfx_device_vulkan.cpp +++ b/src/gfx_device_vulkan.cpp @@ -727,7 +727,7 @@ gfx::DrawBuffer* GFXDevice::BeginRender() std::array clearValues{}; // Using same value for all components enables // compression according to NVIDIA Best Practices - clearValues[0].color.float32[0] = 0.0f; + clearValues[0].color.float32[0] = 0.02f; clearValues[0].color.float32[1] = 0.0f; clearValues[0].color.float32[2] = 0.0f; clearValues[0].color.float32[3] = 1.0f; diff --git a/src/libs/json.hpp b/src/libs/json.hpp new file mode 100644 index 0000000..87475ab --- /dev/null +++ b/src/libs/json.hpp @@ -0,0 +1,26753 @@ +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ +| | |__ | | | | | | version 3.10.4 +|_____|_____|_____|_|___| https://github.com/nlohmann/json + +Licensed under the MIT License . +SPDX-License-Identifier: MIT +Copyright (c) 2013-2019 Niels Lohmann . + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#define NLOHMANN_JSON_VERSION_MAJOR 3 +#define NLOHMANN_JSON_VERSION_MINOR 10 +#define NLOHMANN_JSON_VERSION_PATCH 4 + +#include // all_of, find, for_each +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#ifndef JSON_NO_IO + #include // istream, ostream +#endif // JSON_NO_IO +#include // random_access_iterator_tag +#include // unique_ptr +#include // accumulate +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include + + +#include +#include + +// #include + + +#include // transform +#include // array +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include + + +#include // exception +#include // runtime_error +#include // to_string +#include // vector + +// #include + + +#include // array +#include // size_t +#include // uint8_t +#include // string + +namespace nlohmann +{ +namespace detail +{ +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa see @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + binary, ///< binary array (ordered collection of bytes) + discarded ///< discarded by the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string < binary +- furthermore, each type is not smaller than itself +- discarded values are not comparable +- binary is represented as a b"" string in python and directly comparable to a + string; however, making a binary array directly comparable with a string would + be surprising behavior in a JSON file. + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */, + 6 /* binary */ + } + }; + + const auto l_index = static_cast(lhs); + const auto r_index = static_cast(rhs); + return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index]; +} +} // namespace detail +} // namespace nlohmann + +// #include + + +#include +// #include + + +#include // declval, pair +// #include + + +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + * + * To the extent possible under law, the author(s) have dedicated all + * copyright and related and neighboring rights to this software to + * the public domain worldwide. This software is distributed without + * any warranty. + * + * For details, see . + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 15) +#if defined(JSON_HEDLEY_VERSION) + #undef JSON_HEDLEY_VERSION +#endif +#define JSON_HEDLEY_VERSION 15 + +#if defined(JSON_HEDLEY_STRINGIFY_EX) + #undef JSON_HEDLEY_STRINGIFY_EX +#endif +#define JSON_HEDLEY_STRINGIFY_EX(x) #x + +#if defined(JSON_HEDLEY_STRINGIFY) + #undef JSON_HEDLEY_STRINGIFY +#endif +#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) + +#if defined(JSON_HEDLEY_CONCAT_EX) + #undef JSON_HEDLEY_CONCAT_EX +#endif +#define JSON_HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(JSON_HEDLEY_CONCAT) + #undef JSON_HEDLEY_CONCAT +#endif +#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) + +#if defined(JSON_HEDLEY_CONCAT3_EX) + #undef JSON_HEDLEY_CONCAT3_EX +#endif +#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(JSON_HEDLEY_CONCAT3) + #undef JSON_HEDLEY_CONCAT3 +#endif +#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(JSON_HEDLEY_VERSION_ENCODE) + #undef JSON_HEDLEY_VERSION_ENCODE +#endif +#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) + #undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) + #undef JSON_HEDLEY_VERSION_DECODE_MINOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) + #undef JSON_HEDLEY_VERSION_DECODE_REVISION +#endif +#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(JSON_HEDLEY_GNUC_VERSION) + #undef JSON_HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) + #undef JSON_HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GNUC_VERSION) + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION) + #undef JSON_HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) + #undef JSON_HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(JSON_HEDLEY_MSVC_VERSION) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION) + #undef JSON_HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_VERSION) + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #undef JSON_HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) + #define JSON_HEDLEY_INTEL_CL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION) + #undef JSON_HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) + #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) + #undef JSON_HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PGI_VERSION) + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #undef JSON_HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) + #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION) + #undef JSON_HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) + #undef JSON_HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_ARM_VERSION) + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION) + #undef JSON_HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) + #undef JSON_HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IBM_VERSION) + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_VERSION) + #undef JSON_HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +#if (__TI_COMPILER_VERSION__ >= 16000000) + #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif +#endif + +#if defined(JSON_HEDLEY_TI_VERSION_CHECK) + #undef JSON_HEDLEY_TI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_VERSION) + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #undef JSON_HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) + #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #undef JSON_HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) + #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #undef JSON_HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) + #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) + #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #undef JSON_HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) + #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #undef JSON_HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) + #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #undef JSON_HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) + #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION) + #undef JSON_HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) + #if defined(_RELEASE_PATCHLEVEL) + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) + #else + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) + #undef JSON_HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_CRAY_VERSION) + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION) + #undef JSON_HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) + #if __VER__ > 1000 + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) + #else + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) + #undef JSON_HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IAR_VERSION) + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION) + #undef JSON_HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) + #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) + #undef JSON_HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION) + #undef JSON_HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) + #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) + #undef JSON_HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_DMC_VERSION) + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #undef JSON_HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) + #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) + #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION) + #undef JSON_HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) + #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) + #undef JSON_HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PELLES_VERSION) + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #undef JSON_HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) + #define JSON_HEDLEY_MCST_LCC_VERSION JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION_CHECK) + #undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_MCST_LCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION) + #undef JSON_HEDLEY_GCC_VERSION +#endif +#if \ + defined(JSON_HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(JSON_HEDLEY_INTEL_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_ARM_VERSION) && \ + !defined(JSON_HEDLEY_CRAY_VERSION) && \ + !defined(JSON_HEDLEY_TI_VERSION) && \ + !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL430_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(JSON_HEDLEY_IAR_VERSION) || JSON_HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_BUILTIN) + #undef JSON_HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else + #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) + #undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) + #undef JSON_HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_FEATURE) + #undef JSON_HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else + #define JSON_HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) + #undef JSON_HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) + #undef JSON_HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_EXTENSION) + #undef JSON_HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else + #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) + #undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) + #undef JSON_HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_WARNING) + #undef JSON_HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else + #define JSON_HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) + #undef JSON_HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_WARNING) + #undef JSON_HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) + #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_PRAGMA(value) __pragma(value) +#else + #define JSON_HEDLEY_PRAGMA(value) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) + #undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) + #undef JSON_HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) + #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_PUSH + #define JSON_HEDLEY_DIAGNOSTIC_POP +#endif + +/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") +# if JSON_HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if JSON_HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(JSON_HEDLEY_CONST_CAST) + #undef JSON_HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_REINTERPRET_CAST) + #undef JSON_HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_STATIC_CAST) + #undef JSON_HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else + #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_CPP_CAST) + #undef JSON_HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wold-style-cast") +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define JSON_HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunused-function") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(1,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(JSON_HEDLEY_DEPRECATED) + #undef JSON_HEDLEY_DEPRECATED +#endif +#if defined(JSON_HEDLEY_DEPRECATED_FOR) + #undef JSON_HEDLEY_DEPRECATED_FOR +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) + #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else + #define JSON_HEDLEY_DEPRECATED(since) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(JSON_HEDLEY_UNAVAILABLE) + #undef JSON_HEDLEY_UNAVAILABLE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else + #define JSON_HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ + #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else + #define JSON_HEDLEY_WARN_UNUSED_RESULT + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(JSON_HEDLEY_SENTINEL) + #undef JSON_HEDLEY_SENTINEL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else + #define JSON_HEDLEY_SENTINEL(position) +#endif + +#if defined(JSON_HEDLEY_NO_RETURN) + #undef JSON_HEDLEY_NO_RETURN +#endif +#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NO_RETURN __noreturn +#elif \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #define JSON_HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) + #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#else + #define JSON_HEDLEY_NO_RETURN +#endif + +#if defined(JSON_HEDLEY_NO_ESCAPE) + #undef JSON_HEDLEY_NO_ESCAPE +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) + #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else + #define JSON_HEDLEY_NO_ESCAPE +#endif + +#if defined(JSON_HEDLEY_UNREACHABLE) + #undef JSON_HEDLEY_UNREACHABLE +#endif +#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) + #undef JSON_HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(JSON_HEDLEY_ASSUME) + #undef JSON_HEDLEY_ASSUME +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_ASSUME(expr) __assume(expr) +#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) + #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #if defined(__cplusplus) + #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) + #else + #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) + #endif +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(JSON_HEDLEY_ASSUME) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif +#if !defined(JSON_HEDLEY_ASSUME) + #if defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1))) + #else + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr) + #endif +#endif +#if defined(JSON_HEDLEY_UNREACHABLE) + #if \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value)) + #else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() + #endif +#else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif + +JSON_HEDLEY_DIAGNOSTIC_PUSH +#if JSON_HEDLEY_HAS_WARNING("-Wpedantic") + #pragma clang diagnostic ignored "-Wpedantic" +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) + #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) + #if defined(__clang__) + #pragma clang diagnostic ignored "-Wvariadic-macros" + #elif defined(JSON_HEDLEY_GCC_VERSION) + #pragma GCC diagnostic ignored "-Wvariadic-macros" + #endif +#endif +#if defined(JSON_HEDLEY_NON_NULL) + #undef JSON_HEDLEY_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else + #define JSON_HEDLEY_NON_NULL(...) +#endif +JSON_HEDLEY_DIAGNOSTIC_POP + +#if defined(JSON_HEDLEY_PRINTF_FORMAT) + #undef JSON_HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(JSON_HEDLEY_CONSTEXPR) + #undef JSON_HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) + #endif +#endif +#if !defined(JSON_HEDLEY_CONSTEXPR) + #define JSON_HEDLEY_CONSTEXPR +#endif + +#if defined(JSON_HEDLEY_PREDICT) + #undef JSON_HEDLEY_PREDICT +#endif +#if defined(JSON_HEDLEY_LIKELY) + #undef JSON_HEDLEY_LIKELY +#endif +#if defined(JSON_HEDLEY_UNLIKELY) + #undef JSON_HEDLEY_UNLIKELY +#endif +#if defined(JSON_HEDLEY_UNPREDICTABLE) + #undef JSON_HEDLEY_UNPREDICTABLE +#endif +#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) + #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) +# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(JSON_HEDLEY_UNPREDICTABLE) + #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(JSON_HEDLEY_MALLOC) + #undef JSON_HEDLEY_MALLOC +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_MALLOC __declspec(restrict) +#else + #define JSON_HEDLEY_MALLOC +#endif + +#if defined(JSON_HEDLEY_PURE) + #undef JSON_HEDLEY_PURE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PURE __attribute__((__pure__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_CONST) + #undef JSON_HEDLEY_CONST +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_CONST __attribute__((__const__)) +#elif \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_CONST _Pragma("no_side_effect") +#else + #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_RESTRICT) + #undef JSON_HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT restrict +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RESTRICT __restrict +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT _Restrict +#else + #define JSON_HEDLEY_RESTRICT +#endif + +#if defined(JSON_HEDLEY_INLINE) + #undef JSON_HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) + #define JSON_HEDLEY_INLINE inline +#elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) + #define JSON_HEDLEY_INLINE __inline__ +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_INLINE __inline +#else + #define JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_ALWAYS_INLINE) + #undef JSON_HEDLEY_ALWAYS_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_NEVER_INLINE) + #undef JSON_HEDLEY_NEVER_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#else + #define JSON_HEDLEY_NEVER_INLINE +#endif + +#if defined(JSON_HEDLEY_PRIVATE) + #undef JSON_HEDLEY_PRIVATE +#endif +#if defined(JSON_HEDLEY_PUBLIC) + #undef JSON_HEDLEY_PUBLIC +#endif +#if defined(JSON_HEDLEY_IMPORT) + #undef JSON_HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC __declspec(dllexport) +# define JSON_HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC +# endif +# define JSON_HEDLEY_IMPORT extern +#endif + +#if defined(JSON_HEDLEY_NO_THROW) + #undef JSON_HEDLEY_NO_THROW +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NO_THROW __declspec(nothrow) +#else + #define JSON_HEDLEY_NO_THROW +#endif + +#if defined(JSON_HEDLEY_FALL_THROUGH) + #undef JSON_HEDLEY_FALL_THROUGH +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ + #define JSON_HEDLEY_FALL_THROUGH __fallthrough +#else + #define JSON_HEDLEY_FALL_THROUGH +#endif + +#if defined(JSON_HEDLEY_RETURNS_NON_NULL) + #undef JSON_HEDLEY_RETURNS_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ + #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else + #define JSON_HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(JSON_HEDLEY_ARRAY_PARAM) + #undef JSON_HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_ARRAY_PARAM(name) (name) +#else + #define JSON_HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(JSON_HEDLEY_IS_CONSTANT) + #undef JSON_HEDLEY_IS_CONSTANT +#endif +#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) + #undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#endif +/* JSON_HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #undef JSON_HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +#endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(JSON_HEDLEY_SUNPRO_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION)) || \ + (JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +#endif +# elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + defined(JSON_HEDLEY_INTEL_VERSION) || \ + defined(JSON_HEDLEY_TINYC_VERSION) || \ + defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(JSON_HEDLEY_TI_CL2000_VERSION) || \ + defined(JSON_HEDLEY_TI_CL6X_VERSION) || \ + defined(JSON_HEDLEY_TI_CL7X_VERSION) || \ + defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ +((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) (0) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(JSON_HEDLEY_BEGIN_C_DECLS) + #undef JSON_HEDLEY_BEGIN_C_DECLS +#endif +#if defined(JSON_HEDLEY_END_C_DECLS) + #undef JSON_HEDLEY_END_C_DECLS +#endif +#if defined(JSON_HEDLEY_C_DECL) + #undef JSON_HEDLEY_C_DECL +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { + #define JSON_HEDLEY_END_C_DECLS } + #define JSON_HEDLEY_C_DECL extern "C" +#else + #define JSON_HEDLEY_BEGIN_C_DECLS + #define JSON_HEDLEY_END_C_DECLS + #define JSON_HEDLEY_C_DECL +#endif + +#if defined(JSON_HEDLEY_STATIC_ASSERT) + #undef JSON_HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (JSON_HEDLEY_HAS_FEATURE(c_static_assert) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(JSON_HEDLEY_NULL) + #undef JSON_HEDLEY_NULL +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) + #elif defined(NULL) + #define JSON_HEDLEY_NULL NULL + #else + #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) + #endif +#elif defined(NULL) + #define JSON_HEDLEY_NULL NULL +#else + #define JSON_HEDLEY_NULL ((void*) 0) +#endif + +#if defined(JSON_HEDLEY_MESSAGE) + #undef JSON_HEDLEY_MESSAGE +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_MESSAGE(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(message msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) +#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_WARNING) + #undef JSON_HEDLEY_WARNING +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_WARNING(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(clang warning msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_REQUIRE) + #undef JSON_HEDLEY_REQUIRE +#endif +#if defined(JSON_HEDLEY_REQUIRE_MSG) + #undef JSON_HEDLEY_REQUIRE_MSG +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") +# define JSON_HEDLEY_REQUIRE(expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define JSON_HEDLEY_REQUIRE(expr) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(JSON_HEDLEY_FLAGS) + #undef JSON_HEDLEY_FLAGS +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || JSON_HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) + #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else + #define JSON_HEDLEY_FLAGS +#endif + +#if defined(JSON_HEDLEY_FLAGS_CAST) + #undef JSON_HEDLEY_FLAGS_CAST +#endif +#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(JSON_HEDLEY_EMPTY_BASES) + #undef JSON_HEDLEY_EMPTY_BASES +#endif +#if \ + (JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else + #define JSON_HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) + #undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#endif +#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) + +#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) + #undef JSON_HEDLEY_CLANG_HAS_FEATURE +#endif +#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) + +#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) + #undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#endif +#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) + +#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_WARNING) + #undef JSON_HEDLEY_CLANG_HAS_WARNING +#endif +#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ + +// #include + + +#include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; +} // namespace detail +} // namespace nlohmann + + +// https://en.cppreference.com/w/cpp/experimental/is_detected +namespace nlohmann +{ +namespace detail +{ +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template class Op, class... Args> +using is_detected = typename detector::value_t; + +template class Op, class... Args> +struct is_detected_lazy : is_detected { }; + +template class Op, class... Args> +using detected_t = typename detector::type; + +template class Op, class... Args> +using detected_or = detector; + +template class Op, class... Args> +using detected_or_t = typename detected_or::type; + +template class Op, class... Args> +using is_detected_exact = std::is_same>; + +template class Op, class... Args> +using is_detected_convertible = + std::is_convertible, To>; +} // namespace detail +} // namespace nlohmann + + +// This file contains all internal macro definitions +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// C++ language standard detection +// if the user manually specified the used c++ version this is skipped +#if !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 + #endif + // the cpp 11 flag is always specified because it is the minimal required version + #define JSON_HAS_CPP_11 +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdocumentation" + #pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#endif + +// allow to disable exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// allow to override assert +#if !defined(JSON_ASSERT) + #include // assert + #define JSON_ASSERT(x) assert(x) +#endif + +// allow to access some private functions (needed by the test suite) +#if defined(JSON_TESTS_PRIVATE) + #define JSON_PRIVATE_UNLESS_TESTED public +#else + #define JSON_PRIVATE_UNLESS_TESTED private +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [&j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer, \ + class BinaryType> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// Macros to simplify conversion from/to types + +#define NLOHMANN_JSON_EXPAND( x ) x +#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME +#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \ + NLOHMANN_JSON_PASTE64, \ + NLOHMANN_JSON_PASTE63, \ + NLOHMANN_JSON_PASTE62, \ + NLOHMANN_JSON_PASTE61, \ + NLOHMANN_JSON_PASTE60, \ + NLOHMANN_JSON_PASTE59, \ + NLOHMANN_JSON_PASTE58, \ + NLOHMANN_JSON_PASTE57, \ + NLOHMANN_JSON_PASTE56, \ + NLOHMANN_JSON_PASTE55, \ + NLOHMANN_JSON_PASTE54, \ + NLOHMANN_JSON_PASTE53, \ + NLOHMANN_JSON_PASTE52, \ + NLOHMANN_JSON_PASTE51, \ + NLOHMANN_JSON_PASTE50, \ + NLOHMANN_JSON_PASTE49, \ + NLOHMANN_JSON_PASTE48, \ + NLOHMANN_JSON_PASTE47, \ + NLOHMANN_JSON_PASTE46, \ + NLOHMANN_JSON_PASTE45, \ + NLOHMANN_JSON_PASTE44, \ + NLOHMANN_JSON_PASTE43, \ + NLOHMANN_JSON_PASTE42, \ + NLOHMANN_JSON_PASTE41, \ + NLOHMANN_JSON_PASTE40, \ + NLOHMANN_JSON_PASTE39, \ + NLOHMANN_JSON_PASTE38, \ + NLOHMANN_JSON_PASTE37, \ + NLOHMANN_JSON_PASTE36, \ + NLOHMANN_JSON_PASTE35, \ + NLOHMANN_JSON_PASTE34, \ + NLOHMANN_JSON_PASTE33, \ + NLOHMANN_JSON_PASTE32, \ + NLOHMANN_JSON_PASTE31, \ + NLOHMANN_JSON_PASTE30, \ + NLOHMANN_JSON_PASTE29, \ + NLOHMANN_JSON_PASTE28, \ + NLOHMANN_JSON_PASTE27, \ + NLOHMANN_JSON_PASTE26, \ + NLOHMANN_JSON_PASTE25, \ + NLOHMANN_JSON_PASTE24, \ + NLOHMANN_JSON_PASTE23, \ + NLOHMANN_JSON_PASTE22, \ + NLOHMANN_JSON_PASTE21, \ + NLOHMANN_JSON_PASTE20, \ + NLOHMANN_JSON_PASTE19, \ + NLOHMANN_JSON_PASTE18, \ + NLOHMANN_JSON_PASTE17, \ + NLOHMANN_JSON_PASTE16, \ + NLOHMANN_JSON_PASTE15, \ + NLOHMANN_JSON_PASTE14, \ + NLOHMANN_JSON_PASTE13, \ + NLOHMANN_JSON_PASTE12, \ + NLOHMANN_JSON_PASTE11, \ + NLOHMANN_JSON_PASTE10, \ + NLOHMANN_JSON_PASTE9, \ + NLOHMANN_JSON_PASTE8, \ + NLOHMANN_JSON_PASTE7, \ + NLOHMANN_JSON_PASTE6, \ + NLOHMANN_JSON_PASTE5, \ + NLOHMANN_JSON_PASTE4, \ + NLOHMANN_JSON_PASTE3, \ + NLOHMANN_JSON_PASTE2, \ + NLOHMANN_JSON_PASTE1)(__VA_ARGS__)) +#define NLOHMANN_JSON_PASTE2(func, v1) func(v1) +#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2) +#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3) +#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4) +#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5) +#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6) +#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7) +#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8) +#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9) +#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10) +#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) +#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) +#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) +#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) +#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) +#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) +#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) +#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) +#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) +#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) +#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) +#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) +#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) +#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) +#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) +#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) +#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) +#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) +#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) +#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) +#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) +#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) +#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) +#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) +#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) +#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) +#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) +#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) +#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) +#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) +#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) +#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) +#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) +#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) +#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) +#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) +#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) +#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) +#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) +#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) +#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) +#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) +#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) +#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) +#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) +#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) +#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) +#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) +#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) +#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) +#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) +#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) +#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) + +#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; +#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + + +// inspired from https://stackoverflow.com/a/26745591 +// allows to call any std function as if (e.g. with begin): +// using std::begin; begin(x); +// +// it allows using the detected idiom to retrieve the return type +// of such an expression +#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \ + namespace detail { \ + using std::std_name; \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + } \ + \ + namespace detail2 { \ + struct std_name##_tag \ + { \ + }; \ + \ + template \ + std_name##_tag std_name(T&&...); \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + \ + template \ + struct would_call_std_##std_name \ + { \ + static constexpr auto const value = ::nlohmann::detail:: \ + is_detected_exact::value; \ + }; \ + } /* namespace detail2 */ \ + \ + template \ + struct would_call_std_##std_name : detail2::would_call_std_##std_name \ + { \ + } + +#ifndef JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_USE_IMPLICIT_CONVERSIONS 1 +#endif + +#if JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_EXPLICIT +#else + #define JSON_EXPLICIT explicit +#endif + +#ifndef JSON_DIAGNOSTICS + #define JSON_DIAGNOSTICS 0 +#endif + + +namespace nlohmann +{ +namespace detail +{ + +/*! +@brief replace all occurrences of a substring by another string + +@param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t +@param[in] f the substring to replace with @a t +@param[in] t the string to replace @a f + +@pre The search string @a f must not be empty. **This precondition is +enforced with an assertion.** + +@since version 2.0.0 +*/ +inline void replace_substring(std::string& s, const std::string& f, + const std::string& t) +{ + JSON_ASSERT(!f.empty()); + for (auto pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find next occurrence of f + {} +} + +/*! + * @brief string escaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to escape + * @return escaped string + * + * Note the order of escaping "~" to "~0" and "/" to "~1" is important. + */ +inline std::string escape(std::string s) +{ + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; +} + +/*! + * @brief string unescaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to unescape + * @return unescaped string + * + * Note the order of escaping "~1" to "/" and "~0" to "~" is important. + */ +static void unescape(std::string& s) +{ + replace_substring(s, "~1", "/"); + replace_substring(s, "~0", "~"); +} + +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // size_t + +namespace nlohmann +{ +namespace detail +{ +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +} // namespace nlohmann + +// #include + + +namespace nlohmann +{ +namespace detail +{ +//////////////// +// exceptions // +//////////////// + +/*! +@brief general exception of the @ref basic_json class + +This class is an extension of `std::exception` objects with a member @a id for +exception ids. It is used as the base class for all exceptions thrown by the +@ref basic_json class. This class can hence be used as "wildcard" to catch +exceptions. + +Subclasses: +- @ref parse_error for exceptions indicating a parse error +- @ref invalid_iterator for exceptions indicating errors with iterators +- @ref type_error for exceptions indicating executing a member function with + a wrong type +- @ref out_of_range for exceptions indicating access out of the defined range +- @ref other_error for exceptions indicating other library errors + +@internal +@note To have nothrow-copy-constructible exceptions, we internally use + `std::runtime_error` which can cope with arbitrary-length error messages. + Intermediate strings are built with static functions and then passed to + the actual constructor. +@endinternal + +@liveexample{The following code shows how arbitrary library exceptions can be +caught.,exception} + +@since version 3.0.0 +*/ +class exception : public std::exception +{ + public: + /// returns the explanatory string + const char* what() const noexcept override + { + return m.what(); + } + + /// the id of the exception + const int id; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes) + + protected: + JSON_HEDLEY_NON_NULL(3) + exception(int id_, const char* what_arg) : id(id_), m(what_arg) {} + + static std::string name(const std::string& ename, int id_) + { + return "[json.exception." + ename + "." + std::to_string(id_) + "] "; + } + + template + static std::string diagnostics(const BasicJsonType& leaf_element) + { +#if JSON_DIAGNOSTICS + std::vector tokens; + for (const auto* current = &leaf_element; current->m_parent != nullptr; current = current->m_parent) + { + switch (current->m_parent->type()) + { + case value_t::array: + { + for (std::size_t i = 0; i < current->m_parent->m_value.array->size(); ++i) + { + if (¤t->m_parent->m_value.array->operator[](i) == current) + { + tokens.emplace_back(std::to_string(i)); + break; + } + } + break; + } + + case value_t::object: + { + for (const auto& element : *current->m_parent->m_value.object) + { + if (&element.second == current) + { + tokens.emplace_back(element.first.c_str()); + break; + } + } + break; + } + + case value_t::null: // LCOV_EXCL_LINE + case value_t::string: // LCOV_EXCL_LINE + case value_t::boolean: // LCOV_EXCL_LINE + case value_t::number_integer: // LCOV_EXCL_LINE + case value_t::number_unsigned: // LCOV_EXCL_LINE + case value_t::number_float: // LCOV_EXCL_LINE + case value_t::binary: // LCOV_EXCL_LINE + case value_t::discarded: // LCOV_EXCL_LINE + default: // LCOV_EXCL_LINE + break; // LCOV_EXCL_LINE + } + } + + if (tokens.empty()) + { + return ""; + } + + return "(" + std::accumulate(tokens.rbegin(), tokens.rend(), std::string{}, + [](const std::string & a, const std::string & b) + { + return a + "/" + detail::escape(b); + }) + ") "; +#else + static_cast(leaf_element); + return ""; +#endif + } + + private: + /// an exception object as storage for error messages + std::runtime_error m; +}; + +/*! +@brief exception indicating a parse error + +This exception is thrown by the library when a parse error occurs. Parse errors +can occur during the deserialization of JSON text, CBOR, MessagePack, as well +as when using JSON Patch. + +Member @a byte holds the byte index of the last read character in the input +file. + +Exceptions have ids 1xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.parse_error.101 | parse error at 2: unexpected end of input; expected string literal | This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member @a byte indicates the error position. +json.exception.parse_error.102 | parse error at 14: missing or wrong low surrogate | JSON uses the `\uxxxx` format to describe Unicode characters. Code points above above 0xFFFF are split into two `\uxxxx` entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point. +json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid. +json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects. +json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors. +json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number without a leading `0`. +json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character. +json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences. +json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number. +json.exception.parse_error.110 | parse error at 1: cannot read 2 bytes from vector | When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read. +json.exception.parse_error.112 | parse error at 1: error reading CBOR; last byte: 0xF8 | Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read. +json.exception.parse_error.113 | parse error at 2: expected a CBOR string; last byte: 0x98 | While parsing a map key, a value that is not a string has been read. +json.exception.parse_error.114 | parse error: Unsupported BSON record type 0x0F | The parsing of the corresponding BSON record type is not implemented (yet). +json.exception.parse_error.115 | parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A | A UBJSON high-precision number could not be parsed. + +@note For an input with n bytes, 1 is the index of the first character and n+1 + is the index of the terminating null byte or the end of file. This also + holds true when reading a byte vector (CBOR or MessagePack). + +@liveexample{The following code shows how a `parse_error` exception can be +caught.,parse_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class parse_error : public exception +{ + public: + /*! + @brief create a parse error exception + @param[in] id_ the id of the exception + @param[in] pos the position where the error occurred (or with + chars_read_total=0 if the position cannot be + determined) + @param[in] what_arg the explanatory string + @return parse_error object + */ + template + static parse_error create(int id_, const position_t& pos, const std::string& what_arg, const BasicJsonType& context) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + position_string(pos) + ": " + exception::diagnostics(context) + what_arg; + return parse_error(id_, pos.chars_read_total, w.c_str()); + } + + template + static parse_error create(int id_, std::size_t byte_, const std::string& what_arg, const BasicJsonType& context) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + (byte_ != 0 ? (" at byte " + std::to_string(byte_)) : "") + + ": " + exception::diagnostics(context) + what_arg; + return parse_error(id_, byte_, w.c_str()); + } + + /*! + @brief byte index of the parse error + + The byte index of the last read character in the input file. + + @note For an input with n bytes, 1 is the index of the first character and + n+1 is the index of the terminating null byte or the end of file. + This also holds true when reading a byte vector (CBOR or MessagePack). + */ + const std::size_t byte; + + private: + parse_error(int id_, std::size_t byte_, const char* what_arg) + : exception(id_, what_arg), byte(byte_) {} + + static std::string position_string(const position_t& pos) + { + return " at line " + std::to_string(pos.lines_read + 1) + + ", column " + std::to_string(pos.chars_read_current_line); + } +}; + +/*! +@brief exception indicating errors with iterators + +This exception is thrown if iterators passed to a library function do not match +the expected semantics. + +Exceptions have ids 2xx. + +name / id | example message | description +----------------------------------- | --------------- | ------------------------- +json.exception.invalid_iterator.201 | iterators are not compatible | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.202 | iterator does not fit current value | In an erase or insert function, the passed iterator @a pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion. +json.exception.invalid_iterator.203 | iterators do not fit current value | Either iterator passed to function @ref erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from. +json.exception.invalid_iterator.204 | iterators out of range | When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (@ref begin(), @ref end()), because this is the only way the single stored value is expressed. All other ranges are invalid. +json.exception.invalid_iterator.205 | iterator out of range | When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the @ref begin() iterator, because it is the only way to address the stored value. All other iterators are invalid. +json.exception.invalid_iterator.206 | cannot construct with iterators from null | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range. +json.exception.invalid_iterator.207 | cannot use key() for non-object iterators | The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key. +json.exception.invalid_iterator.208 | cannot use operator[] for object iterators | The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.209 | cannot use offsets with object iterators | The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.210 | iterators do not fit | The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.211 | passed iterators may not belong to container | The iterator range passed to the insert function must not be a subrange of the container to insert to. +json.exception.invalid_iterator.212 | cannot compare iterators of different containers | When two iterators are compared, they must belong to the same container. +json.exception.invalid_iterator.213 | cannot compare order of object iterators | The order of object iterators cannot be compared, because JSON objects are unordered. +json.exception.invalid_iterator.214 | cannot get value | Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to @ref begin(). + +@liveexample{The following code shows how an `invalid_iterator` exception can be +caught.,invalid_iterator} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class invalid_iterator : public exception +{ + public: + template + static invalid_iterator create(int id_, const std::string& what_arg, const BasicJsonType& context) + { + std::string w = exception::name("invalid_iterator", id_) + exception::diagnostics(context) + what_arg; + return invalid_iterator(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + invalid_iterator(int id_, const char* what_arg) + : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating executing a member function with a wrong type + +This exception is thrown in case of a type error; that is, a library function is +executed on a JSON value whose type does not match the expected semantics. + +Exceptions have ids 3xx. + +name / id | example message | description +----------------------------- | --------------- | ------------------------- +json.exception.type_error.301 | cannot create object from initializer list | To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead. +json.exception.type_error.302 | type must be object, but is array | During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types. +json.exception.type_error.303 | incompatible ReferenceType for get_ref, actual type is object | To retrieve a reference to a value stored in a @ref basic_json object with @ref get_ref, the type of the reference must match the value type. For instance, for a JSON array, the @a ReferenceType must be @ref array_t &. +json.exception.type_error.304 | cannot use at() with string | The @ref at() member functions can only be executed for certain JSON types. +json.exception.type_error.305 | cannot use operator[] with string | The @ref operator[] member functions can only be executed for certain JSON types. +json.exception.type_error.306 | cannot use value() with string | The @ref value() member functions can only be executed for certain JSON types. +json.exception.type_error.307 | cannot use erase() with string | The @ref erase() member functions can only be executed for certain JSON types. +json.exception.type_error.308 | cannot use push_back() with string | The @ref push_back() and @ref operator+= member functions can only be executed for certain JSON types. +json.exception.type_error.309 | cannot use insert() with | The @ref insert() member functions can only be executed for certain JSON types. +json.exception.type_error.310 | cannot use swap() with number | The @ref swap() member functions can only be executed for certain JSON types. +json.exception.type_error.311 | cannot use emplace_back() with string | The @ref emplace_back() member function can only be executed for certain JSON types. +json.exception.type_error.312 | cannot use update() with string | The @ref update() member functions can only be executed for certain JSON types. +json.exception.type_error.313 | invalid value to unflatten | The @ref unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined. +json.exception.type_error.314 | only objects can be unflattened | The @ref unflatten function only works for an object whose keys are JSON Pointers. +json.exception.type_error.315 | values in object must be primitive | The @ref unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive. +json.exception.type_error.316 | invalid UTF-8 byte at index 10: 0x7E | The @ref dump function only works with UTF-8 encoded strings; that is, if you assign a `std::string` to a JSON value, make sure it is UTF-8 encoded. | +json.exception.type_error.317 | JSON value cannot be serialized to requested format | The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw `true` or `null` JSON object cannot be serialized to BSON) | + +@liveexample{The following code shows how a `type_error` exception can be +caught.,type_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class type_error : public exception +{ + public: + template + static type_error create(int id_, const std::string& what_arg, const BasicJsonType& context) + { + std::string w = exception::name("type_error", id_) + exception::diagnostics(context) + what_arg; + return type_error(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + type_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating access out of the defined range + +This exception is thrown in case a library function is called on an input +parameter that exceeds the expected range, for instance in case of array +indices or nonexisting object keys. + +Exceptions have ids 4xx. + +name / id | example message | description +------------------------------- | --------------- | ------------------------- +json.exception.out_of_range.401 | array index 3 is out of range | The provided array index @a i is larger than @a size-1. +json.exception.out_of_range.402 | array index '-' (3) is out of range | The special array index `-` in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it. +json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object. +json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved. +json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value. +json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF. +json.exception.out_of_range.407 | number overflow serializing '9223372036854775808' | UBJSON and BSON only support integer numbers up to 9223372036854775807. (until version 3.8.0) | +json.exception.out_of_range.408 | excessive array size: 8658170730974374167 | The size (following `#`) of an UBJSON array or object exceeds the maximal capacity. | +json.exception.out_of_range.409 | BSON key cannot contain code point U+0000 (at byte 2) | Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string | + +@liveexample{The following code shows how an `out_of_range` exception can be +caught.,out_of_range} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class out_of_range : public exception +{ + public: + template + static out_of_range create(int id_, const std::string& what_arg, const BasicJsonType& context) + { + std::string w = exception::name("out_of_range", id_) + exception::diagnostics(context) + what_arg; + return out_of_range(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + out_of_range(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating other library errors + +This exception is thrown in case of errors that cannot be classified with the +other exception types. + +Exceptions have ids 5xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.other_error.501 | unsuccessful: {"op":"test","path":"/baz", "value":"bar"} | A JSON Patch operation 'test' failed. The unsuccessful operation is also printed. + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range + +@liveexample{The following code shows how an `other_error` exception can be +caught.,other_error} + +@since version 3.0.0 +*/ +class other_error : public exception +{ + public: + template + static other_error create(int id_, const std::string& what_arg, const BasicJsonType& context) + { + std::string w = exception::name("other_error", id_) + exception::diagnostics(context) + what_arg; + return other_error(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + other_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type +#include // index_sequence, make_index_sequence, index_sequence_for + +// #include + + +namespace nlohmann +{ +namespace detail +{ + +template +using uncvref_t = typename std::remove_cv::type>::type; + +#ifdef JSON_HAS_CPP_14 + +// the following utilities are natively available in C++14 +using std::enable_if_t; +using std::index_sequence; +using std::make_index_sequence; +using std::index_sequence_for; + +#else + +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +// The following code is taken from https://github.com/abseil/abseil-cpp/blob/10cb35e459f5ecca5b2ff107635da0bfa41011b4/absl/utility/utility.h +// which is part of Google Abseil (https://github.com/abseil/abseil-cpp), licensed under the Apache License 2.0. + +//// START OF CODE FROM GOOGLE ABSEIL + +// integer_sequence +// +// Class template representing a compile-time integer sequence. An instantiation +// of `integer_sequence` has a sequence of integers encoded in its +// type through its template arguments (which is a common need when +// working with C++11 variadic templates). `absl::integer_sequence` is designed +// to be a drop-in replacement for C++14's `std::integer_sequence`. +// +// Example: +// +// template< class T, T... Ints > +// void user_function(integer_sequence); +// +// int main() +// { +// // user_function's `T` will be deduced to `int` and `Ints...` +// // will be deduced to `0, 1, 2, 3, 4`. +// user_function(make_integer_sequence()); +// } +template +struct integer_sequence +{ + using value_type = T; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +// index_sequence +// +// A helper template for an `integer_sequence` of `size_t`, +// `absl::index_sequence` is designed to be a drop-in replacement for C++14's +// `std::index_sequence`. +template +using index_sequence = integer_sequence; + +namespace utility_internal +{ + +template +struct Extend; + +// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. +template +struct Extend, SeqSize, 0> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)... >; +}; + +template +struct Extend, SeqSize, 1> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)..., 2 * SeqSize >; +}; + +// Recursion helper for 'make_integer_sequence'. +// 'Gen::type' is an alias for 'integer_sequence'. +template +struct Gen +{ + using type = + typename Extend < typename Gen < T, N / 2 >::type, N / 2, N % 2 >::type; +}; + +template +struct Gen +{ + using type = integer_sequence; +}; + +} // namespace utility_internal + +// Compile-time sequences of integers + +// make_integer_sequence +// +// This template alias is equivalent to +// `integer_sequence`, and is designed to be a drop-in +// replacement for C++14's `std::make_integer_sequence`. +template +using make_integer_sequence = typename utility_internal::Gen::type; + +// make_index_sequence +// +// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, +// and is designed to be a drop-in replacement for C++14's +// `std::make_index_sequence`. +template +using make_index_sequence = make_integer_sequence; + +// index_sequence_for +// +// Converts a typename pack into an index sequence of the same length, and +// is designed to be a drop-in replacement for C++14's +// `std::index_sequence_for()` +template +using index_sequence_for = make_index_sequence; + +//// END OF CODE FROM GOOGLE ABSEIL + +#endif + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static constexpr T value{}; +}; + +template +constexpr T static_const::value; + +} // namespace detail +} // namespace nlohmann + +// #include + + +namespace nlohmann +{ +namespace detail +{ +// dispatching helper struct +template struct identity_tag {}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // numeric_limits +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval +#include // tuple + +// #include + + +// #include + + +#include // random_access_iterator_tag + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +// #include + + +namespace nlohmann +{ +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); +} // namespace nlohmann + +// #include + + +// #include + + +namespace nlohmann +{ +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); +} // namespace nlohmann + +// #include + +// #include + +// #include +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ +#define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + +#include // int64_t, uint64_t +#include // map +#include // allocator +#include // string +#include // vector + +/*! +@brief namespace for Niels Lohmann +@see https://github.com/nlohmann +@since version 1.0.0 +*/ +namespace nlohmann +{ +/*! +@brief default JSONSerializer template argument + +This serializer ignores the template arguments and uses ADL +([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) +for serialization. +*/ +template +struct adl_serializer; + +template class ObjectType = + std::map, + template class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template class AllocatorType = std::allocator, + template class JSONSerializer = + adl_serializer, + class BinaryType = std::vector> +class basic_json; + +/*! +@brief JSON Pointer + +A JSON pointer defines a string syntax for identifying a specific value +within a JSON document. It can be used with functions `at` and +`operator[]`. Furthermore, JSON pointers are the base for JSON patches. + +@sa [RFC 6901](https://tools.ietf.org/html/rfc6901) + +@since version 2.0.0 +*/ +template +class json_pointer; + +/*! +@brief default JSON class + +This type is the default specialization of the @ref basic_json class which +uses the standard template types. + +@since version 1.0.0 +*/ +using json = basic_json<>; + +template +struct ordered_map; + +/*! +@brief ordered JSON class + +This type preserves the insertion order of object keys. + +@since version 3.9.0 +*/ +using ordered_json = basic_json; + +} // namespace nlohmann + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +namespace nlohmann +{ +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e. those of the form: decltype(T::member_function(std::declval()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g. to_json(BasicJsonType&, const T&)) + +template struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json : std::true_type {}; + +////////////////////// +// json_ref helpers // +////////////////////// + +template +class json_ref; + +template +struct is_json_ref : std::false_type {}; + +template +struct is_json_ref> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template +using mapped_type_t = typename T::mapped_type; + +template +using key_type_t = typename T::key_type; + +template +using value_type_t = typename T::value_type; + +template +using difference_type_t = typename T::difference_type; + +template +using pointer_t = typename T::pointer; + +template +using reference_t = typename T::reference; + +template +using iterator_category_t = typename T::iterator_category; + +template +using to_json_function = decltype(T::to_json(std::declval()...)); + +template +using from_json_function = decltype(T::from_json(std::declval()...)); + +template +using get_template_function = decltype(std::declval().template get()); + +// trait checking if JSONSerializer::from_json(json const&, udt&) exists +template +struct has_from_json : std::false_type {}; + +// trait checking if j.get is valid +// use this trait instead of std::is_constructible or std::is_convertible, +// both rely on, or make use of implicit conversions, and thus fail when T +// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958) +template +struct is_getable +{ + static constexpr bool value = is_detected::value; +}; + +template +struct has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if JSONSerializer::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template +struct has_non_default_from_json : std::false_type {}; + +template +struct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if BasicJsonType::json_serializer::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template +struct has_to_json : std::false_type {}; + +template +struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + + +/////////////////// +// is_ functions // +/////////////////// + +// https://en.cppreference.com/w/cpp/types/conjunction +template struct conjunction : std::true_type { }; +template struct conjunction : B1 { }; +template +struct conjunction +: std::conditional, B1>::type {}; + +// https://en.cppreference.com/w/cpp/types/negation +template struct negation : std::integral_constant < bool, !B::value > { }; + +// Reimplementation of is_constructible and is_default_constructible, due to them being broken for +// std::pair and std::tuple until LWG 2367 fix (see https://cplusplus.github.io/LWG/lwg-defects.html#2367). +// This causes compile errors in e.g. clang 3.5 or gcc 4.9. +template +struct is_default_constructible : std::is_default_constructible {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + + +template +struct is_constructible : std::is_constructible {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + + +template +struct is_iterator_traits : std::false_type {}; + +template +struct is_iterator_traits> +{ + private: + using traits = iterator_traits; + + public: + static constexpr auto value = + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value; +}; + +template +struct is_range +{ + private: + using t_ref = typename std::add_lvalue_reference::type; + + using iterator = detected_t; + using sentinel = detected_t; + + // to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator + // and https://en.cppreference.com/w/cpp/iterator/sentinel_for + // but reimplementing these would be too much work, as a lot of other concepts are used underneath + static constexpr auto is_iterator_begin = + is_iterator_traits>::value; + + public: + static constexpr bool value = !std::is_same::value && !std::is_same::value && is_iterator_begin; +}; + +template +using iterator_t = enable_if_t::value, result_of_begin())>>; + +template +using range_value_t = value_type_t>>; + +// The following implementation of is_complete_type is taken from +// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/ +// and is written by Xiang Fan who agreed to using it in this library. + +template +struct is_complete_type : std::false_type {}; + +template +struct is_complete_type : std::true_type {}; + +template +struct is_compatible_object_type_impl : std::false_type {}; + +template +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + is_constructible::value && + is_constructible::value; +}; + +template +struct is_compatible_object_type + : is_compatible_object_type_impl {}; + +template +struct is_constructible_object_type_impl : std::false_type {}; + +template +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (is_default_constructible::value && + (std::is_move_assignable::value || + std::is_copy_assignable::value) && + (is_constructible::value && + std::is_same < + typename object_t::mapped_type, + typename ConstructibleObjectType::mapped_type >::value)) || + (has_from_json::value || + has_non_default_from_json < + BasicJsonType, + typename ConstructibleObjectType::mapped_type >::value); +}; + +template +struct is_constructible_object_type + : is_constructible_object_type_impl {}; + +template +struct is_compatible_string_type +{ + static constexpr auto value = + is_constructible::value; +}; + +template +struct is_constructible_string_type +{ + static constexpr auto value = + is_constructible::value; +}; + +template +struct is_compatible_array_type_impl : std::false_type {}; + +template +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t < + is_detected::value&& + is_iterator_traits>>::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 + !std::is_same>::value >> +{ + static constexpr bool value = + is_constructible>::value; +}; + +template +struct is_compatible_array_type + : is_compatible_array_type_impl {}; + +template +struct is_constructible_array_type_impl : std::false_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t::value >> + : std::true_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t < !std::is_same::value&& + !is_compatible_string_type::value&& + is_default_constructible::value&& +(std::is_move_assignable::value || + std::is_copy_assignable::value)&& +is_detected::value&& +is_iterator_traits>>::value&& +is_detected::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 +!std::is_same>::value&& + is_complete_type < + detected_t>::value >> +{ + using value_type = range_value_t; + + static constexpr bool value = + std::is_same::value || + has_from_json::value || + has_non_default_from_json < + BasicJsonType, + value_type >::value; +}; + +template +struct is_constructible_array_type + : is_constructible_array_type_impl {}; + +template +struct is_compatible_integer_type_impl : std::false_type {}; + +template +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t < std::is_integral::value&& + std::is_integral::value&& + !std::is_same::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits; + using CompatibleLimits = std::numeric_limits; + + static constexpr auto value = + is_constructible::value && + CompatibleLimits::is_integer && + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template +struct is_compatible_integer_type + : is_compatible_integer_type_impl {}; + +template +struct is_compatible_type_impl: std::false_type {}; + +template +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t::value >> +{ + static constexpr bool value = + has_to_json::value; +}; + +template +struct is_compatible_type + : is_compatible_type_impl {}; + +template +struct is_constructible_tuple : std::false_type {}; + +template +struct is_constructible_tuple> : conjunction...> {}; + +// a naive helper to check if a type is an ordered_map (exploits the fact that +// ordered_map inherits capacity() from std::vector) +template +struct is_ordered_map +{ + using one = char; + + struct two + { + char x[2]; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + }; + + template static one test( decltype(&C::capacity) ) ; + template static two test(...); + + enum { value = sizeof(test(nullptr)) == sizeof(char) }; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) +}; + +// to avoid useless casts (see https://github.com/nlohmann/json/issues/2893#issuecomment-889152324) +template < typename T, typename U, enable_if_t < !std::is_same::value, int > = 0 > +T conditional_static_cast(U value) +{ + return static_cast(value); +} + +template::value, int> = 0> +T conditional_static_cast(U value) +{ + return value; +} + +} // namespace detail +} // namespace nlohmann + +// #include + + +#ifdef JSON_HAS_CPP_17 + #include +#endif + +namespace nlohmann +{ +namespace detail +{ +template +void from_json(const BasicJsonType& j, typename std::nullptr_t& n) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_null())) + { + JSON_THROW(type_error::create(302, "type must be null, but is " + std::string(j.type_name()), j)); + } + n = nullptr; +} + +// overloads for basic_json template parameters +template < typename BasicJsonType, typename ArithmeticType, + enable_if_t < std::is_arithmetic::value&& + !std::is_same::value, + int > = 0 > +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast(j)) + { + case value_t::number_unsigned: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_integer: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_float: + { + val = static_cast(*j.template get_ptr()); + break; + } + + case value_t::null: + case value_t::object: + case value_t::array: + case value_t::string: + case value_t::boolean: + case value_t::binary: + case value_t::discarded: + default: + JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()), j)); + } +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_boolean())) + { + JSON_THROW(type_error::create(302, "type must be boolean, but is " + std::string(j.type_name()), j)); + } + b = *j.template get_ptr(); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()), j)); + } + s = *j.template get_ptr(); +} + +template < + typename BasicJsonType, typename ConstructibleStringType, + enable_if_t < + is_constructible_string_type::value&& + !std::is_same::value, + int > = 0 > +void from_json(const BasicJsonType& j, ConstructibleStringType& s) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()), j)); + } + + s = *j.template get_ptr(); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) +{ + get_arithmetic_value(j, val); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) +{ + get_arithmetic_value(j, val); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) +{ + get_arithmetic_value(j, val); +} + +template::value, int> = 0> +void from_json(const BasicJsonType& j, EnumType& e) +{ + typename std::underlying_type::type val; + get_arithmetic_value(j, val); + e = static_cast(val); +} + +// forward_list doesn't have an insert method +template::value, int> = 0> +void from_json(const BasicJsonType& j, std::forward_list& l) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + l.clear(); + std::transform(j.rbegin(), j.rend(), + std::front_inserter(l), [](const BasicJsonType & i) + { + return i.template get(); + }); +} + +// valarray doesn't have an insert method +template::value, int> = 0> +void from_json(const BasicJsonType& j, std::valarray& l) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + l.resize(j.size()); + std::transform(j.begin(), j.end(), std::begin(l), + [](const BasicJsonType & elem) + { + return elem.template get(); + }); +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i = 0; i < N; ++i) + { + arr[i] = j.at(i).template get(); + } +} + +template +void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) +{ + arr = *j.template get_ptr(); +} + +template +auto from_json_array_impl(const BasicJsonType& j, std::array& arr, + priority_tag<2> /*unused*/) +-> decltype(j.template get(), void()) +{ + for (std::size_t i = 0; i < N; ++i) + { + arr[i] = j.at(i).template get(); + } +} + +template::value, + int> = 0> +auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, priority_tag<1> /*unused*/) +-> decltype( + arr.reserve(std::declval()), + j.template get(), + void()) +{ + using std::end; + + ConstructibleArrayType ret; + ret.reserve(j.size()); + std::transform(j.begin(), j.end(), + std::inserter(ret, end(ret)), [](const BasicJsonType & i) + { + // get() returns *this, this won't call a from_json + // method when value_type is BasicJsonType + return i.template get(); + }); + arr = std::move(ret); +} + +template::value, + int> = 0> +void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, + priority_tag<0> /*unused*/) +{ + using std::end; + + ConstructibleArrayType ret; + std::transform( + j.begin(), j.end(), std::inserter(ret, end(ret)), + [](const BasicJsonType & i) + { + // get() returns *this, this won't call a from_json + // method when value_type is BasicJsonType + return i.template get(); + }); + arr = std::move(ret); +} + +template < typename BasicJsonType, typename ConstructibleArrayType, + enable_if_t < + is_constructible_array_type::value&& + !is_constructible_object_type::value&& + !is_constructible_string_type::value&& + !std::is_same::value&& + !is_basic_json::value, + int > = 0 > +auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr) +-> decltype(from_json_array_impl(j, arr, priority_tag<3> {}), +j.template get(), +void()) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + + from_json_array_impl(j, arr, priority_tag<3> {}); +} + +template < typename BasicJsonType, typename T, std::size_t... Idx > +std::array from_json_inplace_array_impl(BasicJsonType&& j, + identity_tag> /*unused*/, index_sequence /*unused*/) +{ + return { { std::forward(j).at(Idx).template get()... } }; +} + +template < typename BasicJsonType, typename T, std::size_t N > +auto from_json(BasicJsonType&& j, identity_tag> tag) +-> decltype(from_json_inplace_array_impl(std::forward(j), tag, make_index_sequence {})) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + + return from_json_inplace_array_impl(std::forward(j), tag, make_index_sequence {}); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::binary_t& bin) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_binary())) + { + JSON_THROW(type_error::create(302, "type must be binary, but is " + std::string(j.type_name()), j)); + } + + bin = *j.template get_ptr(); +} + +template::value, int> = 0> +void from_json(const BasicJsonType& j, ConstructibleObjectType& obj) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_object())) + { + JSON_THROW(type_error::create(302, "type must be object, but is " + std::string(j.type_name()), j)); + } + + ConstructibleObjectType ret; + const auto* inner_object = j.template get_ptr(); + using value_type = typename ConstructibleObjectType::value_type; + std::transform( + inner_object->begin(), inner_object->end(), + std::inserter(ret, ret.begin()), + [](typename BasicJsonType::object_t::value_type const & p) + { + return value_type(p.first, p.second.template get()); + }); + obj = std::move(ret); +} + +// overload for arithmetic types, not chosen for basic_json template arguments +// (BooleanType, etc..); note: Is it really necessary to provide explicit +// overloads for boolean_t etc. in case of a custom BooleanType which is not +// an arithmetic type? +template < typename BasicJsonType, typename ArithmeticType, + enable_if_t < + std::is_arithmetic::value&& + !std::is_same::value&& + !std::is_same::value&& + !std::is_same::value&& + !std::is_same::value, + int > = 0 > +void from_json(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast(j)) + { + case value_t::number_unsigned: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_integer: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_float: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::boolean: + { + val = static_cast(*j.template get_ptr()); + break; + } + + case value_t::null: + case value_t::object: + case value_t::array: + case value_t::string: + case value_t::binary: + case value_t::discarded: + default: + JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()), j)); + } +} + +template +std::tuple from_json_tuple_impl_base(BasicJsonType&& j, index_sequence /*unused*/) +{ + return std::make_tuple(std::forward(j).at(Idx).template get()...); +} + +template < typename BasicJsonType, class A1, class A2 > +std::pair from_json_tuple_impl(BasicJsonType&& j, identity_tag> /*unused*/, priority_tag<0> /*unused*/) +{ + return {std::forward(j).at(0).template get(), + std::forward(j).at(1).template get()}; +} + +template +void from_json_tuple_impl(BasicJsonType&& j, std::pair& p, priority_tag<1> /*unused*/) +{ + p = from_json_tuple_impl(std::forward(j), identity_tag> {}, priority_tag<0> {}); +} + +template +std::tuple from_json_tuple_impl(BasicJsonType&& j, identity_tag> /*unused*/, priority_tag<2> /*unused*/) +{ + return from_json_tuple_impl_base(std::forward(j), index_sequence_for {}); +} + +template +void from_json_tuple_impl(BasicJsonType&& j, std::tuple& t, priority_tag<3> /*unused*/) +{ + t = from_json_tuple_impl_base(std::forward(j), index_sequence_for {}); +} + +template +auto from_json(BasicJsonType&& j, TupleRelated&& t) +-> decltype(from_json_tuple_impl(std::forward(j), std::forward(t), priority_tag<3> {})) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + + return from_json_tuple_impl(std::forward(j), std::forward(t), priority_tag<3> {}); +} + +template < typename BasicJsonType, typename Key, typename Value, typename Compare, typename Allocator, + typename = enable_if_t < !std::is_constructible < + typename BasicJsonType::string_t, Key >::value >> +void from_json(const BasicJsonType& j, std::map& m) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + m.clear(); + for (const auto& p : j) + { + if (JSON_HEDLEY_UNLIKELY(!p.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(p.type_name()), j)); + } + m.emplace(p.at(0).template get(), p.at(1).template get()); + } +} + +template < typename BasicJsonType, typename Key, typename Value, typename Hash, typename KeyEqual, typename Allocator, + typename = enable_if_t < !std::is_constructible < + typename BasicJsonType::string_t, Key >::value >> +void from_json(const BasicJsonType& j, std::unordered_map& m) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()), j)); + } + m.clear(); + for (const auto& p : j) + { + if (JSON_HEDLEY_UNLIKELY(!p.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(p.type_name()), j)); + } + m.emplace(p.at(0).template get(), p.at(1).template get()); + } +} + +#ifdef JSON_HAS_CPP_17 +template +void from_json(const BasicJsonType& j, std::filesystem::path& p) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()), j)); + } + p = *j.template get_ptr(); +} +#endif + +struct from_json_fn +{ + template + auto operator()(const BasicJsonType& j, T&& val) const + noexcept(noexcept(from_json(j, std::forward(val)))) + -> decltype(from_json(j, std::forward(val))) + { + return from_json(j, std::forward(val)); + } +}; +} // namespace detail + +/// namespace to hold default `from_json` function +/// to see why this is required: +/// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html +namespace // NOLINT(cert-dcl59-cpp,fuchsia-header-anon-namespaces,google-build-namespaces) +{ +constexpr const auto& from_json = detail::static_const::value; // NOLINT(misc-definitions-in-headers) +} // namespace +} // namespace nlohmann + +// #include + + +#include // copy +#include // begin, end +#include // string +#include // tuple, get +#include // is_same, is_constructible, is_floating_point, is_enum, underlying_type +#include // move, forward, declval, pair +#include // valarray +#include // vector + +// #include + +// #include + + +#include // size_t +#include // input_iterator_tag +#include // string, to_string +#include // tuple_size, get, tuple_element +#include // move + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +void int_to_string( string_type& target, std::size_t value ) +{ + // For ADL + using std::to_string; + target = to_string(value); +} +template class iteration_proxy_value +{ + public: + using difference_type = std::ptrdiff_t; + using value_type = iteration_proxy_value; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::input_iterator_tag; + using string_type = typename std::remove_cv< typename std::remove_reference().key() ) >::type >::type; + + private: + /// the iterator + IteratorType anchor; + /// an index for arrays (used to create key names) + std::size_t array_index = 0; + /// last stringified array index + mutable std::size_t array_index_last = 0; + /// a string representation of the array index + mutable string_type array_index_str = "0"; + /// an empty string (to return a reference for primitive values) + const string_type empty_str{}; + + public: + explicit iteration_proxy_value(IteratorType it) noexcept + : anchor(std::move(it)) + {} + + /// dereference operator (needed for range-based for) + iteration_proxy_value& operator*() + { + return *this; + } + + /// increment operator (needed for range-based for) + iteration_proxy_value& operator++() + { + ++anchor; + ++array_index; + + return *this; + } + + /// equality operator (needed for InputIterator) + bool operator==(const iteration_proxy_value& o) const + { + return anchor == o.anchor; + } + + /// inequality operator (needed for range-based for) + bool operator!=(const iteration_proxy_value& o) const + { + return anchor != o.anchor; + } + + /// return key of the iterator + const string_type& key() const + { + JSON_ASSERT(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: + { + if (array_index != array_index_last) + { + int_to_string( array_index_str, array_index ); + array_index_last = array_index; + } + return array_index_str; + } + + // use key from the object + case value_t::object: + return anchor.key(); + + // use an empty key for all primitive types + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + return empty_str; + } + } + + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } +}; + +/// proxy class for the items() function +template class iteration_proxy +{ + private: + /// the container to iterate + typename IteratorType::reference container; + + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) noexcept + : container(cont) {} + + /// return iterator begin (needed for range-based for) + iteration_proxy_value begin() noexcept + { + return iteration_proxy_value(container.begin()); + } + + /// return iterator end (needed for range-based for) + iteration_proxy_value end() noexcept + { + return iteration_proxy_value(container.end()); + } +}; +// Structured Bindings Support +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +template = 0> +auto get(const nlohmann::detail::iteration_proxy_value& i) -> decltype(i.key()) +{ + return i.key(); +} +// Structured Bindings Support +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +template = 0> +auto get(const nlohmann::detail::iteration_proxy_value& i) -> decltype(i.value()) +{ + return i.value(); +} +} // namespace detail +} // namespace nlohmann + +// The Addition to the STD Namespace is required to add +// Structured Bindings Support to the iteration_proxy_value class +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +namespace std +{ +#if defined(__clang__) + // Fix: https://github.com/nlohmann/json/issues/1401 + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmismatched-tags" +#endif +template +class tuple_size<::nlohmann::detail::iteration_proxy_value> + : public std::integral_constant {}; + +template +class tuple_element> +{ + public: + using type = decltype( + get(std::declval < + ::nlohmann::detail::iteration_proxy_value> ())); +}; +#if defined(__clang__) + #pragma clang diagnostic pop +#endif +} // namespace std + +// #include + +// #include + +// #include + + +#ifdef JSON_HAS_CPP_17 + #include +#endif + +namespace nlohmann +{ +namespace detail +{ +////////////////// +// constructors // +////////////////// + +/* + * Note all external_constructor<>::construct functions need to call + * j.m_value.destroy(j.m_type) to avoid a memory leak in case j contains an + * allocated value (e.g., a string). See bug issue + * https://github.com/nlohmann/json/issues/2865 for more information. + */ + +template struct external_constructor; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::string_t&& s) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::string; + j.m_value = std::move(s); + j.assert_invariant(); + } + + template < typename BasicJsonType, typename CompatibleStringType, + enable_if_t < !std::is_same::value, + int > = 0 > + static void construct(BasicJsonType& j, const CompatibleStringType& str) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::string; + j.m_value.string = j.template create(str); + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::binary_t& b) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::binary; + j.m_value = typename BasicJsonType::binary_t(b); + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::binary_t&& b) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::binary; + j.m_value = typename BasicJsonType::binary_t(std::move(b)); + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::number_float; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::array; + j.m_value = arr; + j.set_parents(); + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::array_t&& arr) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::array; + j.m_value = std::move(arr); + j.set_parents(); + j.assert_invariant(); + } + + template < typename BasicJsonType, typename CompatibleArrayType, + enable_if_t < !std::is_same::value, + int > = 0 > + static void construct(BasicJsonType& j, const CompatibleArrayType& arr) + { + using std::begin; + using std::end; + + j.m_value.destroy(j.m_type); + j.m_type = value_t::array; + j.m_value.array = j.template create(begin(arr), end(arr)); + j.set_parents(); + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, const std::vector& arr) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::array; + j.m_value = value_t::array; + j.m_value.array->reserve(arr.size()); + for (const bool x : arr) + { + j.m_value.array->push_back(x); + j.set_parent(j.m_value.array->back()); + } + j.assert_invariant(); + } + + template::value, int> = 0> + static void construct(BasicJsonType& j, const std::valarray& arr) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::array; + j.m_value = value_t::array; + j.m_value.array->resize(arr.size()); + if (arr.size() > 0) + { + std::copy(std::begin(arr), std::end(arr), j.m_value.array->begin()); + } + j.set_parents(); + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::object; + j.m_value = obj; + j.set_parents(); + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::object_t&& obj) + { + j.m_value.destroy(j.m_type); + j.m_type = value_t::object; + j.m_value = std::move(obj); + j.set_parents(); + j.assert_invariant(); + } + + template < typename BasicJsonType, typename CompatibleObjectType, + enable_if_t < !std::is_same::value, int > = 0 > + static void construct(BasicJsonType& j, const CompatibleObjectType& obj) + { + using std::begin; + using std::end; + + j.m_value.destroy(j.m_type); + j.m_type = value_t::object; + j.m_value.object = j.template create(begin(obj), end(obj)); + j.set_parents(); + j.assert_invariant(); + } +}; + +///////////// +// to_json // +///////////// + +template::value, int> = 0> +void to_json(BasicJsonType& j, T b) noexcept +{ + external_constructor::construct(j, b); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, const CompatibleString& s) +{ + external_constructor::construct(j, s); +} + +template +void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s) +{ + external_constructor::construct(j, std::move(s)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, FloatType val) noexcept +{ + external_constructor::construct(j, static_cast(val)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept +{ + external_constructor::construct(j, static_cast(val)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept +{ + external_constructor::construct(j, static_cast(val)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, EnumType e) noexcept +{ + using underlying_type = typename std::underlying_type::type; + external_constructor::construct(j, static_cast(e)); +} + +template +void to_json(BasicJsonType& j, const std::vector& e) +{ + external_constructor::construct(j, e); +} + +template < typename BasicJsonType, typename CompatibleArrayType, + enable_if_t < is_compatible_array_type::value&& + !is_compatible_object_type::value&& + !is_compatible_string_type::value&& + !std::is_same::value&& + !is_basic_json::value, + int > = 0 > +void to_json(BasicJsonType& j, const CompatibleArrayType& arr) +{ + external_constructor::construct(j, arr); +} + +template +void to_json(BasicJsonType& j, const typename BasicJsonType::binary_t& bin) +{ + external_constructor::construct(j, bin); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, const std::valarray& arr) +{ + external_constructor::construct(j, std::move(arr)); +} + +template +void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr) +{ + external_constructor::construct(j, std::move(arr)); +} + +template < typename BasicJsonType, typename CompatibleObjectType, + enable_if_t < is_compatible_object_type::value&& !is_basic_json::value, int > = 0 > +void to_json(BasicJsonType& j, const CompatibleObjectType& obj) +{ + external_constructor::construct(j, obj); +} + +template +void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj) +{ + external_constructor::construct(j, std::move(obj)); +} + +template < + typename BasicJsonType, typename T, std::size_t N, + enable_if_t < !std::is_constructible::value, // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + int > = 0 > +void to_json(BasicJsonType& j, const T(&arr)[N]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +{ + external_constructor::construct(j, arr); +} + +template < typename BasicJsonType, typename T1, typename T2, enable_if_t < std::is_constructible::value&& std::is_constructible::value, int > = 0 > +void to_json(BasicJsonType& j, const std::pair& p) +{ + j = { p.first, p.second }; +} + +// for https://github.com/nlohmann/json/pull/1134 +template>::value, int> = 0> +void to_json(BasicJsonType& j, const T& b) +{ + j = { {b.key(), b.value()} }; +} + +template +void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence /*unused*/) +{ + j = { std::get(t)... }; +} + +template::value, int > = 0> +void to_json(BasicJsonType& j, const T& t) +{ + to_json_tuple_impl(j, t, make_index_sequence::value> {}); +} + +#ifdef JSON_HAS_CPP_17 +template +void to_json(BasicJsonType& j, const std::filesystem::path& p) +{ + j = p.string(); +} +#endif + +struct to_json_fn +{ + template + auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward(val)))) + -> decltype(to_json(j, std::forward(val)), void()) + { + return to_json(j, std::forward(val)); + } +}; +} // namespace detail + +/// namespace to hold default `to_json` function +/// to see why this is required: +/// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html +namespace // NOLINT(cert-dcl59-cpp,fuchsia-header-anon-namespaces,google-build-namespaces) +{ +constexpr const auto& to_json = detail::static_const::value; // NOLINT(misc-definitions-in-headers) +} // namespace +} // namespace nlohmann + +// #include + +// #include + + +namespace nlohmann +{ + +template +struct adl_serializer +{ + /*! + @brief convert a JSON value to any value type + + This function is usually called by the `get()` function of the + @ref basic_json class (either explicit or via conversion operators). + + @note This function is chosen for default-constructible value types. + + @param[in] j JSON value to read from + @param[in,out] val value to write to + */ + template + static auto from_json(BasicJsonType && j, TargetType& val) noexcept( + noexcept(::nlohmann::from_json(std::forward(j), val))) + -> decltype(::nlohmann::from_json(std::forward(j), val), void()) + { + ::nlohmann::from_json(std::forward(j), val); + } + + /*! + @brief convert a JSON value to any value type + + This function is usually called by the `get()` function of the + @ref basic_json class (either explicit or via conversion operators). + + @note This function is chosen for value types which are not default-constructible. + + @param[in] j JSON value to read from + + @return copy of the JSON value, converted to @a ValueType + */ + template + static auto from_json(BasicJsonType && j) noexcept( + noexcept(::nlohmann::from_json(std::forward(j), detail::identity_tag {}))) + -> decltype(::nlohmann::from_json(std::forward(j), detail::identity_tag {})) + { + return ::nlohmann::from_json(std::forward(j), detail::identity_tag {}); + } + + /*! + @brief convert any value type to a JSON value + + This function is usually called by the constructors of the @ref basic_json + class. + + @param[in,out] j JSON value to write to + @param[in] val value to read from + */ + template + static auto to_json(BasicJsonType& j, TargetType && val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward(val)))) + -> decltype(::nlohmann::to_json(j, std::forward(val)), void()) + { + ::nlohmann::to_json(j, std::forward(val)); + } +}; +} // namespace nlohmann + +// #include + + +#include // uint8_t, uint64_t +#include // tie +#include // move + +namespace nlohmann +{ + +/*! +@brief an internal type for a backed binary type + +This type extends the template parameter @a BinaryType provided to `basic_json` +with a subtype used by BSON and MessagePack. This type exists so that the user +does not have to specify a type themselves with a specific naming scheme in +order to override the binary type. + +@tparam BinaryType container to store bytes (`std::vector` by + default) + +@since version 3.8.0; changed type of subtypes to std::uint64_t in 3.10.0. +*/ +template +class byte_container_with_subtype : public BinaryType +{ + public: + /// the type of the underlying container + using container_type = BinaryType; + /// the type of the subtype + using subtype_type = std::uint64_t; + + byte_container_with_subtype() noexcept(noexcept(container_type())) + : container_type() + {} + + byte_container_with_subtype(const container_type& b) noexcept(noexcept(container_type(b))) + : container_type(b) + {} + + byte_container_with_subtype(container_type&& b) noexcept(noexcept(container_type(std::move(b)))) + : container_type(std::move(b)) + {} + + byte_container_with_subtype(const container_type& b, subtype_type subtype_) noexcept(noexcept(container_type(b))) + : container_type(b) + , m_subtype(subtype_) + , m_has_subtype(true) + {} + + byte_container_with_subtype(container_type&& b, subtype_type subtype_) noexcept(noexcept(container_type(std::move(b)))) + : container_type(std::move(b)) + , m_subtype(subtype_) + , m_has_subtype(true) + {} + + bool operator==(const byte_container_with_subtype& rhs) const + { + return std::tie(static_cast(*this), m_subtype, m_has_subtype) == + std::tie(static_cast(rhs), rhs.m_subtype, rhs.m_has_subtype); + } + + bool operator!=(const byte_container_with_subtype& rhs) const + { + return !(rhs == *this); + } + + /*! + @brief sets the binary subtype + + Sets the binary subtype of the value, also flags a binary JSON value as + having a subtype, which has implications for serialization. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa see @ref subtype() -- return the binary subtype + @sa see @ref clear_subtype() -- clears the binary subtype + @sa see @ref has_subtype() -- returns whether or not the binary value has a + subtype + + @since version 3.8.0 + */ + void set_subtype(subtype_type subtype_) noexcept + { + m_subtype = subtype_; + m_has_subtype = true; + } + + /*! + @brief return the binary subtype + + Returns the numerical subtype of the value if it has a subtype. If it does + not have a subtype, this function will return subtype_type(-1) as a sentinel + value. + + @return the numerical subtype of the binary value + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa see @ref set_subtype() -- sets the binary subtype + @sa see @ref clear_subtype() -- clears the binary subtype + @sa see @ref has_subtype() -- returns whether or not the binary value has a + subtype + + @since version 3.8.0; fixed return value to properly return + subtype_type(-1) as documented in version 3.10.0 + */ + constexpr subtype_type subtype() const noexcept + { + return m_has_subtype ? m_subtype : subtype_type(-1); + } + + /*! + @brief return whether the value has a subtype + + @return whether the value has a subtype + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa see @ref subtype() -- return the binary subtype + @sa see @ref set_subtype() -- sets the binary subtype + @sa see @ref clear_subtype() -- clears the binary subtype + + @since version 3.8.0 + */ + constexpr bool has_subtype() const noexcept + { + return m_has_subtype; + } + + /*! + @brief clears the binary subtype + + Clears the binary subtype and flags the value as not having a subtype, which + has implications for serialization; for instance MessagePack will prefer the + bin family over the ext family. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa see @ref subtype() -- return the binary subtype + @sa see @ref set_subtype() -- sets the binary subtype + @sa see @ref has_subtype() -- returns whether or not the binary value has a + subtype + + @since version 3.8.0 + */ + void clear_subtype() noexcept + { + m_subtype = 0; + m_has_subtype = false; + } + + private: + subtype_type m_subtype = 0; + bool m_has_subtype = false; +}; + +} // namespace nlohmann + +// #include + +// #include + +// #include + +// #include + + +#include // uint8_t +#include // size_t +#include // hash + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ + +// boost::hash_combine +inline std::size_t combine(std::size_t seed, std::size_t h) noexcept +{ + seed ^= h + 0x9e3779b9 + (seed << 6U) + (seed >> 2U); + return seed; +} + +/*! +@brief hash a JSON value + +The hash function tries to rely on std::hash where possible. Furthermore, the +type of the JSON value is taken into account to have different hash values for +null, 0, 0U, and false, etc. + +@tparam BasicJsonType basic_json specialization +@param j JSON value to hash +@return hash value of j +*/ +template +std::size_t hash(const BasicJsonType& j) +{ + using string_t = typename BasicJsonType::string_t; + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + + const auto type = static_cast(j.type()); + switch (j.type()) + { + case BasicJsonType::value_t::null: + case BasicJsonType::value_t::discarded: + { + return combine(type, 0); + } + + case BasicJsonType::value_t::object: + { + auto seed = combine(type, j.size()); + for (const auto& element : j.items()) + { + const auto h = std::hash {}(element.key()); + seed = combine(seed, h); + seed = combine(seed, hash(element.value())); + } + return seed; + } + + case BasicJsonType::value_t::array: + { + auto seed = combine(type, j.size()); + for (const auto& element : j) + { + seed = combine(seed, hash(element)); + } + return seed; + } + + case BasicJsonType::value_t::string: + { + const auto h = std::hash {}(j.template get_ref()); + return combine(type, h); + } + + case BasicJsonType::value_t::boolean: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case BasicJsonType::value_t::number_integer: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case BasicJsonType::value_t::number_unsigned: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case BasicJsonType::value_t::number_float: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case BasicJsonType::value_t::binary: + { + auto seed = combine(type, j.get_binary().size()); + const auto h = std::hash {}(j.get_binary().has_subtype()); + seed = combine(seed, h); + seed = combine(seed, static_cast(j.get_binary().subtype())); + for (const auto byte : j.get_binary()) + { + seed = combine(seed, std::hash {}(byte)); + } + return seed; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + return 0; // LCOV_EXCL_LINE + } +} + +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // generate_n +#include // array +#include // ldexp +#include // size_t +#include // uint8_t, uint16_t, uint32_t, uint64_t +#include // snprintf +#include // memcpy +#include // back_inserter +#include // numeric_limits +#include // char_traits, string +#include // make_pair, move +#include // vector + +// #include + +// #include + + +#include // array +#include // size_t +#include // strlen +#include // begin, end, iterator_traits, random_access_iterator_tag, distance, next +#include // shared_ptr, make_shared, addressof +#include // accumulate +#include // string, char_traits +#include // enable_if, is_base_of, is_pointer, is_integral, remove_pointer +#include // pair, declval + +#ifndef JSON_NO_IO + #include // FILE * + #include // istream +#endif // JSON_NO_IO + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/// the supported input formats +enum class input_format_t { json, cbor, msgpack, ubjson, bson }; + +//////////////////// +// input adapters // +//////////////////// + +#ifndef JSON_NO_IO +/*! +Input adapter for stdio file access. This adapter read only 1 byte and do not use any + buffer. This adapter is a very low level adapter. +*/ +class file_input_adapter +{ + public: + using char_type = char; + + JSON_HEDLEY_NON_NULL(2) + explicit file_input_adapter(std::FILE* f) noexcept + : m_file(f) + {} + + // make class move-only + file_input_adapter(const file_input_adapter&) = delete; + file_input_adapter(file_input_adapter&&) noexcept = default; + file_input_adapter& operator=(const file_input_adapter&) = delete; + file_input_adapter& operator=(file_input_adapter&&) = delete; + ~file_input_adapter() = default; + + std::char_traits::int_type get_character() noexcept + { + return std::fgetc(m_file); + } + + private: + /// the file pointer to read from + std::FILE* m_file; +}; + + +/*! +Input adapter for a (caching) istream. Ignores a UFT Byte Order Mark at +beginning of input. Does not support changing the underlying std::streambuf +in mid-input. Maintains underlying std::istream and std::streambuf to support +subsequent use of standard std::istream operations to process any input +characters following those used in parsing the JSON input. Clears the +std::istream flags; any input errors (e.g., EOF) will be detected by the first +subsequent call for input from the std::istream. +*/ +class input_stream_adapter +{ + public: + using char_type = char; + + ~input_stream_adapter() + { + // clear stream flags; we use underlying streambuf I/O, do not + // maintain ifstream flags, except eof + if (is != nullptr) + { + is->clear(is->rdstate() & std::ios::eofbit); + } + } + + explicit input_stream_adapter(std::istream& i) + : is(&i), sb(i.rdbuf()) + {} + + // delete because of pointer members + input_stream_adapter(const input_stream_adapter&) = delete; + input_stream_adapter& operator=(input_stream_adapter&) = delete; + input_stream_adapter& operator=(input_stream_adapter&&) = delete; + + input_stream_adapter(input_stream_adapter&& rhs) noexcept + : is(rhs.is), sb(rhs.sb) + { + rhs.is = nullptr; + rhs.sb = nullptr; + } + + // std::istream/std::streambuf use std::char_traits::to_int_type, to + // ensure that std::char_traits::eof() and the character 0xFF do not + // end up as the same value, eg. 0xFFFFFFFF. + std::char_traits::int_type get_character() + { + auto res = sb->sbumpc(); + // set eof manually, as we don't use the istream interface. + if (JSON_HEDLEY_UNLIKELY(res == std::char_traits::eof())) + { + is->clear(is->rdstate() | std::ios::eofbit); + } + return res; + } + + private: + /// the associated input stream + std::istream* is = nullptr; + std::streambuf* sb = nullptr; +}; +#endif // JSON_NO_IO + +// General-purpose iterator-based adapter. It might not be as fast as +// theoretically possible for some containers, but it is extremely versatile. +template +class iterator_input_adapter +{ + public: + using char_type = typename std::iterator_traits::value_type; + + iterator_input_adapter(IteratorType first, IteratorType last) + : current(std::move(first)), end(std::move(last)) + {} + + typename std::char_traits::int_type get_character() + { + if (JSON_HEDLEY_LIKELY(current != end)) + { + auto result = std::char_traits::to_int_type(*current); + std::advance(current, 1); + return result; + } + + return std::char_traits::eof(); + } + + private: + IteratorType current; + IteratorType end; + + template + friend struct wide_string_input_helper; + + bool empty() const + { + return current == end; + } +}; + + +template +struct wide_string_input_helper; + +template +struct wide_string_input_helper +{ + // UTF-32 + static void fill_buffer(BaseInputAdapter& input, + std::array::int_type, 4>& utf8_bytes, + size_t& utf8_bytes_index, + size_t& utf8_bytes_filled) + { + utf8_bytes_index = 0; + + if (JSON_HEDLEY_UNLIKELY(input.empty())) + { + utf8_bytes[0] = std::char_traits::eof(); + utf8_bytes_filled = 1; + } + else + { + // get the current character + const auto wc = input.get_character(); + + // UTF-32 to UTF-8 encoding + if (wc < 0x80) + { + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + else if (wc <= 0x7FF) + { + utf8_bytes[0] = static_cast::int_type>(0xC0u | ((static_cast(wc) >> 6u) & 0x1Fu)); + utf8_bytes[1] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 2; + } + else if (wc <= 0xFFFF) + { + utf8_bytes[0] = static_cast::int_type>(0xE0u | ((static_cast(wc) >> 12u) & 0x0Fu)); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 6u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 3; + } + else if (wc <= 0x10FFFF) + { + utf8_bytes[0] = static_cast::int_type>(0xF0u | ((static_cast(wc) >> 18u) & 0x07u)); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 12u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 6u) & 0x3Fu)); + utf8_bytes[3] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 4; + } + else + { + // unknown character + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + } + } +}; + +template +struct wide_string_input_helper +{ + // UTF-16 + static void fill_buffer(BaseInputAdapter& input, + std::array::int_type, 4>& utf8_bytes, + size_t& utf8_bytes_index, + size_t& utf8_bytes_filled) + { + utf8_bytes_index = 0; + + if (JSON_HEDLEY_UNLIKELY(input.empty())) + { + utf8_bytes[0] = std::char_traits::eof(); + utf8_bytes_filled = 1; + } + else + { + // get the current character + const auto wc = input.get_character(); + + // UTF-16 to UTF-8 encoding + if (wc < 0x80) + { + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + else if (wc <= 0x7FF) + { + utf8_bytes[0] = static_cast::int_type>(0xC0u | ((static_cast(wc) >> 6u))); + utf8_bytes[1] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 2; + } + else if (0xD800 > wc || wc >= 0xE000) + { + utf8_bytes[0] = static_cast::int_type>(0xE0u | ((static_cast(wc) >> 12u))); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 6u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 3; + } + else + { + if (JSON_HEDLEY_UNLIKELY(!input.empty())) + { + const auto wc2 = static_cast(input.get_character()); + const auto charcode = 0x10000u + (((static_cast(wc) & 0x3FFu) << 10u) | (wc2 & 0x3FFu)); + utf8_bytes[0] = static_cast::int_type>(0xF0u | (charcode >> 18u)); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((charcode >> 12u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | ((charcode >> 6u) & 0x3Fu)); + utf8_bytes[3] = static_cast::int_type>(0x80u | (charcode & 0x3Fu)); + utf8_bytes_filled = 4; + } + else + { + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + } + } + } +}; + +// Wraps another input apdater to convert wide character types into individual bytes. +template +class wide_string_input_adapter +{ + public: + using char_type = char; + + wide_string_input_adapter(BaseInputAdapter base) + : base_adapter(base) {} + + typename std::char_traits::int_type get_character() noexcept + { + // check if buffer needs to be filled + if (utf8_bytes_index == utf8_bytes_filled) + { + fill_buffer(); + + JSON_ASSERT(utf8_bytes_filled > 0); + JSON_ASSERT(utf8_bytes_index == 0); + } + + // use buffer + JSON_ASSERT(utf8_bytes_filled > 0); + JSON_ASSERT(utf8_bytes_index < utf8_bytes_filled); + return utf8_bytes[utf8_bytes_index++]; + } + + private: + BaseInputAdapter base_adapter; + + template + void fill_buffer() + { + wide_string_input_helper::fill_buffer(base_adapter, utf8_bytes, utf8_bytes_index, utf8_bytes_filled); + } + + /// a buffer for UTF-8 bytes + std::array::int_type, 4> utf8_bytes = {{0, 0, 0, 0}}; + + /// index to the utf8_codes array for the next valid byte + std::size_t utf8_bytes_index = 0; + /// number of valid bytes in the utf8_codes array + std::size_t utf8_bytes_filled = 0; +}; + + +template +struct iterator_input_adapter_factory +{ + using iterator_type = IteratorType; + using char_type = typename std::iterator_traits::value_type; + using adapter_type = iterator_input_adapter; + + static adapter_type create(IteratorType first, IteratorType last) + { + return adapter_type(std::move(first), std::move(last)); + } +}; + +template +struct is_iterator_of_multibyte +{ + using value_type = typename std::iterator_traits::value_type; + enum + { + value = sizeof(value_type) > 1 + }; +}; + +template +struct iterator_input_adapter_factory::value>> +{ + using iterator_type = IteratorType; + using char_type = typename std::iterator_traits::value_type; + using base_adapter_type = iterator_input_adapter; + using adapter_type = wide_string_input_adapter; + + static adapter_type create(IteratorType first, IteratorType last) + { + return adapter_type(base_adapter_type(std::move(first), std::move(last))); + } +}; + +// General purpose iterator-based input +template +typename iterator_input_adapter_factory::adapter_type input_adapter(IteratorType first, IteratorType last) +{ + using factory_type = iterator_input_adapter_factory; + return factory_type::create(first, last); +} + +// Convenience shorthand from container to iterator +// Enables ADL on begin(container) and end(container) +// Encloses the using declarations in namespace for not to leak them to outside scope + +namespace container_input_adapter_factory_impl +{ + +using std::begin; +using std::end; + +template +struct container_input_adapter_factory {}; + +template +struct container_input_adapter_factory< ContainerType, + void_t()), end(std::declval()))>> + { + using adapter_type = decltype(input_adapter(begin(std::declval()), end(std::declval()))); + + static adapter_type create(const ContainerType& container) +{ + return input_adapter(begin(container), end(container)); +} + }; + +} // namespace container_input_adapter_factory_impl + +template +typename container_input_adapter_factory_impl::container_input_adapter_factory::adapter_type input_adapter(const ContainerType& container) +{ + return container_input_adapter_factory_impl::container_input_adapter_factory::create(container); +} + +#ifndef JSON_NO_IO +// Special cases with fast paths +inline file_input_adapter input_adapter(std::FILE* file) +{ + return file_input_adapter(file); +} + +inline input_stream_adapter input_adapter(std::istream& stream) +{ + return input_stream_adapter(stream); +} + +inline input_stream_adapter input_adapter(std::istream&& stream) +{ + return input_stream_adapter(stream); +} +#endif // JSON_NO_IO + +using contiguous_bytes_input_adapter = decltype(input_adapter(std::declval(), std::declval())); + +// Null-delimited strings, and the like. +template < typename CharT, + typename std::enable_if < + std::is_pointer::value&& + !std::is_array::value&& + std::is_integral::type>::value&& + sizeof(typename std::remove_pointer::type) == 1, + int >::type = 0 > +contiguous_bytes_input_adapter input_adapter(CharT b) +{ + auto length = std::strlen(reinterpret_cast(b)); + const auto* ptr = reinterpret_cast(b); + return input_adapter(ptr, ptr + length); +} + +template +auto input_adapter(T (&array)[N]) -> decltype(input_adapter(array, array + N)) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +{ + return input_adapter(array, array + N); +} + +// This class only handles inputs of input_buffer_adapter type. +// It's required so that expressions like {ptr, len} can be implicitely casted +// to the correct adapter. +class span_input_adapter +{ + public: + template < typename CharT, + typename std::enable_if < + std::is_pointer::value&& + std::is_integral::type>::value&& + sizeof(typename std::remove_pointer::type) == 1, + int >::type = 0 > + span_input_adapter(CharT b, std::size_t l) + : ia(reinterpret_cast(b), reinterpret_cast(b) + l) {} + + template::iterator_category, std::random_access_iterator_tag>::value, + int>::type = 0> + span_input_adapter(IteratorType first, IteratorType last) + : ia(input_adapter(first, last)) {} + + contiguous_bytes_input_adapter&& get() + { + return std::move(ia); // NOLINT(hicpp-move-const-arg,performance-move-const-arg) + } + + private: + contiguous_bytes_input_adapter ia; +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include +#include // string +#include // move +#include // vector + +// #include + +// #include + + +namespace nlohmann +{ + +/*! +@brief SAX interface + +This class describes the SAX interface used by @ref nlohmann::json::sax_parse. +Each function is called in different situations while the input is parsed. The +boolean return value informs the parser whether to continue processing the +input. +*/ +template +struct json_sax +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + /*! + @brief a null value was read + @return whether parsing should proceed + */ + virtual bool null() = 0; + + /*! + @brief a boolean value was read + @param[in] val boolean value + @return whether parsing should proceed + */ + virtual bool boolean(bool val) = 0; + + /*! + @brief an integer number was read + @param[in] val integer value + @return whether parsing should proceed + */ + virtual bool number_integer(number_integer_t val) = 0; + + /*! + @brief an unsigned integer number was read + @param[in] val unsigned integer value + @return whether parsing should proceed + */ + virtual bool number_unsigned(number_unsigned_t val) = 0; + + /*! + @brief an floating-point number was read + @param[in] val floating-point value + @param[in] s raw token value + @return whether parsing should proceed + */ + virtual bool number_float(number_float_t val, const string_t& s) = 0; + + /*! + @brief a string was read + @param[in] val string value + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool string(string_t& val) = 0; + + /*! + @brief a binary string was read + @param[in] val binary value + @return whether parsing should proceed + @note It is safe to move the passed binary. + */ + virtual bool binary(binary_t& val) = 0; + + /*! + @brief the beginning of an object was read + @param[in] elements number of object elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_object(std::size_t elements) = 0; + + /*! + @brief an object key was read + @param[in] val object key + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool key(string_t& val) = 0; + + /*! + @brief the end of an object was read + @return whether parsing should proceed + */ + virtual bool end_object() = 0; + + /*! + @brief the beginning of an array was read + @param[in] elements number of array elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_array(std::size_t elements) = 0; + + /*! + @brief the end of an array was read + @return whether parsing should proceed + */ + virtual bool end_array() = 0; + + /*! + @brief a parse error occurred + @param[in] position the position in the input where the error occurs + @param[in] last_token the last read token + @param[in] ex an exception object describing the error + @return whether parsing should proceed (must return false) + */ + virtual bool parse_error(std::size_t position, + const std::string& last_token, + const detail::exception& ex) = 0; + + json_sax() = default; + json_sax(const json_sax&) = default; + json_sax(json_sax&&) noexcept = default; + json_sax& operator=(const json_sax&) = default; + json_sax& operator=(json_sax&&) noexcept = default; + virtual ~json_sax() = default; +}; + + +namespace detail +{ +/*! +@brief SAX implementation to create a JSON value from SAX events + +This class implements the @ref json_sax interface and processes the SAX events +to create a JSON value which makes it basically a DOM parser. The structure or +hierarchy of the JSON value is managed by the stack `ref_stack` which contains +a pointer to the respective array or object for each recursion depth. + +After successful parsing, the value that is passed by reference to the +constructor contains the parsed value. + +@tparam BasicJsonType the JSON type +*/ +template +class json_sax_dom_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + /*! + @param[in,out] r reference to a JSON value that is manipulated while + parsing + @param[in] allow_exceptions_ whether parse errors yield exceptions + */ + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) + : root(r), allow_exceptions(allow_exceptions_) + {} + + // make class move-only + json_sax_dom_parser(const json_sax_dom_parser&) = delete; + json_sax_dom_parser(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; + json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~json_sax_dom_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); + + if (JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive object size: " + std::to_string(len), *ref_stack.back())); + } + + return true; + } + + bool key(string_t& val) + { + // add null at given key and store the reference for later + object_element = &(ref_stack.back()->m_value.object->operator[](val)); + return true; + } + + bool end_object() + { + ref_stack.back()->set_parents(); + ref_stack.pop_back(); + return true; + } + + bool start_array(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); + + if (JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive array size: " + std::to_string(len), *ref_stack.back())); + } + + return true; + } + + bool end_array() + { + ref_stack.back()->set_parents(); + ref_stack.pop_back(); + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + /*! + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + */ + template + JSON_HEDLEY_RETURNS_NON_NULL + BasicJsonType* handle_value(Value&& v) + { + if (ref_stack.empty()) + { + root = BasicJsonType(std::forward(v)); + return &root; + } + + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->emplace_back(std::forward(v)); + return &(ref_stack.back()->m_value.array->back()); + } + + JSON_ASSERT(ref_stack.back()->is_object()); + JSON_ASSERT(object_element); + *object_element = BasicJsonType(std::forward(v)); + return object_element; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; +}; + +template +class json_sax_dom_callback_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using parser_callback_t = typename BasicJsonType::parser_callback_t; + using parse_event_t = typename BasicJsonType::parse_event_t; + + json_sax_dom_callback_parser(BasicJsonType& r, + const parser_callback_t cb, + const bool allow_exceptions_ = true) + : root(r), callback(cb), allow_exceptions(allow_exceptions_) + { + keep_stack.push_back(true); + } + + // make class move-only + json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~json_sax_dom_callback_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + // check callback for object start + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::object_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::object, true); + ref_stack.push_back(val.second); + + // check object limit + if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive object size: " + std::to_string(len), *ref_stack.back())); + } + + return true; + } + + bool key(string_t& val) + { + BasicJsonType k = BasicJsonType(val); + + // check callback for key + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::key, k); + key_keep_stack.push_back(keep); + + // add discarded value at given key and store the reference for later + if (keep && ref_stack.back()) + { + object_element = &(ref_stack.back()->m_value.object->operator[](val) = discarded); + } + + return true; + } + + bool end_object() + { + if (ref_stack.back()) + { + if (!callback(static_cast(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) + { + // discard object + *ref_stack.back() = discarded; + } + else + { + ref_stack.back()->set_parents(); + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured()) + { + // remove discarded value + for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) + { + if (it->is_discarded()) + { + ref_stack.back()->erase(it); + break; + } + } + } + + return true; + } + + bool start_array(std::size_t len) + { + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::array_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::array, true); + ref_stack.push_back(val.second); + + // check array limit + if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive array size: " + std::to_string(len), *ref_stack.back())); + } + + return true; + } + + bool end_array() + { + bool keep = true; + + if (ref_stack.back()) + { + keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); + if (keep) + { + ref_stack.back()->set_parents(); + } + else + { + // discard array + *ref_stack.back() = discarded; + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + // remove discarded value + if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->pop_back(); + } + + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + /*! + @param[in] v value to add to the JSON value we build during parsing + @param[in] skip_callback whether we should skip calling the callback + function; this is required after start_array() and + start_object() SAX events, because otherwise we would call the + callback function with an empty array or object, respectively. + + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + + @return pair of boolean (whether value should be kept) and pointer (to the + passed value in the ref_stack hierarchy; nullptr if not kept) + */ + template + std::pair handle_value(Value&& v, const bool skip_callback = false) + { + JSON_ASSERT(!keep_stack.empty()); + + // do not handle this value if we know it would be added to a discarded + // container + if (!keep_stack.back()) + { + return {false, nullptr}; + } + + // create value + auto value = BasicJsonType(std::forward(v)); + + // check callback + const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); + + // do not handle this value if we just learnt it shall be discarded + if (!keep) + { + return {false, nullptr}; + } + + if (ref_stack.empty()) + { + root = std::move(value); + return {true, &root}; + } + + // skip this value if we already decided to skip the parent + // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) + if (!ref_stack.back()) + { + return {false, nullptr}; + } + + // we now only expect arrays and objects + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + // array + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->emplace_back(std::move(value)); + return {true, &(ref_stack.back()->m_value.array->back())}; + } + + // object + JSON_ASSERT(ref_stack.back()->is_object()); + // check if we should store an element for the current key + JSON_ASSERT(!key_keep_stack.empty()); + const bool store_element = key_keep_stack.back(); + key_keep_stack.pop_back(); + + if (!store_element) + { + return {false, nullptr}; + } + + JSON_ASSERT(object_element); + *object_element = std::move(value); + return {true, object_element}; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// stack to manage which values to keep + std::vector keep_stack {}; + /// stack to manage which object keys to keep + std::vector key_keep_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// callback function + const parser_callback_t callback = nullptr; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// a discarded value for the callback + BasicJsonType discarded = BasicJsonType::value_t::discarded; +}; + +template +class json_sax_acceptor +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + bool null() + { + return true; + } + + bool boolean(bool /*unused*/) + { + return true; + } + + bool number_integer(number_integer_t /*unused*/) + { + return true; + } + + bool number_unsigned(number_unsigned_t /*unused*/) + { + return true; + } + + bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) + { + return true; + } + + bool string(string_t& /*unused*/) + { + return true; + } + + bool binary(binary_t& /*unused*/) + { + return true; + } + + bool start_object(std::size_t /*unused*/ = std::size_t(-1)) + { + return true; + } + + bool key(string_t& /*unused*/) + { + return true; + } + + bool end_object() + { + return true; + } + + bool start_array(std::size_t /*unused*/ = std::size_t(-1)) + { + return true; + } + + bool end_array() + { + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) + { + return false; + } +}; +} // namespace detail + +} // namespace nlohmann + +// #include + + +#include // array +#include // localeconv +#include // size_t +#include // snprintf +#include // strtof, strtod, strtold, strtoll, strtoull +#include // initializer_list +#include // char_traits, string +#include // move +#include // vector + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/////////// +// lexer // +/////////// + +template +class lexer_base +{ + public: + /// token types for the parser + enum class token_type + { + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_unsigned, ///< an unsigned integer -- use get_number_unsigned() for actual value + value_integer, ///< a signed integer -- use get_number_integer() for actual value + value_float, ///< an floating point number -- use get_number_float() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input, ///< indicating the end of the input buffer + literal_or_value ///< a literal or the begin of a value (only for diagnostics) + }; + + /// return name of values of type token_type (only used for errors) + JSON_HEDLEY_RETURNS_NON_NULL + JSON_HEDLEY_CONST + static const char* token_type_name(const token_type t) noexcept + { + switch (t) + { + case token_type::uninitialized: + return ""; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case token_type::value_unsigned: + case token_type::value_integer: + case token_type::value_float: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return ""; + case token_type::end_of_input: + return "end of input"; + case token_type::literal_or_value: + return "'[', '{', or a literal"; + // LCOV_EXCL_START + default: // catch non-enum values + return "unknown token"; + // LCOV_EXCL_STOP + } + } +}; +/*! +@brief lexical analysis + +This class organizes the lexical analysis during JSON deserialization. +*/ +template +class lexer : public lexer_base +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using char_type = typename InputAdapterType::char_type; + using char_int_type = typename std::char_traits::int_type; + + public: + using token_type = typename lexer_base::token_type; + + explicit lexer(InputAdapterType&& adapter, bool ignore_comments_ = false) noexcept + : ia(std::move(adapter)) + , ignore_comments(ignore_comments_) + , decimal_point_char(static_cast(get_decimal_point())) + {} + + // delete because of pointer members + lexer(const lexer&) = delete; + lexer(lexer&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + lexer& operator=(lexer&) = delete; + lexer& operator=(lexer&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~lexer() = default; + + private: + ///////////////////// + // locales + ///////////////////// + + /// return the locale-dependent decimal point + JSON_HEDLEY_PURE + static char get_decimal_point() noexcept + { + const auto* loc = localeconv(); + JSON_ASSERT(loc != nullptr); + return (loc->decimal_point == nullptr) ? '.' : *(loc->decimal_point); + } + + ///////////////////// + // scan functions + ///////////////////// + + /*! + @brief get codepoint from 4 hex characters following `\u` + + For input "\u c1 c2 c3 c4" the codepoint is: + (c1 * 0x1000) + (c2 * 0x0100) + (c3 * 0x0010) + c4 + = (c1 << 12) + (c2 << 8) + (c3 << 4) + (c4 << 0) + + Furthermore, the possible characters '0'..'9', 'A'..'F', and 'a'..'f' + must be converted to the integers 0x0..0x9, 0xA..0xF, 0xA..0xF, resp. The + conversion is done by subtracting the offset (0x30, 0x37, and 0x57) + between the ASCII value of the character and the desired integer value. + + @return codepoint (0x0000..0xFFFF) or -1 in case of an error (e.g. EOF or + non-hex character) + */ + int get_codepoint() + { + // this function only makes sense after reading `\u` + JSON_ASSERT(current == 'u'); + int codepoint = 0; + + const auto factors = { 12u, 8u, 4u, 0u }; + for (const auto factor : factors) + { + get(); + + if (current >= '0' && current <= '9') + { + codepoint += static_cast((static_cast(current) - 0x30u) << factor); + } + else if (current >= 'A' && current <= 'F') + { + codepoint += static_cast((static_cast(current) - 0x37u) << factor); + } + else if (current >= 'a' && current <= 'f') + { + codepoint += static_cast((static_cast(current) - 0x57u) << factor); + } + else + { + return -1; + } + } + + JSON_ASSERT(0x0000 <= codepoint && codepoint <= 0xFFFF); + return codepoint; + } + + /*! + @brief check if the next byte(s) are inside a given range + + Adds the current byte and, for each passed range, reads a new byte and + checks if it is inside the range. If a violation was detected, set up an + error message and return false. Otherwise, return true. + + @param[in] ranges list of integers; interpreted as list of pairs of + inclusive lower and upper bound, respectively + + @pre The passed list @a ranges must have 2, 4, or 6 elements; that is, + 1, 2, or 3 pairs. This precondition is enforced by an assertion. + + @return true if and only if no range violation was detected + */ + bool next_byte_in_range(std::initializer_list ranges) + { + JSON_ASSERT(ranges.size() == 2 || ranges.size() == 4 || ranges.size() == 6); + add(current); + + for (auto range = ranges.begin(); range != ranges.end(); ++range) + { + get(); + if (JSON_HEDLEY_LIKELY(*range <= current && current <= *(++range))) + { + add(current); + } + else + { + error_message = "invalid string: ill-formed UTF-8 byte"; + return false; + } + } + + return true; + } + + /*! + @brief scan a string literal + + This function scans a string according to Sect. 7 of RFC 8259. While + scanning, bytes are escaped and copied into buffer token_buffer. Then the + function returns successfully, token_buffer is *not* null-terminated (as it + may contain \0 bytes), and token_buffer.size() is the number of bytes in the + string. + + @return token_type::value_string if string could be successfully scanned, + token_type::parse_error otherwise + + @note In case of errors, variable error_message contains a textual + description. + */ + token_type scan_string() + { + // reset token_buffer (ignore opening quote) + reset(); + + // we entered the function by reading an open quote + JSON_ASSERT(current == '\"'); + + while (true) + { + // get next character + switch (get()) + { + // end of file while parsing string + case std::char_traits::eof(): + { + error_message = "invalid string: missing closing quote"; + return token_type::parse_error; + } + + // closing quote + case '\"': + { + return token_type::value_string; + } + + // escapes + case '\\': + { + switch (get()) + { + // quotation mark + case '\"': + add('\"'); + break; + // reverse solidus + case '\\': + add('\\'); + break; + // solidus + case '/': + add('/'); + break; + // backspace + case 'b': + add('\b'); + break; + // form feed + case 'f': + add('\f'); + break; + // line feed + case 'n': + add('\n'); + break; + // carriage return + case 'r': + add('\r'); + break; + // tab + case 't': + add('\t'); + break; + + // unicode escapes + case 'u': + { + const int codepoint1 = get_codepoint(); + int codepoint = codepoint1; // start with codepoint1 + + if (JSON_HEDLEY_UNLIKELY(codepoint1 == -1)) + { + error_message = "invalid string: '\\u' must be followed by 4 hex digits"; + return token_type::parse_error; + } + + // check if code point is a high surrogate + if (0xD800 <= codepoint1 && codepoint1 <= 0xDBFF) + { + // expect next \uxxxx entry + if (JSON_HEDLEY_LIKELY(get() == '\\' && get() == 'u')) + { + const int codepoint2 = get_codepoint(); + + if (JSON_HEDLEY_UNLIKELY(codepoint2 == -1)) + { + error_message = "invalid string: '\\u' must be followed by 4 hex digits"; + return token_type::parse_error; + } + + // check if codepoint2 is a low surrogate + if (JSON_HEDLEY_LIKELY(0xDC00 <= codepoint2 && codepoint2 <= 0xDFFF)) + { + // overwrite codepoint + codepoint = static_cast( + // high surrogate occupies the most significant 22 bits + (static_cast(codepoint1) << 10u) + // low surrogate occupies the least significant 15 bits + + static_cast(codepoint2) + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00u); + } + else + { + error_message = "invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF"; + return token_type::parse_error; + } + } + else + { + error_message = "invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF"; + return token_type::parse_error; + } + } + else + { + if (JSON_HEDLEY_UNLIKELY(0xDC00 <= codepoint1 && codepoint1 <= 0xDFFF)) + { + error_message = "invalid string: surrogate U+DC00..U+DFFF must follow U+D800..U+DBFF"; + return token_type::parse_error; + } + } + + // result of the above calculation yields a proper codepoint + JSON_ASSERT(0x00 <= codepoint && codepoint <= 0x10FFFF); + + // translate codepoint into bytes + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + add(static_cast(codepoint)); + } + else if (codepoint <= 0x7FF) + { + // 2-byte characters: 110xxxxx 10xxxxxx + add(static_cast(0xC0u | (static_cast(codepoint) >> 6u))); + add(static_cast(0x80u | (static_cast(codepoint) & 0x3Fu))); + } + else if (codepoint <= 0xFFFF) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + add(static_cast(0xE0u | (static_cast(codepoint) >> 12u))); + add(static_cast(0x80u | ((static_cast(codepoint) >> 6u) & 0x3Fu))); + add(static_cast(0x80u | (static_cast(codepoint) & 0x3Fu))); + } + else + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + add(static_cast(0xF0u | (static_cast(codepoint) >> 18u))); + add(static_cast(0x80u | ((static_cast(codepoint) >> 12u) & 0x3Fu))); + add(static_cast(0x80u | ((static_cast(codepoint) >> 6u) & 0x3Fu))); + add(static_cast(0x80u | (static_cast(codepoint) & 0x3Fu))); + } + + break; + } + + // other characters after escape + default: + error_message = "invalid string: forbidden character after backslash"; + return token_type::parse_error; + } + + break; + } + + // invalid control characters + case 0x00: + { + error_message = "invalid string: control character U+0000 (NUL) must be escaped to \\u0000"; + return token_type::parse_error; + } + + case 0x01: + { + error_message = "invalid string: control character U+0001 (SOH) must be escaped to \\u0001"; + return token_type::parse_error; + } + + case 0x02: + { + error_message = "invalid string: control character U+0002 (STX) must be escaped to \\u0002"; + return token_type::parse_error; + } + + case 0x03: + { + error_message = "invalid string: control character U+0003 (ETX) must be escaped to \\u0003"; + return token_type::parse_error; + } + + case 0x04: + { + error_message = "invalid string: control character U+0004 (EOT) must be escaped to \\u0004"; + return token_type::parse_error; + } + + case 0x05: + { + error_message = "invalid string: control character U+0005 (ENQ) must be escaped to \\u0005"; + return token_type::parse_error; + } + + case 0x06: + { + error_message = "invalid string: control character U+0006 (ACK) must be escaped to \\u0006"; + return token_type::parse_error; + } + + case 0x07: + { + error_message = "invalid string: control character U+0007 (BEL) must be escaped to \\u0007"; + return token_type::parse_error; + } + + case 0x08: + { + error_message = "invalid string: control character U+0008 (BS) must be escaped to \\u0008 or \\b"; + return token_type::parse_error; + } + + case 0x09: + { + error_message = "invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t"; + return token_type::parse_error; + } + + case 0x0A: + { + error_message = "invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n"; + return token_type::parse_error; + } + + case 0x0B: + { + error_message = "invalid string: control character U+000B (VT) must be escaped to \\u000B"; + return token_type::parse_error; + } + + case 0x0C: + { + error_message = "invalid string: control character U+000C (FF) must be escaped to \\u000C or \\f"; + return token_type::parse_error; + } + + case 0x0D: + { + error_message = "invalid string: control character U+000D (CR) must be escaped to \\u000D or \\r"; + return token_type::parse_error; + } + + case 0x0E: + { + error_message = "invalid string: control character U+000E (SO) must be escaped to \\u000E"; + return token_type::parse_error; + } + + case 0x0F: + { + error_message = "invalid string: control character U+000F (SI) must be escaped to \\u000F"; + return token_type::parse_error; + } + + case 0x10: + { + error_message = "invalid string: control character U+0010 (DLE) must be escaped to \\u0010"; + return token_type::parse_error; + } + + case 0x11: + { + error_message = "invalid string: control character U+0011 (DC1) must be escaped to \\u0011"; + return token_type::parse_error; + } + + case 0x12: + { + error_message = "invalid string: control character U+0012 (DC2) must be escaped to \\u0012"; + return token_type::parse_error; + } + + case 0x13: + { + error_message = "invalid string: control character U+0013 (DC3) must be escaped to \\u0013"; + return token_type::parse_error; + } + + case 0x14: + { + error_message = "invalid string: control character U+0014 (DC4) must be escaped to \\u0014"; + return token_type::parse_error; + } + + case 0x15: + { + error_message = "invalid string: control character U+0015 (NAK) must be escaped to \\u0015"; + return token_type::parse_error; + } + + case 0x16: + { + error_message = "invalid string: control character U+0016 (SYN) must be escaped to \\u0016"; + return token_type::parse_error; + } + + case 0x17: + { + error_message = "invalid string: control character U+0017 (ETB) must be escaped to \\u0017"; + return token_type::parse_error; + } + + case 0x18: + { + error_message = "invalid string: control character U+0018 (CAN) must be escaped to \\u0018"; + return token_type::parse_error; + } + + case 0x19: + { + error_message = "invalid string: control character U+0019 (EM) must be escaped to \\u0019"; + return token_type::parse_error; + } + + case 0x1A: + { + error_message = "invalid string: control character U+001A (SUB) must be escaped to \\u001A"; + return token_type::parse_error; + } + + case 0x1B: + { + error_message = "invalid string: control character U+001B (ESC) must be escaped to \\u001B"; + return token_type::parse_error; + } + + case 0x1C: + { + error_message = "invalid string: control character U+001C (FS) must be escaped to \\u001C"; + return token_type::parse_error; + } + + case 0x1D: + { + error_message = "invalid string: control character U+001D (GS) must be escaped to \\u001D"; + return token_type::parse_error; + } + + case 0x1E: + { + error_message = "invalid string: control character U+001E (RS) must be escaped to \\u001E"; + return token_type::parse_error; + } + + case 0x1F: + { + error_message = "invalid string: control character U+001F (US) must be escaped to \\u001F"; + return token_type::parse_error; + } + + // U+0020..U+007F (except U+0022 (quote) and U+005C (backspace)) + case 0x20: + case 0x21: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x5A: + case 0x5B: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + { + add(current); + break; + } + + // U+0080..U+07FF: bytes C2..DF 80..BF + case 0xC2: + case 0xC3: + case 0xC4: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC8: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCC: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + case 0xD5: + case 0xD6: + case 0xD7: + case 0xD8: + case 0xD9: + case 0xDA: + case 0xDB: + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + { + if (JSON_HEDLEY_UNLIKELY(!next_byte_in_range({0x80, 0xBF}))) + { + return token_type::parse_error; + } + break; + } + + // U+0800..U+0FFF: bytes E0 A0..BF 80..BF + case 0xE0: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0xA0, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+1000..U+CFFF: bytes E1..EC 80..BF 80..BF + // U+E000..U+FFFF: bytes EE..EF 80..BF 80..BF + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xEE: + case 0xEF: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+D000..U+D7FF: bytes ED 80..9F 80..BF + case 0xED: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0x9F, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+10000..U+3FFFF F0 90..BF 80..BF 80..BF + case 0xF0: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x90, 0xBF, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF + case 0xF1: + case 0xF2: + case 0xF3: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0xBF, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+100000..U+10FFFF F4 80..8F 80..BF 80..BF + case 0xF4: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0x8F, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // remaining bytes (80..C1 and F5..FF) are ill-formed + default: + { + error_message = "invalid string: ill-formed UTF-8 byte"; + return token_type::parse_error; + } + } + } + } + + /*! + * @brief scan a comment + * @return whether comment could be scanned successfully + */ + bool scan_comment() + { + switch (get()) + { + // single-line comments skip input until a newline or EOF is read + case '/': + { + while (true) + { + switch (get()) + { + case '\n': + case '\r': + case std::char_traits::eof(): + case '\0': + return true; + + default: + break; + } + } + } + + // multi-line comments skip input until */ is read + case '*': + { + while (true) + { + switch (get()) + { + case std::char_traits::eof(): + case '\0': + { + error_message = "invalid comment; missing closing '*/'"; + return false; + } + + case '*': + { + switch (get()) + { + case '/': + return true; + + default: + { + unget(); + continue; + } + } + } + + default: + continue; + } + } + } + + // unexpected character after reading '/' + default: + { + error_message = "invalid comment; expecting '/' or '*' after '/'"; + return false; + } + } + } + + JSON_HEDLEY_NON_NULL(2) + static void strtof(float& f, const char* str, char** endptr) noexcept + { + f = std::strtof(str, endptr); + } + + JSON_HEDLEY_NON_NULL(2) + static void strtof(double& f, const char* str, char** endptr) noexcept + { + f = std::strtod(str, endptr); + } + + JSON_HEDLEY_NON_NULL(2) + static void strtof(long double& f, const char* str, char** endptr) noexcept + { + f = std::strtold(str, endptr); + } + + /*! + @brief scan a number literal + + This function scans a string according to Sect. 6 of RFC 8259. + + The function is realized with a deterministic finite state machine derived + from the grammar described in RFC 8259. Starting in state "init", the + input is read and used to determined the next state. Only state "done" + accepts the number. State "error" is a trap state to model errors. In the + table below, "anything" means any character but the ones listed before. + + state | 0 | 1-9 | e E | + | - | . | anything + ---------|----------|----------|----------|---------|---------|----------|----------- + init | zero | any1 | [error] | [error] | minus | [error] | [error] + minus | zero | any1 | [error] | [error] | [error] | [error] | [error] + zero | done | done | exponent | done | done | decimal1 | done + any1 | any1 | any1 | exponent | done | done | decimal1 | done + decimal1 | decimal2 | decimal2 | [error] | [error] | [error] | [error] | [error] + decimal2 | decimal2 | decimal2 | exponent | done | done | done | done + exponent | any2 | any2 | [error] | sign | sign | [error] | [error] + sign | any2 | any2 | [error] | [error] | [error] | [error] | [error] + any2 | any2 | any2 | done | done | done | done | done + + The state machine is realized with one label per state (prefixed with + "scan_number_") and `goto` statements between them. The state machine + contains cycles, but any cycle can be left when EOF is read. Therefore, + the function is guaranteed to terminate. + + During scanning, the read bytes are stored in token_buffer. This string is + then converted to a signed integer, an unsigned integer, or a + floating-point number. + + @return token_type::value_unsigned, token_type::value_integer, or + token_type::value_float if number could be successfully scanned, + token_type::parse_error otherwise + + @note The scanner is independent of the current locale. Internally, the + locale's decimal point is used instead of `.` to work with the + locale-dependent converters. + */ + token_type scan_number() // lgtm [cpp/use-of-goto] + { + // reset token_buffer to store the number's bytes + reset(); + + // the type of the parsed number; initially set to unsigned; will be + // changed if minus sign, decimal point or exponent is read + token_type number_type = token_type::value_unsigned; + + // state (init): we just found out we need to scan a number + switch (current) + { + case '-': + { + add(current); + goto scan_number_minus; + } + + case '0': + { + add(current); + goto scan_number_zero; + } + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + // all other characters are rejected outside scan_number() + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + +scan_number_minus: + // state: we just parsed a leading minus sign + number_type = token_type::value_integer; + switch (get()) + { + case '0': + { + add(current); + goto scan_number_zero; + } + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + default: + { + error_message = "invalid number; expected digit after '-'"; + return token_type::parse_error; + } + } + +scan_number_zero: + // state: we just parse a zero (maybe with a leading minus sign) + switch (get()) + { + case '.': + { + add(decimal_point_char); + goto scan_number_decimal1; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_any1: + // state: we just parsed a number 0-9 (maybe with a leading minus sign) + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + case '.': + { + add(decimal_point_char); + goto scan_number_decimal1; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_decimal1: + // state: we just parsed a decimal point + number_type = token_type::value_float; + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_decimal2; + } + + default: + { + error_message = "invalid number; expected digit after '.'"; + return token_type::parse_error; + } + } + +scan_number_decimal2: + // we just parsed at least one number after a decimal point + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_decimal2; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_exponent: + // we just parsed an exponent + number_type = token_type::value_float; + switch (get()) + { + case '+': + case '-': + { + add(current); + goto scan_number_sign; + } + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + { + error_message = + "invalid number; expected '+', '-', or digit after exponent"; + return token_type::parse_error; + } + } + +scan_number_sign: + // we just parsed an exponent sign + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + { + error_message = "invalid number; expected digit after exponent sign"; + return token_type::parse_error; + } + } + +scan_number_any2: + // we just parsed a number after the exponent or exponent sign + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + goto scan_number_done; + } + +scan_number_done: + // unget the character after the number (we only read it to know that + // we are done scanning a number) + unget(); + + char* endptr = nullptr; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + errno = 0; + + // try to parse integers first and fall back to floats + if (number_type == token_type::value_unsigned) + { + const auto x = std::strtoull(token_buffer.data(), &endptr, 10); + + // we checked the number format before + JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); + + if (errno == 0) + { + value_unsigned = static_cast(x); + if (value_unsigned == x) + { + return token_type::value_unsigned; + } + } + } + else if (number_type == token_type::value_integer) + { + const auto x = std::strtoll(token_buffer.data(), &endptr, 10); + + // we checked the number format before + JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); + + if (errno == 0) + { + value_integer = static_cast(x); + if (value_integer == x) + { + return token_type::value_integer; + } + } + } + + // this code is reached if we parse a floating-point number or if an + // integer conversion above failed + strtof(value_float, token_buffer.data(), &endptr); + + // we checked the number format before + JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); + + return token_type::value_float; + } + + /*! + @param[in] literal_text the literal text to expect + @param[in] length the length of the passed literal text + @param[in] return_type the token type to return on success + */ + JSON_HEDLEY_NON_NULL(2) + token_type scan_literal(const char_type* literal_text, const std::size_t length, + token_type return_type) + { + JSON_ASSERT(std::char_traits::to_char_type(current) == literal_text[0]); + for (std::size_t i = 1; i < length; ++i) + { + if (JSON_HEDLEY_UNLIKELY(std::char_traits::to_char_type(get()) != literal_text[i])) + { + error_message = "invalid literal"; + return token_type::parse_error; + } + } + return return_type; + } + + ///////////////////// + // input management + ///////////////////// + + /// reset token_buffer; current character is beginning of token + void reset() noexcept + { + token_buffer.clear(); + token_string.clear(); + token_string.push_back(std::char_traits::to_char_type(current)); + } + + /* + @brief get next character from the input + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a + `std::char_traits::eof()` in that case. Stores the scanned characters + for use in error messages. + + @return character read from the input + */ + char_int_type get() + { + ++position.chars_read_total; + ++position.chars_read_current_line; + + if (next_unget) + { + // just reset the next_unget variable and work with current + next_unget = false; + } + else + { + current = ia.get_character(); + } + + if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) + { + token_string.push_back(std::char_traits::to_char_type(current)); + } + + if (current == '\n') + { + ++position.lines_read; + position.chars_read_current_line = 0; + } + + return current; + } + + /*! + @brief unget current character (read it again on next get) + + We implement unget by setting variable next_unget to true. The input is not + changed - we just simulate ungetting by modifying chars_read_total, + chars_read_current_line, and token_string. The next call to get() will + behave as if the unget character is read again. + */ + void unget() + { + next_unget = true; + + --position.chars_read_total; + + // in case we "unget" a newline, we have to also decrement the lines_read + if (position.chars_read_current_line == 0) + { + if (position.lines_read > 0) + { + --position.lines_read; + } + } + else + { + --position.chars_read_current_line; + } + + if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) + { + JSON_ASSERT(!token_string.empty()); + token_string.pop_back(); + } + } + + /// add a character to token_buffer + void add(char_int_type c) + { + token_buffer.push_back(static_cast(c)); + } + + public: + ///////////////////// + // value getters + ///////////////////// + + /// return integer value + constexpr number_integer_t get_number_integer() const noexcept + { + return value_integer; + } + + /// return unsigned integer value + constexpr number_unsigned_t get_number_unsigned() const noexcept + { + return value_unsigned; + } + + /// return floating-point value + constexpr number_float_t get_number_float() const noexcept + { + return value_float; + } + + /// return current string value (implicitly resets the token; useful only once) + string_t& get_string() + { + return token_buffer; + } + + ///////////////////// + // diagnostics + ///////////////////// + + /// return position of last read token + constexpr position_t get_position() const noexcept + { + return position; + } + + /// return the last read token (for errors only). Will never contain EOF + /// (an arbitrary value that is not a valid char value, often -1), because + /// 255 may legitimately occur. May contain NUL, which should be escaped. + std::string get_token_string() const + { + // escape control characters + std::string result; + for (const auto c : token_string) + { + if (static_cast(c) <= '\x1F') + { + // escape control characters + std::array cs{{}}; + (std::snprintf)(cs.data(), cs.size(), "", static_cast(c)); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + result += cs.data(); + } + else + { + // add character as is + result.push_back(static_cast(c)); + } + } + + return result; + } + + /// return syntax error message + JSON_HEDLEY_RETURNS_NON_NULL + constexpr const char* get_error_message() const noexcept + { + return error_message; + } + + ///////////////////// + // actual scanner + ///////////////////// + + /*! + @brief skip the UTF-8 byte order mark + @return true iff there is no BOM or the correct BOM has been skipped + */ + bool skip_bom() + { + if (get() == 0xEF) + { + // check if we completely parse the BOM + return get() == 0xBB && get() == 0xBF; + } + + // the first character is not the beginning of the BOM; unget it to + // process is later + unget(); + return true; + } + + void skip_whitespace() + { + do + { + get(); + } + while (current == ' ' || current == '\t' || current == '\n' || current == '\r'); + } + + token_type scan() + { + // initially, skip the BOM + if (position.chars_read_total == 0 && !skip_bom()) + { + error_message = "invalid BOM; must be 0xEF 0xBB 0xBF if given"; + return token_type::parse_error; + } + + // read next character and ignore whitespace + skip_whitespace(); + + // ignore comments + while (ignore_comments && current == '/') + { + if (!scan_comment()) + { + return token_type::parse_error; + } + + // skip following whitespace + skip_whitespace(); + } + + switch (current) + { + // structural characters + case '[': + return token_type::begin_array; + case ']': + return token_type::end_array; + case '{': + return token_type::begin_object; + case '}': + return token_type::end_object; + case ':': + return token_type::name_separator; + case ',': + return token_type::value_separator; + + // literals + case 't': + { + std::array true_literal = {{char_type('t'), char_type('r'), char_type('u'), char_type('e')}}; + return scan_literal(true_literal.data(), true_literal.size(), token_type::literal_true); + } + case 'f': + { + std::array false_literal = {{char_type('f'), char_type('a'), char_type('l'), char_type('s'), char_type('e')}}; + return scan_literal(false_literal.data(), false_literal.size(), token_type::literal_false); + } + case 'n': + { + std::array null_literal = {{char_type('n'), char_type('u'), char_type('l'), char_type('l')}}; + return scan_literal(null_literal.data(), null_literal.size(), token_type::literal_null); + } + + // string + case '\"': + return scan_string(); + + // number + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + return scan_number(); + + // end of input (the null byte is needed when parsing from + // string literals) + case '\0': + case std::char_traits::eof(): + return token_type::end_of_input; + + // error + default: + error_message = "invalid literal"; + return token_type::parse_error; + } + } + + private: + /// input adapter + InputAdapterType ia; + + /// whether comments should be ignored (true) or signaled as errors (false) + const bool ignore_comments = false; + + /// the current character + char_int_type current = std::char_traits::eof(); + + /// whether the next get() call should just return current + bool next_unget = false; + + /// the start position of the current token + position_t position {}; + + /// raw input token string (for error messages) + std::vector token_string {}; + + /// buffer for variable-length tokens (numbers, strings) + string_t token_buffer {}; + + /// a description of occurred lexer errors + const char* error_message = ""; + + // number values + number_integer_t value_integer = 0; + number_unsigned_t value_unsigned = 0; + number_float_t value_float = 0; + + /// the decimal point + const char_int_type decimal_point_char = '.'; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // size_t +#include // declval +#include // string + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +using null_function_t = decltype(std::declval().null()); + +template +using boolean_function_t = + decltype(std::declval().boolean(std::declval())); + +template +using number_integer_function_t = + decltype(std::declval().number_integer(std::declval())); + +template +using number_unsigned_function_t = + decltype(std::declval().number_unsigned(std::declval())); + +template +using number_float_function_t = decltype(std::declval().number_float( + std::declval(), std::declval())); + +template +using string_function_t = + decltype(std::declval().string(std::declval())); + +template +using binary_function_t = + decltype(std::declval().binary(std::declval())); + +template +using start_object_function_t = + decltype(std::declval().start_object(std::declval())); + +template +using key_function_t = + decltype(std::declval().key(std::declval())); + +template +using end_object_function_t = decltype(std::declval().end_object()); + +template +using start_array_function_t = + decltype(std::declval().start_array(std::declval())); + +template +using end_array_function_t = decltype(std::declval().end_array()); + +template +using parse_error_function_t = decltype(std::declval().parse_error( + std::declval(), std::declval(), + std::declval())); + +template +struct is_sax +{ + private: + static_assert(is_basic_json::value, + "BasicJsonType must be of type basic_json<...>"); + + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using exception_t = typename BasicJsonType::exception; + + public: + static constexpr bool value = + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value; +}; + +template +struct is_sax_static_asserts +{ + private: + static_assert(is_basic_json::value, + "BasicJsonType must be of type basic_json<...>"); + + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using exception_t = typename BasicJsonType::exception; + + public: + static_assert(is_detected_exact::value, + "Missing/invalid function: bool null()"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool boolean(bool)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool boolean(bool)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool number_integer(number_integer_t)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool number_unsigned(number_unsigned_t)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool number_float(number_float_t, const string_t&)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool string(string_t&)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool binary(binary_t&)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool start_object(std::size_t)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool key(string_t&)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool end_object()"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool start_array(std::size_t)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool end_array()"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool parse_error(std::size_t, const " + "std::string&, const exception&)"); +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ + +/// how to treat CBOR tags +enum class cbor_tag_handler_t +{ + error, ///< throw a parse_error exception in case of a tag + ignore, ///< ignore tags + store ///< store tags as binary type +}; + +/*! +@brief determine system byte order + +@return true if and only if system's byte order is little endian + +@note from https://stackoverflow.com/a/1001328/266378 +*/ +static inline bool little_endianess(int num = 1) noexcept +{ + return *reinterpret_cast(&num) == 1; +} + + +/////////////////// +// binary reader // +/////////////////// + +/*! +@brief deserialization of CBOR, MessagePack, and UBJSON values +*/ +template> +class binary_reader +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using json_sax_t = SAX; + using char_type = typename InputAdapterType::char_type; + using char_int_type = typename std::char_traits::int_type; + + public: + /*! + @brief create a binary reader + + @param[in] adapter input adapter to read from + */ + explicit binary_reader(InputAdapterType&& adapter) noexcept : ia(std::move(adapter)) + { + (void)detail::is_sax_static_asserts {}; + } + + // make class move-only + binary_reader(const binary_reader&) = delete; + binary_reader(binary_reader&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + binary_reader& operator=(const binary_reader&) = delete; + binary_reader& operator=(binary_reader&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~binary_reader() = default; + + /*! + @param[in] format the binary format to parse + @param[in] sax_ a SAX event processor + @param[in] strict whether to expect the input to be consumed completed + @param[in] tag_handler how to treat CBOR tags + + @return whether parsing was successful + */ + JSON_HEDLEY_NON_NULL(3) + bool sax_parse(const input_format_t format, + json_sax_t* sax_, + const bool strict = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + sax = sax_; + bool result = false; + + switch (format) + { + case input_format_t::bson: + result = parse_bson_internal(); + break; + + case input_format_t::cbor: + result = parse_cbor_internal(true, tag_handler); + break; + + case input_format_t::msgpack: + result = parse_msgpack_internal(); + break; + + case input_format_t::ubjson: + result = parse_ubjson_internal(); + break; + + case input_format_t::json: // LCOV_EXCL_LINE + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + + // strict mode: next byte must be EOF + if (result && strict) + { + if (format == input_format_t::ubjson) + { + get_ignore_noop(); + } + else + { + get(); + } + + if (JSON_HEDLEY_UNLIKELY(current != std::char_traits::eof())) + { + return sax->parse_error(chars_read, get_token_string(), + parse_error::create(110, chars_read, exception_message(format, "expected end of input; last byte: 0x" + get_token_string(), "value"), BasicJsonType())); + } + } + + return result; + } + + private: + ////////// + // BSON // + ////////// + + /*! + @brief Reads in a BSON-object and passes it to the SAX-parser. + @return whether a valid BSON-value was passed to the SAX parser + */ + bool parse_bson_internal() + { + std::int32_t document_size{}; + get_number(input_format_t::bson, document_size); + + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(std::size_t(-1)))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_list(/*is_array*/false))) + { + return false; + } + + return sax->end_object(); + } + + /*! + @brief Parses a C-style string from the BSON input. + @param[in,out] result A reference to the string variable where the read + string is to be stored. + @return `true` if the \x00-byte indicating the end of the string was + encountered before the EOF; false` indicates an unexpected EOF. + */ + bool get_bson_cstr(string_t& result) + { + auto out = std::back_inserter(result); + while (true) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::bson, "cstring"))) + { + return false; + } + if (current == 0x00) + { + return true; + } + *out++ = static_cast(current); + } + } + + /*! + @brief Parses a zero-terminated string of length @a len from the BSON + input. + @param[in] len The length (including the zero-byte at the end) of the + string to be read. + @param[in,out] result A reference to the string variable where the read + string is to be stored. + @tparam NumberType The type of the length @a len + @pre len >= 1 + @return `true` if the string was successfully parsed + */ + template + bool get_bson_string(const NumberType len, string_t& result) + { + if (JSON_HEDLEY_UNLIKELY(len < 1)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "string length must be at least 1, is " + std::to_string(len), "string"), BasicJsonType())); + } + + return get_string(input_format_t::bson, len - static_cast(1), result) && get() != std::char_traits::eof(); + } + + /*! + @brief Parses a byte array input of length @a len from the BSON input. + @param[in] len The length of the byte array to be read. + @param[in,out] result A reference to the binary variable where the read + array is to be stored. + @tparam NumberType The type of the length @a len + @pre len >= 0 + @return `true` if the byte array was successfully parsed + */ + template + bool get_bson_binary(const NumberType len, binary_t& result) + { + if (JSON_HEDLEY_UNLIKELY(len < 0)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "byte array length cannot be negative, is " + std::to_string(len), "binary"), BasicJsonType())); + } + + // All BSON binary values have a subtype + std::uint8_t subtype{}; + get_number(input_format_t::bson, subtype); + result.set_subtype(subtype); + + return get_binary(input_format_t::bson, len, result); + } + + /*! + @brief Read a BSON document element of the given @a element_type. + @param[in] element_type The BSON element type, c.f. http://bsonspec.org/spec.html + @param[in] element_type_parse_position The position in the input stream, + where the `element_type` was read. + @warning Not all BSON element types are supported yet. An unsupported + @a element_type will give rise to a parse_error.114: + Unsupported BSON record type 0x... + @return whether a valid BSON-object/array was passed to the SAX parser + */ + bool parse_bson_element_internal(const char_int_type element_type, + const std::size_t element_type_parse_position) + { + switch (element_type) + { + case 0x01: // double + { + double number{}; + return get_number(input_format_t::bson, number) && sax->number_float(static_cast(number), ""); + } + + case 0x02: // string + { + std::int32_t len{}; + string_t value; + return get_number(input_format_t::bson, len) && get_bson_string(len, value) && sax->string(value); + } + + case 0x03: // object + { + return parse_bson_internal(); + } + + case 0x04: // array + { + return parse_bson_array(); + } + + case 0x05: // binary + { + std::int32_t len{}; + binary_t value; + return get_number(input_format_t::bson, len) && get_bson_binary(len, value) && sax->binary(value); + } + + case 0x08: // boolean + { + return sax->boolean(get() != 0); + } + + case 0x0A: // null + { + return sax->null(); + } + + case 0x10: // int32 + { + std::int32_t value{}; + return get_number(input_format_t::bson, value) && sax->number_integer(value); + } + + case 0x12: // int64 + { + std::int64_t value{}; + return get_number(input_format_t::bson, value) && sax->number_integer(value); + } + + default: // anything else not supported (yet) + { + std::array cr{{}}; + (std::snprintf)(cr.data(), cr.size(), "%.2hhX", static_cast(element_type)); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + return sax->parse_error(element_type_parse_position, std::string(cr.data()), parse_error::create(114, element_type_parse_position, "Unsupported BSON record type 0x" + std::string(cr.data()), BasicJsonType())); + } + } + } + + /*! + @brief Read a BSON element list (as specified in the BSON-spec) + + The same binary layout is used for objects and arrays, hence it must be + indicated with the argument @a is_array which one is expected + (true --> array, false --> object). + + @param[in] is_array Determines if the element list being read is to be + treated as an object (@a is_array == false), or as an + array (@a is_array == true). + @return whether a valid BSON-object/array was passed to the SAX parser + */ + bool parse_bson_element_list(const bool is_array) + { + string_t key; + + while (auto element_type = get()) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::bson, "element list"))) + { + return false; + } + + const std::size_t element_type_parse_position = chars_read; + if (JSON_HEDLEY_UNLIKELY(!get_bson_cstr(key))) + { + return false; + } + + if (!is_array && !sax->key(key)) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_internal(element_type, element_type_parse_position))) + { + return false; + } + + // get_bson_cstr only appends + key.clear(); + } + + return true; + } + + /*! + @brief Reads an array from the BSON input and passes it to the SAX-parser. + @return whether a valid BSON-array was passed to the SAX parser + */ + bool parse_bson_array() + { + std::int32_t document_size{}; + get_number(input_format_t::bson, document_size); + + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(std::size_t(-1)))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_list(/*is_array*/true))) + { + return false; + } + + return sax->end_array(); + } + + ////////// + // CBOR // + ////////// + + /*! + @param[in] get_char whether a new character should be retrieved from the + input (true) or whether the last read character should + be considered instead (false) + @param[in] tag_handler how CBOR tags should be treated + + @return whether a valid CBOR value was passed to the SAX parser + */ + bool parse_cbor_internal(const bool get_char, + const cbor_tag_handler_t tag_handler) + { + switch (get_char ? get() : current) + { + // EOF + case std::char_traits::eof(): + return unexpect_eof(input_format_t::cbor, "value"); + + // Integer 0x00..0x17 (0..23) + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case 0x09: + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + return sax->number_unsigned(static_cast(current)); + + case 0x18: // Unsigned integer (one-byte uint8_t follows) + { + std::uint8_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + case 0x19: // Unsigned integer (two-byte uint16_t follows) + { + std::uint16_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + case 0x1A: // Unsigned integer (four-byte uint32_t follows) + { + std::uint32_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + case 0x1B: // Unsigned integer (eight-byte uint64_t follows) + { + std::uint64_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + // Negative integer -1-0x00..-1-0x17 (-1..-24) + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + return sax->number_integer(static_cast(0x20 - 1 - current)); + + case 0x38: // Negative integer (one-byte uint8_t follows) + { + std::uint8_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) - number); + } + + case 0x39: // Negative integer -1-n (two-byte uint16_t follows) + { + std::uint16_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) - number); + } + + case 0x3A: // Negative integer -1-n (four-byte uint32_t follows) + { + std::uint32_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) - number); + } + + case 0x3B: // Negative integer -1-n (eight-byte uint64_t follows) + { + std::uint64_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) + - static_cast(number)); + } + + // Binary data (0x00..0x17 bytes follow) + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: // Binary data (one-byte uint8_t for n follows) + case 0x59: // Binary data (two-byte uint16_t for n follow) + case 0x5A: // Binary data (four-byte uint32_t for n follow) + case 0x5B: // Binary data (eight-byte uint64_t for n follow) + case 0x5F: // Binary data (indefinite length) + { + binary_t b; + return get_cbor_binary(b) && sax->binary(b); + } + + // UTF-8 string (0x00..0x17 bytes follow) + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: // UTF-8 string (one-byte uint8_t for n follows) + case 0x79: // UTF-8 string (two-byte uint16_t for n follow) + case 0x7A: // UTF-8 string (four-byte uint32_t for n follow) + case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow) + case 0x7F: // UTF-8 string (indefinite length) + { + string_t s; + return get_cbor_string(s) && sax->string(s); + } + + // array (0x00..0x17 data items follow) + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x8E: + case 0x8F: + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + return get_cbor_array(static_cast(static_cast(current) & 0x1Fu), tag_handler); + + case 0x98: // array (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x99: // array (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x9A: // array (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x9B: // array (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(detail::conditional_static_cast(len), tag_handler); + } + + case 0x9F: // array (indefinite length) + return get_cbor_array(std::size_t(-1), tag_handler); + + // map (0x00..0x17 pairs of data items follow) + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + return get_cbor_object(static_cast(static_cast(current) & 0x1Fu), tag_handler); + + case 0xB8: // map (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xB9: // map (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xBA: // map (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xBB: // map (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(detail::conditional_static_cast(len), tag_handler); + } + + case 0xBF: // map (indefinite length) + return get_cbor_object(std::size_t(-1), tag_handler); + + case 0xC6: // tagged item + case 0xC7: + case 0xC8: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCC: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + case 0xD8: // tagged item (1 bytes follow) + case 0xD9: // tagged item (2 bytes follow) + case 0xDA: // tagged item (4 bytes follow) + case 0xDB: // tagged item (8 bytes follow) + { + switch (tag_handler) + { + case cbor_tag_handler_t::error: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::cbor, "invalid byte: 0x" + last_token, "value"), BasicJsonType())); + } + + case cbor_tag_handler_t::ignore: + { + // ignore binary subtype + switch (current) + { + case 0xD8: + { + std::uint8_t subtype_to_ignore{}; + get_number(input_format_t::cbor, subtype_to_ignore); + break; + } + case 0xD9: + { + std::uint16_t subtype_to_ignore{}; + get_number(input_format_t::cbor, subtype_to_ignore); + break; + } + case 0xDA: + { + std::uint32_t subtype_to_ignore{}; + get_number(input_format_t::cbor, subtype_to_ignore); + break; + } + case 0xDB: + { + std::uint64_t subtype_to_ignore{}; + get_number(input_format_t::cbor, subtype_to_ignore); + break; + } + default: + break; + } + return parse_cbor_internal(true, tag_handler); + } + + case cbor_tag_handler_t::store: + { + binary_t b; + // use binary subtype and store in binary container + switch (current) + { + case 0xD8: + { + std::uint8_t subtype{}; + get_number(input_format_t::cbor, subtype); + b.set_subtype(detail::conditional_static_cast(subtype)); + break; + } + case 0xD9: + { + std::uint16_t subtype{}; + get_number(input_format_t::cbor, subtype); + b.set_subtype(detail::conditional_static_cast(subtype)); + break; + } + case 0xDA: + { + std::uint32_t subtype{}; + get_number(input_format_t::cbor, subtype); + b.set_subtype(detail::conditional_static_cast(subtype)); + break; + } + case 0xDB: + { + std::uint64_t subtype{}; + get_number(input_format_t::cbor, subtype); + b.set_subtype(detail::conditional_static_cast(subtype)); + break; + } + default: + return parse_cbor_internal(true, tag_handler); + } + get(); + return get_cbor_binary(b) && sax->binary(b); + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + return false; // LCOV_EXCL_LINE + } + } + + case 0xF4: // false + return sax->boolean(false); + + case 0xF5: // true + return sax->boolean(true); + + case 0xF6: // null + return sax->null(); + + case 0xF9: // Half-Precision Float (two-byte IEEE 754) + { + const auto byte1_raw = get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "number"))) + { + return false; + } + const auto byte2_raw = get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "number"))) + { + return false; + } + + const auto byte1 = static_cast(byte1_raw); + const auto byte2 = static_cast(byte2_raw); + + // code from RFC 7049, Appendix D, Figure 3: + // As half-precision floating-point numbers were only added + // to IEEE 754 in 2008, today's programming platforms often + // still only have limited support for them. It is very + // easy to include at least decoding support for them even + // without such support. An example of a small decoder for + // half-precision floating-point numbers in the C language + // is shown in Fig. 3. + const auto half = static_cast((byte1 << 8u) + byte2); + const double val = [&half] + { + const int exp = (half >> 10u) & 0x1Fu; + const unsigned int mant = half & 0x3FFu; + JSON_ASSERT(0 <= exp&& exp <= 32); + JSON_ASSERT(mant <= 1024); + switch (exp) + { + case 0: + return std::ldexp(mant, -24); + case 31: + return (mant == 0) + ? std::numeric_limits::infinity() + : std::numeric_limits::quiet_NaN(); + default: + return std::ldexp(mant + 1024, exp - 25); + } + }(); + return sax->number_float((half & 0x8000u) != 0 + ? static_cast(-val) + : static_cast(val), ""); + } + + case 0xFA: // Single-Precision Float (four-byte IEEE 754) + { + float number{}; + return get_number(input_format_t::cbor, number) && sax->number_float(static_cast(number), ""); + } + + case 0xFB: // Double-Precision Float (eight-byte IEEE 754) + { + double number{}; + return get_number(input_format_t::cbor, number) && sax->number_float(static_cast(number), ""); + } + + default: // anything else (0xFF is handled inside the other types) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::cbor, "invalid byte: 0x" + last_token, "value"), BasicJsonType())); + } + } + } + + /*! + @brief reads a CBOR string + + This function first reads starting bytes to determine the expected + string length and then copies this number of bytes into a string. + Additionally, CBOR's strings with indefinite lengths are supported. + + @param[out] result created string + + @return whether string creation completed + */ + bool get_cbor_string(string_t& result) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "string"))) + { + return false; + } + + switch (current) + { + // UTF-8 string (0x00..0x17 bytes follow) + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + { + return get_string(input_format_t::cbor, static_cast(current) & 0x1Fu, result); + } + + case 0x78: // UTF-8 string (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x79: // UTF-8 string (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x7A: // UTF-8 string (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x7F: // UTF-8 string (indefinite length) + { + while (get() != 0xFF) + { + string_t chunk; + if (!get_cbor_string(chunk)) + { + return false; + } + result.append(chunk); + } + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::cbor, "expected length specification (0x60-0x7B) or indefinite string type (0x7F); last byte: 0x" + last_token, "string"), BasicJsonType())); + } + } + } + + /*! + @brief reads a CBOR byte array + + This function first reads starting bytes to determine the expected + byte array length and then copies this number of bytes into the byte array. + Additionally, CBOR's byte arrays with indefinite lengths are supported. + + @param[out] result created byte array + + @return whether byte array creation completed + */ + bool get_cbor_binary(binary_t& result) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "binary"))) + { + return false; + } + + switch (current) + { + // Binary data (0x00..0x17 bytes follow) + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + { + return get_binary(input_format_t::cbor, static_cast(current) & 0x1Fu, result); + } + + case 0x58: // Binary data (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x59: // Binary data (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x5A: // Binary data (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x5B: // Binary data (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x5F: // Binary data (indefinite length) + { + while (get() != 0xFF) + { + binary_t chunk; + if (!get_cbor_binary(chunk)) + { + return false; + } + result.insert(result.end(), chunk.begin(), chunk.end()); + } + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::cbor, "expected length specification (0x40-0x5B) or indefinite binary array type (0x5F); last byte: 0x" + last_token, "binary"), BasicJsonType())); + } + } + } + + /*! + @param[in] len the length of the array or std::size_t(-1) for an + array of indefinite size + @param[in] tag_handler how CBOR tags should be treated + @return whether array creation completed + */ + bool get_cbor_array(const std::size_t len, + const cbor_tag_handler_t tag_handler) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(len))) + { + return false; + } + + if (len != std::size_t(-1)) + { + for (std::size_t i = 0; i < len; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler))) + { + return false; + } + } + } + else + { + while (get() != 0xFF) + { + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(false, tag_handler))) + { + return false; + } + } + } + + return sax->end_array(); + } + + /*! + @param[in] len the length of the object or std::size_t(-1) for an + object of indefinite size + @param[in] tag_handler how CBOR tags should be treated + @return whether object creation completed + */ + bool get_cbor_object(const std::size_t len, + const cbor_tag_handler_t tag_handler) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(len))) + { + return false; + } + + if (len != 0) + { + string_t key; + if (len != std::size_t(-1)) + { + for (std::size_t i = 0; i < len; ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!get_cbor_string(key) || !sax->key(key))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler))) + { + return false; + } + key.clear(); + } + } + else + { + while (get() != 0xFF) + { + if (JSON_HEDLEY_UNLIKELY(!get_cbor_string(key) || !sax->key(key))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler))) + { + return false; + } + key.clear(); + } + } + } + + return sax->end_object(); + } + + ///////////// + // MsgPack // + ///////////// + + /*! + @return whether a valid MessagePack value was passed to the SAX parser + */ + bool parse_msgpack_internal() + { + switch (get()) + { + // EOF + case std::char_traits::eof(): + return unexpect_eof(input_format_t::msgpack, "value"); + + // positive fixint + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case 0x09: + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x5A: + case 0x5B: + case 0x5C: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + return sax->number_unsigned(static_cast(current)); + + // fixmap + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x8E: + case 0x8F: + return get_msgpack_object(static_cast(static_cast(current) & 0x0Fu)); + + // fixarray + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + case 0x98: + case 0x99: + case 0x9A: + case 0x9B: + case 0x9C: + case 0x9D: + case 0x9E: + case 0x9F: + return get_msgpack_array(static_cast(static_cast(current) & 0x0Fu)); + + // fixstr + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: + case 0xBD: + case 0xBE: + case 0xBF: + case 0xD9: // str 8 + case 0xDA: // str 16 + case 0xDB: // str 32 + { + string_t s; + return get_msgpack_string(s) && sax->string(s); + } + + case 0xC0: // nil + return sax->null(); + + case 0xC2: // false + return sax->boolean(false); + + case 0xC3: // true + return sax->boolean(true); + + case 0xC4: // bin 8 + case 0xC5: // bin 16 + case 0xC6: // bin 32 + case 0xC7: // ext 8 + case 0xC8: // ext 16 + case 0xC9: // ext 32 + case 0xD4: // fixext 1 + case 0xD5: // fixext 2 + case 0xD6: // fixext 4 + case 0xD7: // fixext 8 + case 0xD8: // fixext 16 + { + binary_t b; + return get_msgpack_binary(b) && sax->binary(b); + } + + case 0xCA: // float 32 + { + float number{}; + return get_number(input_format_t::msgpack, number) && sax->number_float(static_cast(number), ""); + } + + case 0xCB: // float 64 + { + double number{}; + return get_number(input_format_t::msgpack, number) && sax->number_float(static_cast(number), ""); + } + + case 0xCC: // uint 8 + { + std::uint8_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xCD: // uint 16 + { + std::uint16_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xCE: // uint 32 + { + std::uint32_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xCF: // uint 64 + { + std::uint64_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xD0: // int 8 + { + std::int8_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xD1: // int 16 + { + std::int16_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xD2: // int 32 + { + std::int32_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xD3: // int 64 + { + std::int64_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xDC: // array 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_array(static_cast(len)); + } + + case 0xDD: // array 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_array(static_cast(len)); + } + + case 0xDE: // map 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_object(static_cast(len)); + } + + case 0xDF: // map 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_object(static_cast(len)); + } + + // negative fixint + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xED: + case 0xEE: + case 0xEF: + case 0xF0: + case 0xF1: + case 0xF2: + case 0xF3: + case 0xF4: + case 0xF5: + case 0xF6: + case 0xF7: + case 0xF8: + case 0xF9: + case 0xFA: + case 0xFB: + case 0xFC: + case 0xFD: + case 0xFE: + case 0xFF: + return sax->number_integer(static_cast(current)); + + default: // anything else + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::msgpack, "invalid byte: 0x" + last_token, "value"), BasicJsonType())); + } + } + } + + /*! + @brief reads a MessagePack string + + This function first reads starting bytes to determine the expected + string length and then copies this number of bytes into a string. + + @param[out] result created string + + @return whether string creation completed + */ + bool get_msgpack_string(string_t& result) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::msgpack, "string"))) + { + return false; + } + + switch (current) + { + // fixstr + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: + case 0xBD: + case 0xBE: + case 0xBF: + { + return get_string(input_format_t::msgpack, static_cast(current) & 0x1Fu, result); + } + + case 0xD9: // str 8 + { + std::uint8_t len{}; + return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result); + } + + case 0xDA: // str 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result); + } + + case 0xDB: // str 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result); + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::msgpack, "expected length specification (0xA0-0xBF, 0xD9-0xDB); last byte: 0x" + last_token, "string"), BasicJsonType())); + } + } + } + + /*! + @brief reads a MessagePack byte array + + This function first reads starting bytes to determine the expected + byte array length and then copies this number of bytes into a byte array. + + @param[out] result created byte array + + @return whether byte array creation completed + */ + bool get_msgpack_binary(binary_t& result) + { + // helper function to set the subtype + auto assign_and_return_true = [&result](std::int8_t subtype) + { + result.set_subtype(static_cast(subtype)); + return true; + }; + + switch (current) + { + case 0xC4: // bin 8 + { + std::uint8_t len{}; + return get_number(input_format_t::msgpack, len) && + get_binary(input_format_t::msgpack, len, result); + } + + case 0xC5: // bin 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && + get_binary(input_format_t::msgpack, len, result); + } + + case 0xC6: // bin 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && + get_binary(input_format_t::msgpack, len, result); + } + + case 0xC7: // ext 8 + { + std::uint8_t len{}; + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, len) && + get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, len, result) && + assign_and_return_true(subtype); + } + + case 0xC8: // ext 16 + { + std::uint16_t len{}; + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, len) && + get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, len, result) && + assign_and_return_true(subtype); + } + + case 0xC9: // ext 32 + { + std::uint32_t len{}; + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, len) && + get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, len, result) && + assign_and_return_true(subtype); + } + + case 0xD4: // fixext 1 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 1, result) && + assign_and_return_true(subtype); + } + + case 0xD5: // fixext 2 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 2, result) && + assign_and_return_true(subtype); + } + + case 0xD6: // fixext 4 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 4, result) && + assign_and_return_true(subtype); + } + + case 0xD7: // fixext 8 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 8, result) && + assign_and_return_true(subtype); + } + + case 0xD8: // fixext 16 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 16, result) && + assign_and_return_true(subtype); + } + + default: // LCOV_EXCL_LINE + return false; // LCOV_EXCL_LINE + } + } + + /*! + @param[in] len the length of the array + @return whether array creation completed + */ + bool get_msgpack_array(const std::size_t len) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(len))) + { + return false; + } + + for (std::size_t i = 0; i < len; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!parse_msgpack_internal())) + { + return false; + } + } + + return sax->end_array(); + } + + /*! + @param[in] len the length of the object + @return whether object creation completed + */ + bool get_msgpack_object(const std::size_t len) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(len))) + { + return false; + } + + string_t key; + for (std::size_t i = 0; i < len; ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!get_msgpack_string(key) || !sax->key(key))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_msgpack_internal())) + { + return false; + } + key.clear(); + } + + return sax->end_object(); + } + + //////////// + // UBJSON // + //////////// + + /*! + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether a valid UBJSON value was passed to the SAX parser + */ + bool parse_ubjson_internal(const bool get_char = true) + { + return get_ubjson_value(get_char ? get_ignore_noop() : current); + } + + /*! + @brief reads a UBJSON string + + This function is either called after reading the 'S' byte explicitly + indicating a string, or in case of an object key where the 'S' byte can be + left out. + + @param[out] result created string + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether string creation completed + */ + bool get_ubjson_string(string_t& result, const bool get_char = true) + { + if (get_char) + { + get(); // TODO(niels): may we ignore N here? + } + + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "value"))) + { + return false; + } + + switch (current) + { + case 'U': + { + std::uint8_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'i': + { + std::int8_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'I': + { + std::int16_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'l': + { + std::int32_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'L': + { + std::int64_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + default: + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "expected length type specification (U, i, I, l, L); last byte: 0x" + last_token, "string"), BasicJsonType())); + } + } + + /*! + @param[out] result determined size + @return whether size determination completed + */ + bool get_ubjson_size_value(std::size_t& result) + { + switch (get_ignore_noop()) + { + case 'U': + { + std::uint8_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'i': + { + std::int8_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); // NOLINT(bugprone-signed-char-misuse,cert-str34-c): number is not a char + return true; + } + + case 'I': + { + std::int16_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'l': + { + std::int32_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'L': + { + std::int64_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "expected length type specification (U, i, I, l, L) after '#'; last byte: 0x" + last_token, "size"), BasicJsonType())); + } + } + } + + /*! + @brief determine the type and size for a container + + In the optimized UBJSON format, a type and a size can be provided to allow + for a more compact representation. + + @param[out] result pair of the size and the type + + @return whether pair creation completed + */ + bool get_ubjson_size_type(std::pair& result) + { + result.first = string_t::npos; // size + result.second = 0; // type + + get_ignore_noop(); + + if (current == '$') + { + result.second = get(); // must not ignore 'N', because 'N' maybe the type + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "type"))) + { + return false; + } + + get_ignore_noop(); + if (JSON_HEDLEY_UNLIKELY(current != '#')) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "value"))) + { + return false; + } + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::ubjson, "expected '#' after type information; last byte: 0x" + last_token, "size"), BasicJsonType())); + } + + return get_ubjson_size_value(result.first); + } + + if (current == '#') + { + return get_ubjson_size_value(result.first); + } + + return true; + } + + /*! + @param prefix the previously read or set type prefix + @return whether value creation completed + */ + bool get_ubjson_value(const char_int_type prefix) + { + switch (prefix) + { + case std::char_traits::eof(): // EOF + return unexpect_eof(input_format_t::ubjson, "value"); + + case 'T': // true + return sax->boolean(true); + case 'F': // false + return sax->boolean(false); + + case 'Z': // null + return sax->null(); + + case 'U': + { + std::uint8_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_unsigned(number); + } + + case 'i': + { + std::int8_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'I': + { + std::int16_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'l': + { + std::int32_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'L': + { + std::int64_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'd': + { + float number{}; + return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast(number), ""); + } + + case 'D': + { + double number{}; + return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast(number), ""); + } + + case 'H': + { + return get_ubjson_high_precision_number(); + } + + case 'C': // char + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "char"))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(current > 127)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "byte after 'C' must be in range 0x00..0x7F; last byte: 0x" + last_token, "char"), BasicJsonType())); + } + string_t s(1, static_cast(current)); + return sax->string(s); + } + + case 'S': // string + { + string_t s; + return get_ubjson_string(s) && sax->string(s); + } + + case '[': // array + return get_ubjson_array(); + + case '{': // object + return get_ubjson_object(); + + default: // anything else + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::ubjson, "invalid byte: 0x" + last_token, "value"), BasicJsonType())); + } + } + } + + /*! + @return whether array creation completed + */ + bool get_ubjson_array() + { + std::pair size_and_type; + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type))) + { + return false; + } + + if (size_and_type.first != string_t::npos) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(size_and_type.first))) + { + return false; + } + + if (size_and_type.second != 0) + { + if (size_and_type.second != 'N') + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second))) + { + return false; + } + } + } + } + else + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal())) + { + return false; + } + } + } + } + else + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(std::size_t(-1)))) + { + return false; + } + + while (current != ']') + { + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal(false))) + { + return false; + } + get_ignore_noop(); + } + } + + return sax->end_array(); + } + + /*! + @return whether object creation completed + */ + bool get_ubjson_object() + { + std::pair size_and_type; + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type))) + { + return false; + } + + string_t key; + if (size_and_type.first != string_t::npos) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(size_and_type.first))) + { + return false; + } + + if (size_and_type.second != 0) + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key) || !sax->key(key))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second))) + { + return false; + } + key.clear(); + } + } + else + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key) || !sax->key(key))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal())) + { + return false; + } + key.clear(); + } + } + } + else + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(std::size_t(-1)))) + { + return false; + } + + while (current != '}') + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key, false) || !sax->key(key))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal())) + { + return false; + } + get_ignore_noop(); + key.clear(); + } + } + + return sax->end_object(); + } + + // Note, no reader for UBJSON binary types is implemented because they do + // not exist + + bool get_ubjson_high_precision_number() + { + // get size of following number string + std::size_t size{}; + auto res = get_ubjson_size_value(size); + if (JSON_HEDLEY_UNLIKELY(!res)) + { + return res; + } + + // get number string + std::vector number_vector; + for (std::size_t i = 0; i < size; ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "number"))) + { + return false; + } + number_vector.push_back(static_cast(current)); + } + + // parse number string + using ia_type = decltype(detail::input_adapter(number_vector)); + auto number_lexer = detail::lexer(detail::input_adapter(number_vector), false); + const auto result_number = number_lexer.scan(); + const auto number_string = number_lexer.get_token_string(); + const auto result_remainder = number_lexer.scan(); + + using token_type = typename detail::lexer_base::token_type; + + if (JSON_HEDLEY_UNLIKELY(result_remainder != token_type::end_of_input)) + { + return sax->parse_error(chars_read, number_string, parse_error::create(115, chars_read, exception_message(input_format_t::ubjson, "invalid number text: " + number_lexer.get_token_string(), "high-precision number"), BasicJsonType())); + } + + switch (result_number) + { + case token_type::value_integer: + return sax->number_integer(number_lexer.get_number_integer()); + case token_type::value_unsigned: + return sax->number_unsigned(number_lexer.get_number_unsigned()); + case token_type::value_float: + return sax->number_float(number_lexer.get_number_float(), std::move(number_string)); + case token_type::uninitialized: + case token_type::literal_true: + case token_type::literal_false: + case token_type::literal_null: + case token_type::value_string: + case token_type::begin_array: + case token_type::begin_object: + case token_type::end_array: + case token_type::end_object: + case token_type::name_separator: + case token_type::value_separator: + case token_type::parse_error: + case token_type::end_of_input: + case token_type::literal_or_value: + default: + return sax->parse_error(chars_read, number_string, parse_error::create(115, chars_read, exception_message(input_format_t::ubjson, "invalid number text: " + number_lexer.get_token_string(), "high-precision number"), BasicJsonType())); + } + } + + /////////////////////// + // Utility functions // + /////////////////////// + + /*! + @brief get next character from the input + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a -'ve valued + `std::char_traits::eof()` in that case. + + @return character read from the input + */ + char_int_type get() + { + ++chars_read; + return current = ia.get_character(); + } + + /*! + @return character read from the input after ignoring all 'N' entries + */ + char_int_type get_ignore_noop() + { + do + { + get(); + } + while (current == 'N'); + + return current; + } + + /* + @brief read a number from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[out] result number of type @a NumberType + + @return whether conversion completed + + @note This function needs to respect the system's endianess, because + bytes in CBOR, MessagePack, and UBJSON are stored in network order + (big endian) and therefore need reordering on little endian systems. + */ + template + bool get_number(const input_format_t format, NumberType& result) + { + // step 1: read input into array with system's byte order + std::array vec{}; + for (std::size_t i = 0; i < sizeof(NumberType); ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number"))) + { + return false; + } + + // reverse byte order prior to conversion if necessary + if (is_little_endian != InputIsLittleEndian) + { + vec[sizeof(NumberType) - i - 1] = static_cast(current); + } + else + { + vec[i] = static_cast(current); // LCOV_EXCL_LINE + } + } + + // step 2: convert array into number of type T and return + std::memcpy(&result, vec.data(), sizeof(NumberType)); + return true; + } + + /*! + @brief create a string by reading characters from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[in] len number of characters to read + @param[out] result string created by reading @a len bytes + + @return whether string creation completed + + @note We can not reserve @a len bytes for the result, because @a len + may be too large. Usually, @ref unexpect_eof() detects the end of + the input before we run out of string memory. + */ + template + bool get_string(const input_format_t format, + const NumberType len, + string_t& result) + { + bool success = true; + for (NumberType i = 0; i < len; i++) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "string"))) + { + success = false; + break; + } + result.push_back(static_cast(current)); + } + return success; + } + + /*! + @brief create a byte array by reading bytes from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[in] len number of bytes to read + @param[out] result byte array created by reading @a len bytes + + @return whether byte array creation completed + + @note We can not reserve @a len bytes for the result, because @a len + may be too large. Usually, @ref unexpect_eof() detects the end of + the input before we run out of memory. + */ + template + bool get_binary(const input_format_t format, + const NumberType len, + binary_t& result) + { + bool success = true; + for (NumberType i = 0; i < len; i++) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "binary"))) + { + success = false; + break; + } + result.push_back(static_cast(current)); + } + return success; + } + + /*! + @param[in] format the current format (for diagnostics) + @param[in] context further context information (for diagnostics) + @return whether the last read character is not EOF + */ + JSON_HEDLEY_NON_NULL(3) + bool unexpect_eof(const input_format_t format, const char* context) const + { + if (JSON_HEDLEY_UNLIKELY(current == std::char_traits::eof())) + { + return sax->parse_error(chars_read, "", + parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), BasicJsonType())); + } + return true; + } + + /*! + @return a string representation of the last read byte + */ + std::string get_token_string() const + { + std::array cr{{}}; + (std::snprintf)(cr.data(), cr.size(), "%.2hhX", static_cast(current)); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + return std::string{cr.data()}; + } + + /*! + @param[in] format the current format + @param[in] detail a detailed error message + @param[in] context further context information + @return a message string to use in the parse_error exceptions + */ + std::string exception_message(const input_format_t format, + const std::string& detail, + const std::string& context) const + { + std::string error_msg = "syntax error while parsing "; + + switch (format) + { + case input_format_t::cbor: + error_msg += "CBOR"; + break; + + case input_format_t::msgpack: + error_msg += "MessagePack"; + break; + + case input_format_t::ubjson: + error_msg += "UBJSON"; + break; + + case input_format_t::bson: + error_msg += "BSON"; + break; + + case input_format_t::json: // LCOV_EXCL_LINE + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + + return error_msg + " " + context + ": " + detail; + } + + private: + /// input adapter + InputAdapterType ia; + + /// the current character + char_int_type current = std::char_traits::eof(); + + /// the number of characters read + std::size_t chars_read = 0; + + /// whether we can assume little endianess + const bool is_little_endian = little_endianess(); + + /// the SAX parser + json_sax_t* sax = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + + +#include // isfinite +#include // uint8_t +#include // function +#include // string +#include // move +#include // vector + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +//////////// +// parser // +//////////// + +enum class parse_event_t : std::uint8_t +{ + /// the parser read `{` and started to process a JSON object + object_start, + /// the parser read `}` and finished processing a JSON object + object_end, + /// the parser read `[` and started to process a JSON array + array_start, + /// the parser read `]` and finished processing a JSON array + array_end, + /// the parser read a key of a value in an object + key, + /// the parser finished reading a JSON value + value +}; + +template +using parser_callback_t = + std::function; + +/*! +@brief syntax analysis + +This class implements a recursive descent parser. +*/ +template +class parser +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using lexer_t = lexer; + using token_type = typename lexer_t::token_type; + + public: + /// a parser reading from an input adapter + explicit parser(InputAdapterType&& adapter, + const parser_callback_t cb = nullptr, + const bool allow_exceptions_ = true, + const bool skip_comments = false) + : callback(cb) + , m_lexer(std::move(adapter), skip_comments) + , allow_exceptions(allow_exceptions_) + { + // read first token + get_token(); + } + + /*! + @brief public parser interface + + @param[in] strict whether to expect the last token to be EOF + @param[in,out] result parsed JSON value + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + */ + void parse(const bool strict, BasicJsonType& result) + { + if (callback) + { + json_sax_dom_callback_parser sdp(result, callback, allow_exceptions); + sax_parse_internal(&sdp); + + // in strict mode, input must be completely read + if (strict && (get_token() != token_type::end_of_input)) + { + sdp.parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"), BasicJsonType())); + } + + // in case of an error, return discarded value + if (sdp.is_errored()) + { + result = value_t::discarded; + return; + } + + // set top-level value to null if it was discarded by the callback + // function + if (result.is_discarded()) + { + result = nullptr; + } + } + else + { + json_sax_dom_parser sdp(result, allow_exceptions); + sax_parse_internal(&sdp); + + // in strict mode, input must be completely read + if (strict && (get_token() != token_type::end_of_input)) + { + sdp.parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_of_input, "value"), BasicJsonType())); + } + + // in case of an error, return discarded value + if (sdp.is_errored()) + { + result = value_t::discarded; + return; + } + } + + result.assert_invariant(); + } + + /*! + @brief public accept interface + + @param[in] strict whether to expect the last token to be EOF + @return whether the input is a proper JSON text + */ + bool accept(const bool strict = true) + { + json_sax_acceptor sax_acceptor; + return sax_parse(&sax_acceptor, strict); + } + + template + JSON_HEDLEY_NON_NULL(2) + bool sax_parse(SAX* sax, const bool strict = true) + { + (void)detail::is_sax_static_asserts {}; + const bool result = sax_parse_internal(sax); + + // strict mode: next byte must be EOF + if (result && strict && (get_token() != token_type::end_of_input)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_of_input, "value"), BasicJsonType())); + } + + return result; + } + + private: + template + JSON_HEDLEY_NON_NULL(2) + bool sax_parse_internal(SAX* sax) + { + // stack to remember the hierarchy of structured values we are parsing + // true = array; false = object + std::vector states; + // value to avoid a goto (see comment where set to true) + bool skip_to_state_evaluation = false; + + while (true) + { + if (!skip_to_state_evaluation) + { + // invariant: get_token() was called before each iteration + switch (last_token) + { + case token_type::begin_object: + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(std::size_t(-1)))) + { + return false; + } + + // closing } -> we are done + if (get_token() == token_type::end_object) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_object())) + { + return false; + } + break; + } + + // parse key + if (JSON_HEDLEY_UNLIKELY(last_token != token_type::value_string)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::value_string, "object key"), BasicJsonType())); + } + if (JSON_HEDLEY_UNLIKELY(!sax->key(m_lexer.get_string()))) + { + return false; + } + + // parse separator (:) + if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::name_separator)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::name_separator, "object separator"), BasicJsonType())); + } + + // remember we are now inside an object + states.push_back(false); + + // parse values + get_token(); + continue; + } + + case token_type::begin_array: + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(std::size_t(-1)))) + { + return false; + } + + // closing ] -> we are done + if (get_token() == token_type::end_array) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_array())) + { + return false; + } + break; + } + + // remember we are now inside an array + states.push_back(true); + + // parse values (no need to call get_token) + continue; + } + + case token_type::value_float: + { + const auto res = m_lexer.get_number_float(); + + if (JSON_HEDLEY_UNLIKELY(!std::isfinite(res))) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + out_of_range::create(406, "number overflow parsing '" + m_lexer.get_token_string() + "'", BasicJsonType())); + } + + if (JSON_HEDLEY_UNLIKELY(!sax->number_float(res, m_lexer.get_string()))) + { + return false; + } + + break; + } + + case token_type::literal_false: + { + if (JSON_HEDLEY_UNLIKELY(!sax->boolean(false))) + { + return false; + } + break; + } + + case token_type::literal_null: + { + if (JSON_HEDLEY_UNLIKELY(!sax->null())) + { + return false; + } + break; + } + + case token_type::literal_true: + { + if (JSON_HEDLEY_UNLIKELY(!sax->boolean(true))) + { + return false; + } + break; + } + + case token_type::value_integer: + { + if (JSON_HEDLEY_UNLIKELY(!sax->number_integer(m_lexer.get_number_integer()))) + { + return false; + } + break; + } + + case token_type::value_string: + { + if (JSON_HEDLEY_UNLIKELY(!sax->string(m_lexer.get_string()))) + { + return false; + } + break; + } + + case token_type::value_unsigned: + { + if (JSON_HEDLEY_UNLIKELY(!sax->number_unsigned(m_lexer.get_number_unsigned()))) + { + return false; + } + break; + } + + case token_type::parse_error: + { + // using "uninitialized" to avoid "expected" message + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::uninitialized, "value"), BasicJsonType())); + } + + case token_type::uninitialized: + case token_type::end_array: + case token_type::end_object: + case token_type::name_separator: + case token_type::value_separator: + case token_type::end_of_input: + case token_type::literal_or_value: + default: // the last token was unexpected + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::literal_or_value, "value"), BasicJsonType())); + } + } + } + else + { + skip_to_state_evaluation = false; + } + + // we reached this line after we successfully parsed a value + if (states.empty()) + { + // empty stack: we reached the end of the hierarchy: done + return true; + } + + if (states.back()) // array + { + // comma -> next value + if (get_token() == token_type::value_separator) + { + // parse a new value + get_token(); + continue; + } + + // closing ] + if (JSON_HEDLEY_LIKELY(last_token == token_type::end_array)) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_array())) + { + return false; + } + + // We are done with this array. Before we can parse a + // new value, we need to evaluate the new state first. + // By setting skip_to_state_evaluation to false, we + // are effectively jumping to the beginning of this if. + JSON_ASSERT(!states.empty()); + states.pop_back(); + skip_to_state_evaluation = true; + continue; + } + + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_array, "array"), BasicJsonType())); + } + + // states.back() is false -> object + + // comma -> next value + if (get_token() == token_type::value_separator) + { + // parse key + if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::value_string)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::value_string, "object key"), BasicJsonType())); + } + + if (JSON_HEDLEY_UNLIKELY(!sax->key(m_lexer.get_string()))) + { + return false; + } + + // parse separator (:) + if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::name_separator)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::name_separator, "object separator"), BasicJsonType())); + } + + // parse values + get_token(); + continue; + } + + // closing } + if (JSON_HEDLEY_LIKELY(last_token == token_type::end_object)) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_object())) + { + return false; + } + + // We are done with this object. Before we can parse a + // new value, we need to evaluate the new state first. + // By setting skip_to_state_evaluation to false, we + // are effectively jumping to the beginning of this if. + JSON_ASSERT(!states.empty()); + states.pop_back(); + skip_to_state_evaluation = true; + continue; + } + + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_object, "object"), BasicJsonType())); + } + } + + /// get next token from lexer + token_type get_token() + { + return last_token = m_lexer.scan(); + } + + std::string exception_message(const token_type expected, const std::string& context) + { + std::string error_msg = "syntax error "; + + if (!context.empty()) + { + error_msg += "while parsing " + context + " "; + } + + error_msg += "- "; + + if (last_token == token_type::parse_error) + { + error_msg += std::string(m_lexer.get_error_message()) + "; last read: '" + + m_lexer.get_token_string() + "'"; + } + else + { + error_msg += "unexpected " + std::string(lexer_t::token_type_name(last_token)); + } + + if (expected != token_type::uninitialized) + { + error_msg += "; expected " + std::string(lexer_t::token_type_name(expected)); + } + + return error_msg; + } + + private: + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + token_type last_token = token_type::uninitialized; + /// the lexer + lexer_t m_lexer; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; +}; + +} // namespace detail +} // namespace nlohmann + +// #include + + +// #include + + +#include // ptrdiff_t +#include // numeric_limits + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/* +@brief an iterator for primitive JSON types + +This class models an iterator for primitive JSON types (boolean, number, +string). It's only purpose is to allow the iterator/const_iterator classes +to "iterate" over primitive values. Internally, the iterator is modeled by +a `difference_type` variable. Value begin_value (`0`) models the begin, +end_value (`1`) models past the end. +*/ +class primitive_iterator_t +{ + private: + using difference_type = std::ptrdiff_t; + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; + + JSON_PRIVATE_UNLESS_TESTED: + /// iterator as signed integer type + difference_type m_it = (std::numeric_limits::min)(); + + public: + constexpr difference_type get_value() const noexcept + { + return m_it; + } + + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } + + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } + + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return m_it == begin_value; + } + + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return m_it == end_value; + } + + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } + + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } + + primitive_iterator_t operator+(difference_type n) noexcept + { + auto result = *this; + result += n; + return result; + } + + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } + + primitive_iterator_t& operator++() noexcept + { + ++m_it; + return *this; + } + + primitive_iterator_t const operator++(int) noexcept // NOLINT(readability-const-return-type) + { + auto result = *this; + ++m_it; + return result; + } + + primitive_iterator_t& operator--() noexcept + { + --m_it; + return *this; + } + + primitive_iterator_t const operator--(int) noexcept // NOLINT(readability-const-return-type) + { + auto result = *this; + --m_it; + return result; + } + + primitive_iterator_t& operator+=(difference_type n) noexcept + { + m_it += n; + return *this; + } + + primitive_iterator_t& operator-=(difference_type n) noexcept + { + m_it -= n; + return *this; + } +}; +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +/*! +@brief an iterator value + +@note This structure could easily be a union, but MSVC currently does not allow +unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. +*/ +template struct internal_iterator +{ + /// iterator for JSON objects + typename BasicJsonType::object_t::iterator object_iterator {}; + /// iterator for JSON arrays + typename BasicJsonType::array_t::iterator array_iterator {}; + /// generic iterator for all other types + primitive_iterator_t primitive_iterator {}; +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // iterator, random_access_iterator_tag, bidirectional_iterator_tag, advance, next +#include // conditional, is_const, remove_const + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +// forward declare, to be able to friend it later on +template class iteration_proxy; +template class iteration_proxy_value; + +/*! +@brief a template for a bidirectional iterator for the @ref basic_json class +This class implements a both iterators (iterator and const_iterator) for the +@ref basic_json class. +@note An iterator is called *initialized* when a pointer to a JSON value has + been set (e.g., by a constructor or a copy assignment). If the iterator is + default-constructed, it is *uninitialized* and most methods are undefined. + **The library uses assertions to detect calls on uninitialized iterators.** +@requirement The class satisfies the following concept requirements: +- +[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator): + The iterator that can be moved can be moved in both directions (i.e. + incremented and decremented). +@since version 1.0.0, simplified in version 2.0.9, change to bidirectional + iterators in version 3.0.0 (see https://github.com/nlohmann/json/issues/593) +*/ +template +class iter_impl +{ + /// the iterator with BasicJsonType of different const-ness + using other_iter_impl = iter_impl::value, typename std::remove_const::type, const BasicJsonType>::type>; + /// allow basic_json to access private members + friend other_iter_impl; + friend BasicJsonType; + friend iteration_proxy; + friend iteration_proxy_value; + + using object_t = typename BasicJsonType::object_t; + using array_t = typename BasicJsonType::array_t; + // make sure BasicJsonType is basic_json or const basic_json + static_assert(is_basic_json::type>::value, + "iter_impl only accepts (const) basic_json"); + + public: + + /// The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. + /// The C++ Standard has never required user-defined iterators to derive from std::iterator. + /// A user-defined iterator should provide publicly accessible typedefs named + /// iterator_category, value_type, difference_type, pointer, and reference. + /// Note that value_type is required to be non-const, even for constant iterators. + using iterator_category = std::bidirectional_iterator_tag; + + /// the type of the values when the iterator is dereferenced + using value_type = typename BasicJsonType::value_type; + /// a type to represent differences between iterators + using difference_type = typename BasicJsonType::difference_type; + /// defines a pointer to the type iterated over (value_type) + using pointer = typename std::conditional::value, + typename BasicJsonType::const_pointer, + typename BasicJsonType::pointer>::type; + /// defines a reference to the type iterated over (value_type) + using reference = + typename std::conditional::value, + typename BasicJsonType::const_reference, + typename BasicJsonType::reference>::type; + + iter_impl() = default; + ~iter_impl() = default; + iter_impl(iter_impl&&) noexcept = default; + iter_impl& operator=(iter_impl&&) noexcept = default; + + /*! + @brief constructor for a given JSON instance + @param[in] object pointer to a JSON object for this iterator + @pre object != nullptr + @post The iterator is initialized; i.e. `m_object != nullptr`. + */ + explicit iter_impl(pointer object) noexcept : m_object(object) + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = typename object_t::iterator(); + break; + } + + case value_t::array: + { + m_it.array_iterator = typename array_t::iterator(); + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; + } + } + } + + /*! + @note The conventional copy constructor and copy assignment are implicitly + defined. Combined with the following converting constructor and + assignment, they support: (1) copy from iterator to iterator, (2) + copy from const iterator to const iterator, and (3) conversion from + iterator to const iterator. However conversion from const iterator + to iterator is not defined. + */ + + /*! + @brief const copy constructor + @param[in] other const iterator to copy from + @note This copy constructor had to be defined explicitly to circumvent a bug + occurring on msvc v19.0 compiler (VS 2015) debug build. For more + information refer to: https://github.com/nlohmann/json/issues/1608 + */ + iter_impl(const iter_impl& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief converting assignment + @param[in] other const iterator to copy from + @return const/non-const iterator + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(const iter_impl& other) noexcept + { + if (&other != this) + { + m_object = other.m_object; + m_it = other.m_it; + } + return *this; + } + + /*! + @brief converting constructor + @param[in] other non-const iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl::type>& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief converting assignment + @param[in] other non-const iterator to copy from + @return const/non-const iterator + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(const iter_impl::type>& other) noexcept // NOLINT(cert-oop54-cpp) + { + m_object = other.m_object; + m_it = other.m_it; + return *this; + } + + JSON_PRIVATE_UNLESS_TESTED: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } + + case value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } + + case value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + JSON_ASSERT(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case value_t::array: + { + JSON_ASSERT(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case value_t::null: + JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object)); + + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin())) + { + return *m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object)); + } + } + } + + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + JSON_ASSERT(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } + + case value_t::array: + { + JSON_ASSERT(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin())) + { + return m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object)); + } + } + } + + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl const operator++(int) // NOLINT(readability-const-return-type) + { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + ++m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl const operator--(int) // NOLINT(readability-const-return-type) + { + auto result = *this; + --(*this); + return result; + } + + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + std::advance(m_it.object_iterator, -1); + break; + } + + case value_t::array: + { + std::advance(m_it.array_iterator, -1); + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + --m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > + bool operator==(const IterImpl& other) const + { + // if objects are not the same, the comparison is undefined + if (JSON_HEDLEY_UNLIKELY(m_object != other.m_object)) + { + JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", *m_object)); + } + + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + return (m_it.object_iterator == other.m_it.object_iterator); + + case value_t::array: + return (m_it.array_iterator == other.m_it.array_iterator); + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } + } + + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > + bool operator!=(const IterImpl& other) const + { + return !operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (JSON_HEDLEY_UNLIKELY(m_object != other.m_object)) + { + JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", *m_object)); + } + + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(213, "cannot compare order of object iterators", *m_object)); + + case value_t::array: + return (m_it.array_iterator < other.m_it.array_iterator); + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + return (m_it.primitive_iterator < other.m_it.primitive_iterator); + } + } + + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const + { + return !other.operator < (*this); + } + + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return !operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return !operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators", *m_object)); + + case value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief addition of distance and iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + friend iter_impl operator+(difference_type i, const iter_impl& it) + { + auto result = it; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators", *m_object)); + + case value_t::array: + return m_it.array_iterator - other.m_it.array_iterator; + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + return m_it.primitive_iterator - other.m_it.primitive_iterator; + } + } + + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(208, "cannot use operator[] for object iterators", *m_object)); + + case value_t::array: + return *std::next(m_it.array_iterator, n); + + case value_t::null: + JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object)); + + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.get_value() == -n)) + { + return *m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object)); + } + } + } + + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + const typename object_t::key_type& key() const + { + JSON_ASSERT(m_object != nullptr); + + if (JSON_HEDLEY_LIKELY(m_object->is_object())) + { + return m_it.object_iterator->first; + } + + JSON_THROW(invalid_iterator::create(207, "cannot use key() for non-object iterators", *m_object)); + } + + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } + + JSON_PRIVATE_UNLESS_TESTED: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator::type> m_it {}; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // ptrdiff_t +#include // reverse_iterator +#include // declval + +namespace nlohmann +{ +namespace detail +{ +////////////////////// +// reverse_iterator // +////////////////////// + +/*! +@brief a template for a reverse iterator class + +@tparam Base the base iterator type to reverse. Valid types are @ref +iterator (to create @ref reverse_iterator) and @ref const_iterator (to +create @ref const_reverse_iterator). + +@requirement The class satisfies the following concept requirements: +- +[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator): + The iterator that can be moved can be moved in both directions (i.e. + incremented and decremented). +- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator): + It is possible to write to the pointed-to element (only if @a Base is + @ref iterator). + +@since version 1.0.0 +*/ +template +class json_reverse_iterator : public std::reverse_iterator +{ + public: + using difference_type = std::ptrdiff_t; + /// shortcut to the reverse iterator adapter + using base_iterator = std::reverse_iterator; + /// the reference type for the pointed-to element + using reference = typename Base::reference; + + /// create reverse iterator from iterator + explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept + : base_iterator(it) {} + + /// create reverse iterator from base class + explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} + + /// post-increment (it++) + json_reverse_iterator const operator++(int) // NOLINT(readability-const-return-type) + { + return static_cast(base_iterator::operator++(1)); + } + + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + return static_cast(base_iterator::operator++()); + } + + /// post-decrement (it--) + json_reverse_iterator const operator--(int) // NOLINT(readability-const-return-type) + { + return static_cast(base_iterator::operator--(1)); + } + + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + return static_cast(base_iterator::operator--()); + } + + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + return static_cast(base_iterator::operator+=(i)); + } + + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + return static_cast(base_iterator::operator+(i)); + } + + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + return static_cast(base_iterator::operator-(i)); + } + + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return base_iterator(*this) - base_iterator(other); + } + + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } + + /// return the key of an object iterator + auto key() const -> decltype(std::declval().key()) + { + auto it = --this->base(); + return it.key(); + } + + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // all_of +#include // isdigit +#include // max +#include // accumulate +#include // string +#include // move +#include // vector + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +template +class json_pointer +{ + // allow basic_json to access private members + NLOHMANN_BASIC_JSON_TPL_DECLARATION + friend class basic_json; + + public: + /*! + @brief create JSON pointer + + Create a JSON pointer according to the syntax described in + [Section 3 of RFC6901](https://tools.ietf.org/html/rfc6901#section-3). + + @param[in] s string representing the JSON pointer; if omitted, the empty + string is assumed which references the whole JSON value + + @throw parse_error.107 if the given JSON pointer @a s is nonempty and does + not begin with a slash (`/`); see example below + + @throw parse_error.108 if a tilde (`~`) in the given JSON pointer @a s is + not followed by `0` (representing `~`) or `1` (representing `/`); see + example below + + @liveexample{The example shows the construction several valid JSON pointers + as well as the exceptional behavior.,json_pointer} + + @since version 2.0.0 + */ + explicit json_pointer(const std::string& s = "") + : reference_tokens(split(s)) + {} + + /*! + @brief return a string representation of the JSON pointer + + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode + + @return a string representation of the JSON pointer + + @liveexample{The example shows the result of `to_string`.,json_pointer__to_string} + + @since version 2.0.0 + */ + std::string to_string() const + { + return std::accumulate(reference_tokens.begin(), reference_tokens.end(), + std::string{}, + [](const std::string & a, const std::string & b) + { + return a + "/" + detail::escape(b); + }); + } + + /// @copydoc to_string() + operator std::string() const + { + return to_string(); + } + + /*! + @brief append another JSON pointer at the end of this JSON pointer + + @param[in] ptr JSON pointer to append + @return JSON pointer with @a ptr appended + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Linear in the length of @a ptr. + + @sa see @ref operator/=(std::string) to append a reference token + @sa see @ref operator/=(std::size_t) to append an array index + @sa see @ref operator/(const json_pointer&, const json_pointer&) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(const json_pointer& ptr) + { + reference_tokens.insert(reference_tokens.end(), + ptr.reference_tokens.begin(), + ptr.reference_tokens.end()); + return *this; + } + + /*! + @brief append an unescaped reference token at the end of this JSON pointer + + @param[in] token reference token to append + @return JSON pointer with @a token appended without escaping @a token + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Amortized constant. + + @sa see @ref operator/=(const json_pointer&) to append a JSON pointer + @sa see @ref operator/=(std::size_t) to append an array index + @sa see @ref operator/(const json_pointer&, std::size_t) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(std::string token) + { + push_back(std::move(token)); + return *this; + } + + /*! + @brief append an array index at the end of this JSON pointer + + @param[in] array_idx array index to append + @return JSON pointer with @a array_idx appended + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Amortized constant. + + @sa see @ref operator/=(const json_pointer&) to append a JSON pointer + @sa see @ref operator/=(std::string) to append a reference token + @sa see @ref operator/(const json_pointer&, std::string) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(std::size_t array_idx) + { + return *this /= std::to_string(array_idx); + } + + /*! + @brief create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer + + @param[in] lhs JSON pointer + @param[in] rhs JSON pointer + @return a new JSON pointer with @a rhs appended to @a lhs + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a lhs and @a rhs. + + @sa see @ref operator/=(const json_pointer&) to append a JSON pointer + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& lhs, + const json_pointer& rhs) + { + return json_pointer(lhs) /= rhs; + } + + /*! + @brief create a new JSON pointer by appending the unescaped token at the end of the JSON pointer + + @param[in] ptr JSON pointer + @param[in] token reference token + @return a new JSON pointer with unescaped @a token appended to @a ptr + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a ptr. + + @sa see @ref operator/=(std::string) to append a reference token + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& ptr, std::string token) // NOLINT(performance-unnecessary-value-param) + { + return json_pointer(ptr) /= std::move(token); + } + + /*! + @brief create a new JSON pointer by appending the array-index-token at the end of the JSON pointer + + @param[in] ptr JSON pointer + @param[in] array_idx array index + @return a new JSON pointer with @a array_idx appended to @a ptr + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a ptr. + + @sa see @ref operator/=(std::size_t) to append an array index + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& ptr, std::size_t array_idx) + { + return json_pointer(ptr) /= array_idx; + } + + /*! + @brief returns the parent of this JSON pointer + + @return parent of this JSON pointer; in case this JSON pointer is the root, + the root itself is returned + + @complexity Linear in the length of the JSON pointer. + + @liveexample{The example shows the result of `parent_pointer` for different + JSON Pointers.,json_pointer__parent_pointer} + + @since version 3.6.0 + */ + json_pointer parent_pointer() const + { + if (empty()) + { + return *this; + } + + json_pointer res = *this; + res.pop_back(); + return res; + } + + /*! + @brief remove last reference token + + @pre not `empty()` + + @liveexample{The example shows the usage of `pop_back`.,json_pointer__pop_back} + + @complexity Constant. + + @throw out_of_range.405 if JSON pointer has no parent + + @since version 3.6.0 + */ + void pop_back() + { + if (JSON_HEDLEY_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent", BasicJsonType())); + } + + reference_tokens.pop_back(); + } + + /*! + @brief return last reference token + + @pre not `empty()` + @return last reference token + + @liveexample{The example shows the usage of `back`.,json_pointer__back} + + @complexity Constant. + + @throw out_of_range.405 if JSON pointer has no parent + + @since version 3.6.0 + */ + const std::string& back() const + { + if (JSON_HEDLEY_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent", BasicJsonType())); + } + + return reference_tokens.back(); + } + + /*! + @brief append an unescaped token at the end of the reference pointer + + @param[in] token token to add + + @complexity Amortized constant. + + @liveexample{The example shows the result of `push_back` for different + JSON Pointers.,json_pointer__push_back} + + @since version 3.6.0 + */ + void push_back(const std::string& token) + { + reference_tokens.push_back(token); + } + + /// @copydoc push_back(const std::string&) + void push_back(std::string&& token) + { + reference_tokens.push_back(std::move(token)); + } + + /*! + @brief return whether pointer points to the root document + + @return true iff the JSON pointer points to the root document + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example shows the result of `empty` for different JSON + Pointers.,json_pointer__empty} + + @since version 3.6.0 + */ + bool empty() const noexcept + { + return reference_tokens.empty(); + } + + private: + /*! + @param[in] s reference token to be converted into an array index + + @return integer representation of @a s + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index begins not with a digit + @throw out_of_range.404 if string @a s could not be converted to an integer + @throw out_of_range.410 if an array index exceeds size_type + */ + static typename BasicJsonType::size_type array_index(const std::string& s) + { + using size_type = typename BasicJsonType::size_type; + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_HEDLEY_UNLIKELY(s.size() > 1 && s[0] == '0')) + { + JSON_THROW(detail::parse_error::create(106, 0, "array index '" + s + "' must not begin with '0'", BasicJsonType())); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_HEDLEY_UNLIKELY(s.size() > 1 && !(s[0] >= '1' && s[0] <= '9'))) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + s + "' is not a number", BasicJsonType())); + } + + std::size_t processed_chars = 0; + unsigned long long res = 0; // NOLINT(runtime/int) + JSON_TRY + { + res = std::stoull(s, &processed_chars); + } + JSON_CATCH(std::out_of_range&) + { + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + s + "'", BasicJsonType())); + } + + // check if the string was completely read + if (JSON_HEDLEY_UNLIKELY(processed_chars != s.size())) + { + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + s + "'", BasicJsonType())); + } + + // only triggered on special platforms (like 32bit), see also + // https://github.com/nlohmann/json/pull/2203 + if (res >= static_cast((std::numeric_limits::max)())) // NOLINT(runtime/int) + { + JSON_THROW(detail::out_of_range::create(410, "array index " + s + " exceeds size_type", BasicJsonType())); // LCOV_EXCL_LINE + } + + return static_cast(res); + } + + JSON_PRIVATE_UNLESS_TESTED: + json_pointer top() const + { + if (JSON_HEDLEY_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent", BasicJsonType())); + } + + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; + return result; + } + + private: + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + + @throw parse_error.109 if array index is not a number + @throw type_error.313 if value cannot be unflattened + */ + BasicJsonType& get_and_create(BasicJsonType& j) const + { + auto* result = &j; + + // in case no reference tokens exist, return a reference to the JSON value + // j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) + { + switch (result->type()) + { + case detail::value_t::null: + { + if (reference_token == "0") + { + // start a new array if reference token is 0 + result = &result->operator[](0); + } + else + { + // start a new object otherwise + result = &result->operator[](reference_token); + } + break; + } + + case detail::value_t::object: + { + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + // create an entry in the array + result = &result->operator[](array_index(reference_token)); + break; + } + + /* + The following code is only reached if there exists a reference + token _and_ the current value is primitive. In this case, we have + an error situation, because primitive values may only occur as + single value; that is, with an empty list of reference tokens. + */ + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + JSON_THROW(detail::type_error::create(313, "invalid value to unflatten", j)); + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries to + create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + BasicJsonType& get_unchecked(BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->is_null()) + { + // check if reference token is a number + const bool nums = + std::all_of(reference_token.begin(), reference_token.end(), + [](const unsigned char x) + { + return std::isdigit(x); + }); + + // change value to array for numbers or "-" or to object otherwise + *ptr = (nums || reference_token == "-") + ? detail::value_t::array + : detail::value_t::object; + } + + switch (ptr->type()) + { + case detail::value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (reference_token == "-") + { + // explicitly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); + } + else + { + // convert array index to number; unchecked access + ptr = &ptr->operator[](array_index(reference_token)); + } + break; + } + + case detail::value_t::null: + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr)); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + BasicJsonType& get_checked(BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range", *ptr)); + } + + // note: at performs range check + ptr = &ptr->at(array_index(reference_token)); + break; + } + + case detail::value_t::null: + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr)); + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + const BasicJsonType& get_unchecked(const BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" cannot be used for const access + JSON_THROW(detail::out_of_range::create(402, "array index '-' (" + std::to_string(ptr->m_value.array->size()) + ") is out of range", *ptr)); + } + + // use unchecked array access + ptr = &ptr->operator[](array_index(reference_token)); + break; + } + + case detail::value_t::null: + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr)); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + const BasicJsonType& get_checked(const BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range", *ptr)); + } + + // note: at performs range check + ptr = &ptr->at(array_index(reference_token)); + break; + } + + case detail::value_t::null: + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr)); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + */ + bool contains(const BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + if (!ptr->contains(reference_token)) + { + // we did not find the key in the object + return false; + } + + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + return false; + } + if (JSON_HEDLEY_UNLIKELY(reference_token.size() == 1 && !("0" <= reference_token && reference_token <= "9"))) + { + // invalid char + return false; + } + if (JSON_HEDLEY_UNLIKELY(reference_token.size() > 1)) + { + if (JSON_HEDLEY_UNLIKELY(!('1' <= reference_token[0] && reference_token[0] <= '9'))) + { + // first char should be between '1' and '9' + return false; + } + for (std::size_t i = 1; i < reference_token.size(); i++) + { + if (JSON_HEDLEY_UNLIKELY(!('0' <= reference_token[i] && reference_token[i] <= '9'))) + { + // other char should be between '0' and '9' + return false; + } + } + } + + const auto idx = array_index(reference_token); + if (idx >= ptr->size()) + { + // index out of range + return false; + } + + ptr = &ptr->operator[](idx); + break; + } + + case detail::value_t::null: + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + { + // we do not expect primitive values if there is still a + // reference token to process + return false; + } + } + } + + // no reference token left means we found a primitive value + return true; + } + + /*! + @brief split the string input to reference tokens + + @note This function is only called by the json_pointer constructor. + All exceptions below are documented there. + + @throw parse_error.107 if the pointer is not empty or begins with '/' + @throw parse_error.108 if character '~' is not followed by '0' or '1' + */ + static std::vector split(const std::string& reference_string) + { + std::vector result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { + return result; + } + + // check if nonempty reference string begins with slash + if (JSON_HEDLEY_UNLIKELY(reference_string[0] != '/')) + { + JSON_THROW(detail::parse_error::create(107, 1, "JSON pointer must be empty or begin with '/' - was: '" + reference_string + "'", BasicJsonType())); + } + + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character + std::size_t slash = reference_string.find_first_of('/', 1), + // set the beginning of the first reference token + start = 1; + // we can stop if start == 0 (if slash == std::string::npos) + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = (slash == std::string::npos) ? 0 : slash + 1, + // find next slash + slash = reference_string.find_first_of('/', start)) + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); + + // check reference tokens are properly escaped + for (std::size_t pos = reference_token.find_first_of('~'); + pos != std::string::npos; + pos = reference_token.find_first_of('~', pos + 1)) + { + JSON_ASSERT(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (JSON_HEDLEY_UNLIKELY(pos == reference_token.size() - 1 || + (reference_token[pos + 1] != '0' && + reference_token[pos + 1] != '1'))) + { + JSON_THROW(detail::parse_error::create(108, 0, "escape character '~' must be followed with '0' or '1'", BasicJsonType())); + } + } + + // finally, store the reference token + detail::unescape(reference_token); + result.push_back(reference_token); + } + + return result; + } + + private: + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const BasicJsonType& value, + BasicJsonType& result) + { + switch (value.type()) + { + case detail::value_t::array: + { + if (value.m_value.array->empty()) + { + // flatten empty array as null + result[reference_string] = nullptr; + } + else + { + // iterate array and use index as reference string + for (std::size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; + } + + case detail::value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + detail::escape(element.first), element.second, result); + } + } + break; + } + + case detail::value_t::null: + case detail::value_t::string: + case detail::value_t::boolean: + case detail::value_t::number_integer: + case detail::value_t::number_unsigned: + case detail::value_t::number_float: + case detail::value_t::binary: + case detail::value_t::discarded: + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } + } + } + + /*! + @param[in] value flattened JSON + + @return unflattened JSON + + @throw parse_error.109 if array index is not a number + @throw type_error.314 if value is not an object + @throw type_error.315 if object values are not primitive + @throw type_error.313 if value cannot be unflattened + */ + static BasicJsonType + unflatten(const BasicJsonType& value) + { + if (JSON_HEDLEY_UNLIKELY(!value.is_object())) + { + JSON_THROW(detail::type_error::create(314, "only objects can be unflattened", value)); + } + + BasicJsonType result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (JSON_HEDLEY_UNLIKELY(!element.second.is_primitive())) + { + JSON_THROW(detail::type_error::create(315, "values in object must be primitive", element.second)); + } + + // assign value to reference pointed to by JSON pointer; Note that if + // the JSON pointer is "" (i.e., points to the whole value), function + // get_and_create returns a reference to result itself. An assignment + // will then create a primitive value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; + } + + /*! + @brief compares two JSON pointers for equality + + @param[in] lhs JSON pointer to compare + @param[in] rhs JSON pointer to compare + @return whether @a lhs is equal to @a rhs + + @complexity Linear in the length of the JSON pointer + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + */ + friend bool operator==(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } + + /*! + @brief compares two JSON pointers for inequality + + @param[in] lhs JSON pointer to compare + @param[in] rhs JSON pointer to compare + @return whether @a lhs is not equal @a rhs + + @complexity Linear in the length of the JSON pointer + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + */ + friend bool operator!=(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return !(lhs == rhs); + } + + /// the reference tokens + std::vector reference_tokens; +}; +} // namespace nlohmann + +// #include + + +#include +#include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +class json_ref +{ + public: + using value_type = BasicJsonType; + + json_ref(value_type&& value) + : owned_value(std::move(value)) + {} + + json_ref(const value_type& value) + : value_ref(&value) + {} + + json_ref(std::initializer_list init) + : owned_value(init) + {} + + template < + class... Args, + enable_if_t::value, int> = 0 > + json_ref(Args && ... args) + : owned_value(std::forward(args)...) + {} + + // class should be movable only + json_ref(json_ref&&) noexcept = default; + json_ref(const json_ref&) = delete; + json_ref& operator=(const json_ref&) = delete; + json_ref& operator=(json_ref&&) = delete; + ~json_ref() = default; + + value_type moved_or_copied() const + { + if (value_ref == nullptr) + { + return std::move(owned_value); + } + return *value_ref; + } + + value_type const& operator*() const + { + return value_ref ? *value_ref : owned_value; + } + + value_type const* operator->() const + { + return &** this; + } + + private: + mutable value_type owned_value = nullptr; + value_type const* value_ref = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + +// #include + +// #include + + +#include // reverse +#include // array +#include // isnan, isinf +#include // uint8_t, uint16_t, uint32_t, uint64_t +#include // memcpy +#include // numeric_limits +#include // string +#include // move + +// #include + +// #include + +// #include + + +#include // copy +#include // size_t +#include // back_inserter +#include // shared_ptr, make_shared +#include // basic_string +#include // vector + +#ifndef JSON_NO_IO + #include // streamsize + #include // basic_ostream +#endif // JSON_NO_IO + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/// abstract output adapter interface +template struct output_adapter_protocol +{ + virtual void write_character(CharType c) = 0; + virtual void write_characters(const CharType* s, std::size_t length) = 0; + virtual ~output_adapter_protocol() = default; + + output_adapter_protocol() = default; + output_adapter_protocol(const output_adapter_protocol&) = default; + output_adapter_protocol(output_adapter_protocol&&) noexcept = default; + output_adapter_protocol& operator=(const output_adapter_protocol&) = default; + output_adapter_protocol& operator=(output_adapter_protocol&&) noexcept = default; +}; + +/// a type to simplify interfaces +template +using output_adapter_t = std::shared_ptr>; + +/// output adapter for byte vectors +template> +class output_vector_adapter : public output_adapter_protocol +{ + public: + explicit output_vector_adapter(std::vector& vec) noexcept + : v(vec) + {} + + void write_character(CharType c) override + { + v.push_back(c); + } + + JSON_HEDLEY_NON_NULL(2) + void write_characters(const CharType* s, std::size_t length) override + { + std::copy(s, s + length, std::back_inserter(v)); + } + + private: + std::vector& v; +}; + +#ifndef JSON_NO_IO +/// output adapter for output streams +template +class output_stream_adapter : public output_adapter_protocol +{ + public: + explicit output_stream_adapter(std::basic_ostream& s) noexcept + : stream(s) + {} + + void write_character(CharType c) override + { + stream.put(c); + } + + JSON_HEDLEY_NON_NULL(2) + void write_characters(const CharType* s, std::size_t length) override + { + stream.write(s, static_cast(length)); + } + + private: + std::basic_ostream& stream; +}; +#endif // JSON_NO_IO + +/// output adapter for basic_string +template> +class output_string_adapter : public output_adapter_protocol +{ + public: + explicit output_string_adapter(StringType& s) noexcept + : str(s) + {} + + void write_character(CharType c) override + { + str.push_back(c); + } + + JSON_HEDLEY_NON_NULL(2) + void write_characters(const CharType* s, std::size_t length) override + { + str.append(s, length); + } + + private: + StringType& str; +}; + +template> +class output_adapter +{ + public: + template> + output_adapter(std::vector& vec) + : oa(std::make_shared>(vec)) {} + +#ifndef JSON_NO_IO + output_adapter(std::basic_ostream& s) + : oa(std::make_shared>(s)) {} +#endif // JSON_NO_IO + + output_adapter(StringType& s) + : oa(std::make_shared>(s)) {} + + operator output_adapter_t() + { + return oa; + } + + private: + output_adapter_t oa = nullptr; +}; +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// binary writer // +/////////////////// + +/*! +@brief serialization to CBOR and MessagePack values +*/ +template +class binary_writer +{ + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using number_float_t = typename BasicJsonType::number_float_t; + + public: + /*! + @brief create a binary writer + + @param[in] adapter output adapter to write to + */ + explicit binary_writer(output_adapter_t adapter) : oa(std::move(adapter)) + { + JSON_ASSERT(oa); + } + + /*! + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + void write_bson(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::object: + { + write_bson_object(*j.m_value.object); + break; + } + + case value_t::null: + case value_t::array: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()), j)); + } + } + } + + /*! + @param[in] j JSON value to serialize + */ + void write_cbor(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::null: + { + oa->write_character(to_char_type(0xF6)); + break; + } + + case value_t::boolean: + { + oa->write_character(j.m_value.boolean + ? to_char_type(0xF5) + : to_char_type(0xF4)); + break; + } + + case value_t::number_integer: + { + if (j.m_value.number_integer >= 0) + { + // CBOR does not differentiate between positive signed + // integers and unsigned integers. Therefore, we used the + // code from the value_t::number_unsigned case here. + if (j.m_value.number_integer <= 0x17) + { + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x18)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x19)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x1A)); + write_number(static_cast(j.m_value.number_integer)); + } + else + { + oa->write_character(to_char_type(0x1B)); + write_number(static_cast(j.m_value.number_integer)); + } + } + else + { + // The conversions below encode the sign in the first + // byte, and the value is converted to a positive number. + const auto positive_number = -1 - j.m_value.number_integer; + if (j.m_value.number_integer >= -24) + { + write_number(static_cast(0x20 + positive_number)); + } + else if (positive_number <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x38)); + write_number(static_cast(positive_number)); + } + else if (positive_number <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x39)); + write_number(static_cast(positive_number)); + } + else if (positive_number <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x3A)); + write_number(static_cast(positive_number)); + } + else + { + oa->write_character(to_char_type(0x3B)); + write_number(static_cast(positive_number)); + } + } + break; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned <= 0x17) + { + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x18)); + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x19)); + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x1A)); + write_number(static_cast(j.m_value.number_unsigned)); + } + else + { + oa->write_character(to_char_type(0x1B)); + write_number(static_cast(j.m_value.number_unsigned)); + } + break; + } + + case value_t::number_float: + { + if (std::isnan(j.m_value.number_float)) + { + // NaN is 0xf97e00 in CBOR + oa->write_character(to_char_type(0xF9)); + oa->write_character(to_char_type(0x7E)); + oa->write_character(to_char_type(0x00)); + } + else if (std::isinf(j.m_value.number_float)) + { + // Infinity is 0xf97c00, -Infinity is 0xf9fc00 + oa->write_character(to_char_type(0xf9)); + oa->write_character(j.m_value.number_float > 0 ? to_char_type(0x7C) : to_char_type(0xFC)); + oa->write_character(to_char_type(0x00)); + } + else + { + write_compact_float(j.m_value.number_float, detail::input_format_t::cbor); + } + break; + } + + case value_t::string: + { + // step 1: write control byte and the string length + const auto N = j.m_value.string->size(); + if (N <= 0x17) + { + write_number(static_cast(0x60 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x78)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x79)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x7A)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x7B)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write the string + oa->write_characters( + reinterpret_cast(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + // step 1: write control byte and the array size + const auto N = j.m_value.array->size(); + if (N <= 0x17) + { + write_number(static_cast(0x80 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x98)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x99)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x9A)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x9B)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + for (const auto& el : *j.m_value.array) + { + write_cbor(el); + } + break; + } + + case value_t::binary: + { + if (j.m_value.binary->has_subtype()) + { + if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + { + write_number(static_cast(0xd8)); + write_number(static_cast(j.m_value.binary->subtype())); + } + else if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + { + write_number(static_cast(0xd9)); + write_number(static_cast(j.m_value.binary->subtype())); + } + else if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + { + write_number(static_cast(0xda)); + write_number(static_cast(j.m_value.binary->subtype())); + } + else if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + { + write_number(static_cast(0xdb)); + write_number(static_cast(j.m_value.binary->subtype())); + } + } + + // step 1: write control byte and the binary array size + const auto N = j.m_value.binary->size(); + if (N <= 0x17) + { + write_number(static_cast(0x40 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x58)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x59)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x5A)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x5B)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + oa->write_characters( + reinterpret_cast(j.m_value.binary->data()), + N); + + break; + } + + case value_t::object: + { + // step 1: write control byte and the object size + const auto N = j.m_value.object->size(); + if (N <= 0x17) + { + write_number(static_cast(0xA0 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xB8)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xB9)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xBA)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xBB)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + for (const auto& el : *j.m_value.object) + { + write_cbor(el.first); + write_cbor(el.second); + } + break; + } + + case value_t::discarded: + default: + break; + } + } + + /*! + @param[in] j JSON value to serialize + */ + void write_msgpack(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::null: // nil + { + oa->write_character(to_char_type(0xC0)); + break; + } + + case value_t::boolean: // true and false + { + oa->write_character(j.m_value.boolean + ? to_char_type(0xC3) + : to_char_type(0xC2)); + break; + } + + case value_t::number_integer: + { + if (j.m_value.number_integer >= 0) + { + // MessagePack does not differentiate between positive + // signed integers and unsigned integers. Therefore, we used + // the code from the value_t::number_unsigned case here. + if (j.m_value.number_unsigned < 128) + { + // positive fixnum + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 8 + oa->write_character(to_char_type(0xCC)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 16 + oa->write_character(to_char_type(0xCD)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 32 + oa->write_character(to_char_type(0xCE)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 64 + oa->write_character(to_char_type(0xCF)); + write_number(static_cast(j.m_value.number_integer)); + } + } + else + { + if (j.m_value.number_integer >= -32) + { + // negative fixnum + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 8 + oa->write_character(to_char_type(0xD0)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 16 + oa->write_character(to_char_type(0xD1)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 32 + oa->write_character(to_char_type(0xD2)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 64 + oa->write_character(to_char_type(0xD3)); + write_number(static_cast(j.m_value.number_integer)); + } + } + break; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned < 128) + { + // positive fixnum + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 8 + oa->write_character(to_char_type(0xCC)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 16 + oa->write_character(to_char_type(0xCD)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 32 + oa->write_character(to_char_type(0xCE)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 64 + oa->write_character(to_char_type(0xCF)); + write_number(static_cast(j.m_value.number_integer)); + } + break; + } + + case value_t::number_float: + { + write_compact_float(j.m_value.number_float, detail::input_format_t::msgpack); + break; + } + + case value_t::string: + { + // step 1: write control byte and the string length + const auto N = j.m_value.string->size(); + if (N <= 31) + { + // fixstr + write_number(static_cast(0xA0 | N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // str 8 + oa->write_character(to_char_type(0xD9)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // str 16 + oa->write_character(to_char_type(0xDA)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // str 32 + oa->write_character(to_char_type(0xDB)); + write_number(static_cast(N)); + } + + // step 2: write the string + oa->write_characters( + reinterpret_cast(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + // step 1: write control byte and the array size + const auto N = j.m_value.array->size(); + if (N <= 15) + { + // fixarray + write_number(static_cast(0x90 | N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // array 16 + oa->write_character(to_char_type(0xDC)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // array 32 + oa->write_character(to_char_type(0xDD)); + write_number(static_cast(N)); + } + + // step 2: write each element + for (const auto& el : *j.m_value.array) + { + write_msgpack(el); + } + break; + } + + case value_t::binary: + { + // step 0: determine if the binary type has a set subtype to + // determine whether or not to use the ext or fixext types + const bool use_ext = j.m_value.binary->has_subtype(); + + // step 1: write control byte and the byte string length + const auto N = j.m_value.binary->size(); + if (N <= (std::numeric_limits::max)()) + { + std::uint8_t output_type{}; + bool fixed = true; + if (use_ext) + { + switch (N) + { + case 1: + output_type = 0xD4; // fixext 1 + break; + case 2: + output_type = 0xD5; // fixext 2 + break; + case 4: + output_type = 0xD6; // fixext 4 + break; + case 8: + output_type = 0xD7; // fixext 8 + break; + case 16: + output_type = 0xD8; // fixext 16 + break; + default: + output_type = 0xC7; // ext 8 + fixed = false; + break; + } + + } + else + { + output_type = 0xC4; // bin 8 + fixed = false; + } + + oa->write_character(to_char_type(output_type)); + if (!fixed) + { + write_number(static_cast(N)); + } + } + else if (N <= (std::numeric_limits::max)()) + { + std::uint8_t output_type = use_ext + ? 0xC8 // ext 16 + : 0xC5; // bin 16 + + oa->write_character(to_char_type(output_type)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + std::uint8_t output_type = use_ext + ? 0xC9 // ext 32 + : 0xC6; // bin 32 + + oa->write_character(to_char_type(output_type)); + write_number(static_cast(N)); + } + + // step 1.5: if this is an ext type, write the subtype + if (use_ext) + { + write_number(static_cast(j.m_value.binary->subtype())); + } + + // step 2: write the byte string + oa->write_characters( + reinterpret_cast(j.m_value.binary->data()), + N); + + break; + } + + case value_t::object: + { + // step 1: write control byte and the object size + const auto N = j.m_value.object->size(); + if (N <= 15) + { + // fixmap + write_number(static_cast(0x80 | (N & 0xF))); + } + else if (N <= (std::numeric_limits::max)()) + { + // map 16 + oa->write_character(to_char_type(0xDE)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // map 32 + oa->write_character(to_char_type(0xDF)); + write_number(static_cast(N)); + } + + // step 2: write each element + for (const auto& el : *j.m_value.object) + { + write_msgpack(el.first); + write_msgpack(el.second); + } + break; + } + + case value_t::discarded: + default: + break; + } + } + + /*! + @param[in] j JSON value to serialize + @param[in] use_count whether to use '#' prefixes (optimized format) + @param[in] use_type whether to use '$' prefixes (optimized format) + @param[in] add_prefix whether prefixes need to be used for this value + */ + void write_ubjson(const BasicJsonType& j, const bool use_count, + const bool use_type, const bool add_prefix = true) + { + switch (j.type()) + { + case value_t::null: + { + if (add_prefix) + { + oa->write_character(to_char_type('Z')); + } + break; + } + + case value_t::boolean: + { + if (add_prefix) + { + oa->write_character(j.m_value.boolean + ? to_char_type('T') + : to_char_type('F')); + } + break; + } + + case value_t::number_integer: + { + write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix); + break; + } + + case value_t::number_unsigned: + { + write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix); + break; + } + + case value_t::number_float: + { + write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix); + break; + } + + case value_t::string: + { + if (add_prefix) + { + oa->write_character(to_char_type('S')); + } + write_number_with_ubjson_prefix(j.m_value.string->size(), true); + oa->write_characters( + reinterpret_cast(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + if (add_prefix) + { + oa->write_character(to_char_type('[')); + } + + bool prefix_required = true; + if (use_type && !j.m_value.array->empty()) + { + JSON_ASSERT(use_count); + const CharType first_prefix = ubjson_prefix(j.front()); + const bool same_prefix = std::all_of(j.begin() + 1, j.end(), + [this, first_prefix](const BasicJsonType & v) + { + return ubjson_prefix(v) == first_prefix; + }); + + if (same_prefix) + { + prefix_required = false; + oa->write_character(to_char_type('$')); + oa->write_character(first_prefix); + } + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.array->size(), true); + } + + for (const auto& el : *j.m_value.array) + { + write_ubjson(el, use_count, use_type, prefix_required); + } + + if (!use_count) + { + oa->write_character(to_char_type(']')); + } + + break; + } + + case value_t::binary: + { + if (add_prefix) + { + oa->write_character(to_char_type('[')); + } + + if (use_type && !j.m_value.binary->empty()) + { + JSON_ASSERT(use_count); + oa->write_character(to_char_type('$')); + oa->write_character('U'); + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.binary->size(), true); + } + + if (use_type) + { + oa->write_characters( + reinterpret_cast(j.m_value.binary->data()), + j.m_value.binary->size()); + } + else + { + for (size_t i = 0; i < j.m_value.binary->size(); ++i) + { + oa->write_character(to_char_type('U')); + oa->write_character(j.m_value.binary->data()[i]); + } + } + + if (!use_count) + { + oa->write_character(to_char_type(']')); + } + + break; + } + + case value_t::object: + { + if (add_prefix) + { + oa->write_character(to_char_type('{')); + } + + bool prefix_required = true; + if (use_type && !j.m_value.object->empty()) + { + JSON_ASSERT(use_count); + const CharType first_prefix = ubjson_prefix(j.front()); + const bool same_prefix = std::all_of(j.begin(), j.end(), + [this, first_prefix](const BasicJsonType & v) + { + return ubjson_prefix(v) == first_prefix; + }); + + if (same_prefix) + { + prefix_required = false; + oa->write_character(to_char_type('$')); + oa->write_character(first_prefix); + } + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.object->size(), true); + } + + for (const auto& el : *j.m_value.object) + { + write_number_with_ubjson_prefix(el.first.size(), true); + oa->write_characters( + reinterpret_cast(el.first.c_str()), + el.first.size()); + write_ubjson(el.second, use_count, use_type, prefix_required); + } + + if (!use_count) + { + oa->write_character(to_char_type('}')); + } + + break; + } + + case value_t::discarded: + default: + break; + } + } + + private: + ////////// + // BSON // + ////////// + + /*! + @return The size of a BSON document entry header, including the id marker + and the entry name size (and its null-terminator). + */ + static std::size_t calc_bson_entry_header_size(const string_t& name, const BasicJsonType& j) + { + const auto it = name.find(static_cast(0)); + if (JSON_HEDLEY_UNLIKELY(it != BasicJsonType::string_t::npos)) + { + JSON_THROW(out_of_range::create(409, "BSON key cannot contain code point U+0000 (at byte " + std::to_string(it) + ")", j)); + static_cast(j); + } + + return /*id*/ 1ul + name.size() + /*zero-terminator*/1u; + } + + /*! + @brief Writes the given @a element_type and @a name to the output adapter + */ + void write_bson_entry_header(const string_t& name, + const std::uint8_t element_type) + { + oa->write_character(to_char_type(element_type)); // boolean + oa->write_characters( + reinterpret_cast(name.c_str()), + name.size() + 1u); + } + + /*! + @brief Writes a BSON element with key @a name and boolean value @a value + */ + void write_bson_boolean(const string_t& name, + const bool value) + { + write_bson_entry_header(name, 0x08); + oa->write_character(value ? to_char_type(0x01) : to_char_type(0x00)); + } + + /*! + @brief Writes a BSON element with key @a name and double value @a value + */ + void write_bson_double(const string_t& name, + const double value) + { + write_bson_entry_header(name, 0x01); + write_number(value); + } + + /*! + @return The size of the BSON-encoded string in @a value + */ + static std::size_t calc_bson_string_size(const string_t& value) + { + return sizeof(std::int32_t) + value.size() + 1ul; + } + + /*! + @brief Writes a BSON element with key @a name and string value @a value + */ + void write_bson_string(const string_t& name, + const string_t& value) + { + write_bson_entry_header(name, 0x02); + + write_number(static_cast(value.size() + 1ul)); + oa->write_characters( + reinterpret_cast(value.c_str()), + value.size() + 1); + } + + /*! + @brief Writes a BSON element with key @a name and null value + */ + void write_bson_null(const string_t& name) + { + write_bson_entry_header(name, 0x0A); + } + + /*! + @return The size of the BSON-encoded integer @a value + */ + static std::size_t calc_bson_integer_size(const std::int64_t value) + { + return (std::numeric_limits::min)() <= value && value <= (std::numeric_limits::max)() + ? sizeof(std::int32_t) + : sizeof(std::int64_t); + } + + /*! + @brief Writes a BSON element with key @a name and integer @a value + */ + void write_bson_integer(const string_t& name, + const std::int64_t value) + { + if ((std::numeric_limits::min)() <= value && value <= (std::numeric_limits::max)()) + { + write_bson_entry_header(name, 0x10); // int32 + write_number(static_cast(value)); + } + else + { + write_bson_entry_header(name, 0x12); // int64 + write_number(static_cast(value)); + } + } + + /*! + @return The size of the BSON-encoded unsigned integer in @a j + */ + static constexpr std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept + { + return (value <= static_cast((std::numeric_limits::max)())) + ? sizeof(std::int32_t) + : sizeof(std::int64_t); + } + + /*! + @brief Writes a BSON element with key @a name and unsigned @a value + */ + void write_bson_unsigned(const string_t& name, + const BasicJsonType& j) + { + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + write_bson_entry_header(name, 0x10 /* int32 */); + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + write_bson_entry_header(name, 0x12 /* int64 */); + write_number(static_cast(j.m_value.number_unsigned)); + } + else + { + JSON_THROW(out_of_range::create(407, "integer number " + std::to_string(j.m_value.number_unsigned) + " cannot be represented by BSON as it does not fit int64", j)); + } + } + + /*! + @brief Writes a BSON element with key @a name and object @a value + */ + void write_bson_object_entry(const string_t& name, + const typename BasicJsonType::object_t& value) + { + write_bson_entry_header(name, 0x03); // object + write_bson_object(value); + } + + /*! + @return The size of the BSON-encoded array @a value + */ + static std::size_t calc_bson_array_size(const typename BasicJsonType::array_t& value) + { + std::size_t array_index = 0ul; + + const std::size_t embedded_document_size = std::accumulate(std::begin(value), std::end(value), std::size_t(0), [&array_index](std::size_t result, const typename BasicJsonType::array_t::value_type & el) + { + return result + calc_bson_element_size(std::to_string(array_index++), el); + }); + + return sizeof(std::int32_t) + embedded_document_size + 1ul; + } + + /*! + @return The size of the BSON-encoded binary array @a value + */ + static std::size_t calc_bson_binary_size(const typename BasicJsonType::binary_t& value) + { + return sizeof(std::int32_t) + value.size() + 1ul; + } + + /*! + @brief Writes a BSON element with key @a name and array @a value + */ + void write_bson_array(const string_t& name, + const typename BasicJsonType::array_t& value) + { + write_bson_entry_header(name, 0x04); // array + write_number(static_cast(calc_bson_array_size(value))); + + std::size_t array_index = 0ul; + + for (const auto& el : value) + { + write_bson_element(std::to_string(array_index++), el); + } + + oa->write_character(to_char_type(0x00)); + } + + /*! + @brief Writes a BSON element with key @a name and binary value @a value + */ + void write_bson_binary(const string_t& name, + const binary_t& value) + { + write_bson_entry_header(name, 0x05); + + write_number(static_cast(value.size())); + write_number(value.has_subtype() ? static_cast(value.subtype()) : std::uint8_t(0x00)); + + oa->write_characters(reinterpret_cast(value.data()), value.size()); + } + + /*! + @brief Calculates the size necessary to serialize the JSON value @a j with its @a name + @return The calculated size for the BSON document entry for @a j with the given @a name. + */ + static std::size_t calc_bson_element_size(const string_t& name, + const BasicJsonType& j) + { + const auto header_size = calc_bson_entry_header_size(name, j); + switch (j.type()) + { + case value_t::object: + return header_size + calc_bson_object_size(*j.m_value.object); + + case value_t::array: + return header_size + calc_bson_array_size(*j.m_value.array); + + case value_t::binary: + return header_size + calc_bson_binary_size(*j.m_value.binary); + + case value_t::boolean: + return header_size + 1ul; + + case value_t::number_float: + return header_size + 8ul; + + case value_t::number_integer: + return header_size + calc_bson_integer_size(j.m_value.number_integer); + + case value_t::number_unsigned: + return header_size + calc_bson_unsigned_size(j.m_value.number_unsigned); + + case value_t::string: + return header_size + calc_bson_string_size(*j.m_value.string); + + case value_t::null: + return header_size + 0ul; + + // LCOV_EXCL_START + case value_t::discarded: + default: + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) + return 0ul; + // LCOV_EXCL_STOP + } + } + + /*! + @brief Serializes the JSON value @a j to BSON and associates it with the + key @a name. + @param name The name to associate with the JSON entity @a j within the + current BSON document + */ + void write_bson_element(const string_t& name, + const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::object: + return write_bson_object_entry(name, *j.m_value.object); + + case value_t::array: + return write_bson_array(name, *j.m_value.array); + + case value_t::binary: + return write_bson_binary(name, *j.m_value.binary); + + case value_t::boolean: + return write_bson_boolean(name, j.m_value.boolean); + + case value_t::number_float: + return write_bson_double(name, j.m_value.number_float); + + case value_t::number_integer: + return write_bson_integer(name, j.m_value.number_integer); + + case value_t::number_unsigned: + return write_bson_unsigned(name, j); + + case value_t::string: + return write_bson_string(name, *j.m_value.string); + + case value_t::null: + return write_bson_null(name); + + // LCOV_EXCL_START + case value_t::discarded: + default: + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) + return; + // LCOV_EXCL_STOP + } + } + + /*! + @brief Calculates the size of the BSON serialization of the given + JSON-object @a j. + @param[in] value JSON value to serialize + @pre value.type() == value_t::object + */ + static std::size_t calc_bson_object_size(const typename BasicJsonType::object_t& value) + { + std::size_t document_size = std::accumulate(value.begin(), value.end(), std::size_t(0), + [](size_t result, const typename BasicJsonType::object_t::value_type & el) + { + return result += calc_bson_element_size(el.first, el.second); + }); + + return sizeof(std::int32_t) + document_size + 1ul; + } + + /*! + @param[in] value JSON value to serialize + @pre value.type() == value_t::object + */ + void write_bson_object(const typename BasicJsonType::object_t& value) + { + write_number(static_cast(calc_bson_object_size(value))); + + for (const auto& el : value) + { + write_bson_element(el.first, el.second); + } + + oa->write_character(to_char_type(0x00)); + } + + ////////// + // CBOR // + ////////// + + static constexpr CharType get_cbor_float_prefix(float /*unused*/) + { + return to_char_type(0xFA); // Single-Precision Float + } + + static constexpr CharType get_cbor_float_prefix(double /*unused*/) + { + return to_char_type(0xFB); // Double-Precision Float + } + + ///////////// + // MsgPack // + ///////////// + + static constexpr CharType get_msgpack_float_prefix(float /*unused*/) + { + return to_char_type(0xCA); // float 32 + } + + static constexpr CharType get_msgpack_float_prefix(double /*unused*/) + { + return to_char_type(0xCB); // float 64 + } + + //////////// + // UBJSON // + //////////// + + // UBJSON: write number (floating point) + template::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if (add_prefix) + { + oa->write_character(get_ubjson_float_prefix(n)); + } + write_number(n); + } + + // UBJSON: write number (unsigned integer) + template::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('i')); // int8 + } + write_number(static_cast(n)); + } + else if (n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('U')); // uint8 + } + write_number(static_cast(n)); + } + else if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('I')); // int16 + } + write_number(static_cast(n)); + } + else if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('l')); // int32 + } + write_number(static_cast(n)); + } + else if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('L')); // int64 + } + write_number(static_cast(n)); + } + else + { + if (add_prefix) + { + oa->write_character(to_char_type('H')); // high-precision number + } + + const auto number = BasicJsonType(n).dump(); + write_number_with_ubjson_prefix(number.size(), true); + for (std::size_t i = 0; i < number.size(); ++i) + { + oa->write_character(to_char_type(static_cast(number[i]))); + } + } + } + + // UBJSON: write number (signed integer) + template < typename NumberType, typename std::enable_if < + std::is_signed::value&& + !std::is_floating_point::value, int >::type = 0 > + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('i')); // int8 + } + write_number(static_cast(n)); + } + else if (static_cast((std::numeric_limits::min)()) <= n && n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('U')); // uint8 + } + write_number(static_cast(n)); + } + else if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('I')); // int16 + } + write_number(static_cast(n)); + } + else if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('l')); // int32 + } + write_number(static_cast(n)); + } + else if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('L')); // int64 + } + write_number(static_cast(n)); + } + // LCOV_EXCL_START + else + { + if (add_prefix) + { + oa->write_character(to_char_type('H')); // high-precision number + } + + const auto number = BasicJsonType(n).dump(); + write_number_with_ubjson_prefix(number.size(), true); + for (std::size_t i = 0; i < number.size(); ++i) + { + oa->write_character(to_char_type(static_cast(number[i]))); + } + } + // LCOV_EXCL_STOP + } + + /*! + @brief determine the type prefix of container values + */ + CharType ubjson_prefix(const BasicJsonType& j) const noexcept + { + switch (j.type()) + { + case value_t::null: + return 'Z'; + + case value_t::boolean: + return j.m_value.boolean ? 'T' : 'F'; + + case value_t::number_integer: + { + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'i'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'U'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'I'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'l'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'L'; + } + // anything else is treated as high-precision number + return 'H'; // LCOV_EXCL_LINE + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'i'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'U'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'I'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'l'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'L'; + } + // anything else is treated as high-precision number + return 'H'; // LCOV_EXCL_LINE + } + + case value_t::number_float: + return get_ubjson_float_prefix(j.m_value.number_float); + + case value_t::string: + return 'S'; + + case value_t::array: // fallthrough + case value_t::binary: + return '['; + + case value_t::object: + return '{'; + + case value_t::discarded: + default: // discarded values + return 'N'; + } + } + + static constexpr CharType get_ubjson_float_prefix(float /*unused*/) + { + return 'd'; // float 32 + } + + static constexpr CharType get_ubjson_float_prefix(double /*unused*/) + { + return 'D'; // float 64 + } + + /////////////////////// + // Utility functions // + /////////////////////// + + /* + @brief write a number to output input + @param[in] n number of type @a NumberType + @tparam NumberType the type of the number + @tparam OutputIsLittleEndian Set to true if output data is + required to be little endian + + @note This function needs to respect the system's endianess, because bytes + in CBOR, MessagePack, and UBJSON are stored in network order (big + endian) and therefore need reordering on little endian systems. + */ + template + void write_number(const NumberType n) + { + // step 1: write number to array of length NumberType + std::array vec{}; + std::memcpy(vec.data(), &n, sizeof(NumberType)); + + // step 2: write array to output (with possible reordering) + if (is_little_endian != OutputIsLittleEndian) + { + // reverse byte order prior to conversion if necessary + std::reverse(vec.begin(), vec.end()); + } + + oa->write_characters(vec.data(), sizeof(NumberType)); + } + + void write_compact_float(const number_float_t n, detail::input_format_t format) + { +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfloat-equal" +#endif + if (static_cast(n) >= static_cast(std::numeric_limits::lowest()) && + static_cast(n) <= static_cast((std::numeric_limits::max)()) && + static_cast(static_cast(n)) == static_cast(n)) + { + oa->write_character(format == detail::input_format_t::cbor + ? get_cbor_float_prefix(static_cast(n)) + : get_msgpack_float_prefix(static_cast(n))); + write_number(static_cast(n)); + } + else + { + oa->write_character(format == detail::input_format_t::cbor + ? get_cbor_float_prefix(n) + : get_msgpack_float_prefix(n)); + write_number(n); + } +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + } + + public: + // The following to_char_type functions are implement the conversion + // between uint8_t and CharType. In case CharType is not unsigned, + // such a conversion is required to allow values greater than 128. + // See for a discussion. + template < typename C = CharType, + enable_if_t < std::is_signed::value && std::is_signed::value > * = nullptr > + static constexpr CharType to_char_type(std::uint8_t x) noexcept + { + return *reinterpret_cast(&x); + } + + template < typename C = CharType, + enable_if_t < std::is_signed::value && std::is_unsigned::value > * = nullptr > + static CharType to_char_type(std::uint8_t x) noexcept + { + static_assert(sizeof(std::uint8_t) == sizeof(CharType), "size of CharType must be equal to std::uint8_t"); + static_assert(std::is_trivial::value, "CharType must be trivial"); + CharType result; + std::memcpy(&result, &x, sizeof(x)); + return result; + } + + template::value>* = nullptr> + static constexpr CharType to_char_type(std::uint8_t x) noexcept + { + return x; + } + + template < typename InputCharType, typename C = CharType, + enable_if_t < + std::is_signed::value && + std::is_signed::value && + std::is_same::type>::value + > * = nullptr > + static constexpr CharType to_char_type(InputCharType x) noexcept + { + return x; + } + + private: + /// whether we can assume little endianess + const bool is_little_endian = little_endianess(); + + /// the output + output_adapter_t oa = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // reverse, remove, fill, find, none_of +#include // array +#include // localeconv, lconv +#include // labs, isfinite, isnan, signbit +#include // size_t, ptrdiff_t +#include // uint8_t +#include // snprintf +#include // numeric_limits +#include // string, char_traits +#include // is_same +#include // move + +// #include + + +#include // array +#include // signbit, isfinite +#include // intN_t, uintN_t +#include // memcpy, memmove +#include // numeric_limits +#include // conditional + +// #include + + +namespace nlohmann +{ +namespace detail +{ + +/*! +@brief implements the Grisu2 algorithm for binary to decimal floating-point +conversion. + +This implementation is a slightly modified version of the reference +implementation which may be obtained from +http://florian.loitsch.com/publications (bench.tar.gz). + +The code is distributed under the MIT license, Copyright (c) 2009 Florian Loitsch. + +For a detailed description of the algorithm see: + +[1] Loitsch, "Printing Floating-Point Numbers Quickly and Accurately with + Integers", Proceedings of the ACM SIGPLAN 2010 Conference on Programming + Language Design and Implementation, PLDI 2010 +[2] Burger, Dybvig, "Printing Floating-Point Numbers Quickly and Accurately", + Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language + Design and Implementation, PLDI 1996 +*/ +namespace dtoa_impl +{ + +template +Target reinterpret_bits(const Source source) +{ + static_assert(sizeof(Target) == sizeof(Source), "size mismatch"); + + Target target; + std::memcpy(&target, &source, sizeof(Source)); + return target; +} + +struct diyfp // f * 2^e +{ + static constexpr int kPrecision = 64; // = q + + std::uint64_t f = 0; + int e = 0; + + constexpr diyfp(std::uint64_t f_, int e_) noexcept : f(f_), e(e_) {} + + /*! + @brief returns x - y + @pre x.e == y.e and x.f >= y.f + */ + static diyfp sub(const diyfp& x, const diyfp& y) noexcept + { + JSON_ASSERT(x.e == y.e); + JSON_ASSERT(x.f >= y.f); + + return {x.f - y.f, x.e}; + } + + /*! + @brief returns x * y + @note The result is rounded. (Only the upper q bits are returned.) + */ + static diyfp mul(const diyfp& x, const diyfp& y) noexcept + { + static_assert(kPrecision == 64, "internal error"); + + // Computes: + // f = round((x.f * y.f) / 2^q) + // e = x.e + y.e + q + + // Emulate the 64-bit * 64-bit multiplication: + // + // p = u * v + // = (u_lo + 2^32 u_hi) (v_lo + 2^32 v_hi) + // = (u_lo v_lo ) + 2^32 ((u_lo v_hi ) + (u_hi v_lo )) + 2^64 (u_hi v_hi ) + // = (p0 ) + 2^32 ((p1 ) + (p2 )) + 2^64 (p3 ) + // = (p0_lo + 2^32 p0_hi) + 2^32 ((p1_lo + 2^32 p1_hi) + (p2_lo + 2^32 p2_hi)) + 2^64 (p3 ) + // = (p0_lo ) + 2^32 (p0_hi + p1_lo + p2_lo ) + 2^64 (p1_hi + p2_hi + p3) + // = (p0_lo ) + 2^32 (Q ) + 2^64 (H ) + // = (p0_lo ) + 2^32 (Q_lo + 2^32 Q_hi ) + 2^64 (H ) + // + // (Since Q might be larger than 2^32 - 1) + // + // = (p0_lo + 2^32 Q_lo) + 2^64 (Q_hi + H) + // + // (Q_hi + H does not overflow a 64-bit int) + // + // = p_lo + 2^64 p_hi + + const std::uint64_t u_lo = x.f & 0xFFFFFFFFu; + const std::uint64_t u_hi = x.f >> 32u; + const std::uint64_t v_lo = y.f & 0xFFFFFFFFu; + const std::uint64_t v_hi = y.f >> 32u; + + const std::uint64_t p0 = u_lo * v_lo; + const std::uint64_t p1 = u_lo * v_hi; + const std::uint64_t p2 = u_hi * v_lo; + const std::uint64_t p3 = u_hi * v_hi; + + const std::uint64_t p0_hi = p0 >> 32u; + const std::uint64_t p1_lo = p1 & 0xFFFFFFFFu; + const std::uint64_t p1_hi = p1 >> 32u; + const std::uint64_t p2_lo = p2 & 0xFFFFFFFFu; + const std::uint64_t p2_hi = p2 >> 32u; + + std::uint64_t Q = p0_hi + p1_lo + p2_lo; + + // The full product might now be computed as + // + // p_hi = p3 + p2_hi + p1_hi + (Q >> 32) + // p_lo = p0_lo + (Q << 32) + // + // But in this particular case here, the full p_lo is not required. + // Effectively we only need to add the highest bit in p_lo to p_hi (and + // Q_hi + 1 does not overflow). + + Q += std::uint64_t{1} << (64u - 32u - 1u); // round, ties up + + const std::uint64_t h = p3 + p2_hi + p1_hi + (Q >> 32u); + + return {h, x.e + y.e + 64}; + } + + /*! + @brief normalize x such that the significand is >= 2^(q-1) + @pre x.f != 0 + */ + static diyfp normalize(diyfp x) noexcept + { + JSON_ASSERT(x.f != 0); + + while ((x.f >> 63u) == 0) + { + x.f <<= 1u; + x.e--; + } + + return x; + } + + /*! + @brief normalize x such that the result has the exponent E + @pre e >= x.e and the upper e - x.e bits of x.f must be zero. + */ + static diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept + { + const int delta = x.e - target_exponent; + + JSON_ASSERT(delta >= 0); + JSON_ASSERT(((x.f << delta) >> delta) == x.f); + + return {x.f << delta, target_exponent}; + } +}; + +struct boundaries +{ + diyfp w; + diyfp minus; + diyfp plus; +}; + +/*! +Compute the (normalized) diyfp representing the input number 'value' and its +boundaries. + +@pre value must be finite and positive +*/ +template +boundaries compute_boundaries(FloatType value) +{ + JSON_ASSERT(std::isfinite(value)); + JSON_ASSERT(value > 0); + + // Convert the IEEE representation into a diyfp. + // + // If v is denormal: + // value = 0.F * 2^(1 - bias) = ( F) * 2^(1 - bias - (p-1)) + // If v is normalized: + // value = 1.F * 2^(E - bias) = (2^(p-1) + F) * 2^(E - bias - (p-1)) + + static_assert(std::numeric_limits::is_iec559, + "internal error: dtoa_short requires an IEEE-754 floating-point implementation"); + + constexpr int kPrecision = std::numeric_limits::digits; // = p (includes the hidden bit) + constexpr int kBias = std::numeric_limits::max_exponent - 1 + (kPrecision - 1); + constexpr int kMinExp = 1 - kBias; + constexpr std::uint64_t kHiddenBit = std::uint64_t{1} << (kPrecision - 1); // = 2^(p-1) + + using bits_type = typename std::conditional::type; + + const auto bits = static_cast(reinterpret_bits(value)); + const std::uint64_t E = bits >> (kPrecision - 1); + const std::uint64_t F = bits & (kHiddenBit - 1); + + const bool is_denormal = E == 0; + const diyfp v = is_denormal + ? diyfp(F, kMinExp) + : diyfp(F + kHiddenBit, static_cast(E) - kBias); + + // Compute the boundaries m- and m+ of the floating-point value + // v = f * 2^e. + // + // Determine v- and v+, the floating-point predecessor and successor if v, + // respectively. + // + // v- = v - 2^e if f != 2^(p-1) or e == e_min (A) + // = v - 2^(e-1) if f == 2^(p-1) and e > e_min (B) + // + // v+ = v + 2^e + // + // Let m- = (v- + v) / 2 and m+ = (v + v+) / 2. All real numbers _strictly_ + // between m- and m+ round to v, regardless of how the input rounding + // algorithm breaks ties. + // + // ---+-------------+-------------+-------------+-------------+--- (A) + // v- m- v m+ v+ + // + // -----------------+------+------+-------------+-------------+--- (B) + // v- m- v m+ v+ + + const bool lower_boundary_is_closer = F == 0 && E > 1; + const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_minus = lower_boundary_is_closer + ? diyfp(4 * v.f - 1, v.e - 2) // (B) + : diyfp(2 * v.f - 1, v.e - 1); // (A) + + // Determine the normalized w+ = m+. + const diyfp w_plus = diyfp::normalize(m_plus); + + // Determine w- = m- such that e_(w-) = e_(w+). + const diyfp w_minus = diyfp::normalize_to(m_minus, w_plus.e); + + return {diyfp::normalize(v), w_minus, w_plus}; +} + +// Given normalized diyfp w, Grisu needs to find a (normalized) cached +// power-of-ten c, such that the exponent of the product c * w = f * 2^e lies +// within a certain range [alpha, gamma] (Definition 3.2 from [1]) +// +// alpha <= e = e_c + e_w + q <= gamma +// +// or +// +// f_c * f_w * 2^alpha <= f_c 2^(e_c) * f_w 2^(e_w) * 2^q +// <= f_c * f_w * 2^gamma +// +// Since c and w are normalized, i.e. 2^(q-1) <= f < 2^q, this implies +// +// 2^(q-1) * 2^(q-1) * 2^alpha <= c * w * 2^q < 2^q * 2^q * 2^gamma +// +// or +// +// 2^(q - 2 + alpha) <= c * w < 2^(q + gamma) +// +// The choice of (alpha,gamma) determines the size of the table and the form of +// the digit generation procedure. Using (alpha,gamma)=(-60,-32) works out well +// in practice: +// +// The idea is to cut the number c * w = f * 2^e into two parts, which can be +// processed independently: An integral part p1, and a fractional part p2: +// +// f * 2^e = ( (f div 2^-e) * 2^-e + (f mod 2^-e) ) * 2^e +// = (f div 2^-e) + (f mod 2^-e) * 2^e +// = p1 + p2 * 2^e +// +// The conversion of p1 into decimal form requires a series of divisions and +// modulos by (a power of) 10. These operations are faster for 32-bit than for +// 64-bit integers, so p1 should ideally fit into a 32-bit integer. This can be +// achieved by choosing +// +// -e >= 32 or e <= -32 := gamma +// +// In order to convert the fractional part +// +// p2 * 2^e = p2 / 2^-e = d[-1] / 10^1 + d[-2] / 10^2 + ... +// +// into decimal form, the fraction is repeatedly multiplied by 10 and the digits +// d[-i] are extracted in order: +// +// (10 * p2) div 2^-e = d[-1] +// (10 * p2) mod 2^-e = d[-2] / 10^1 + ... +// +// The multiplication by 10 must not overflow. It is sufficient to choose +// +// 10 * p2 < 16 * p2 = 2^4 * p2 <= 2^64. +// +// Since p2 = f mod 2^-e < 2^-e, +// +// -e <= 60 or e >= -60 := alpha + +constexpr int kAlpha = -60; +constexpr int kGamma = -32; + +struct cached_power // c = f * 2^e ~= 10^k +{ + std::uint64_t f; + int e; + int k; +}; + +/*! +For a normalized diyfp w = f * 2^e, this function returns a (normalized) cached +power-of-ten c = f_c * 2^e_c, such that the exponent of the product w * c +satisfies (Definition 3.2 from [1]) + + alpha <= e_c + e + q <= gamma. +*/ +inline cached_power get_cached_power_for_binary_exponent(int e) +{ + // Now + // + // alpha <= e_c + e + q <= gamma (1) + // ==> f_c * 2^alpha <= c * 2^e * 2^q + // + // and since the c's are normalized, 2^(q-1) <= f_c, + // + // ==> 2^(q - 1 + alpha) <= c * 2^(e + q) + // ==> 2^(alpha - e - 1) <= c + // + // If c were an exact power of ten, i.e. c = 10^k, one may determine k as + // + // k = ceil( log_10( 2^(alpha - e - 1) ) ) + // = ceil( (alpha - e - 1) * log_10(2) ) + // + // From the paper: + // "In theory the result of the procedure could be wrong since c is rounded, + // and the computation itself is approximated [...]. In practice, however, + // this simple function is sufficient." + // + // For IEEE double precision floating-point numbers converted into + // normalized diyfp's w = f * 2^e, with q = 64, + // + // e >= -1022 (min IEEE exponent) + // -52 (p - 1) + // -52 (p - 1, possibly normalize denormal IEEE numbers) + // -11 (normalize the diyfp) + // = -1137 + // + // and + // + // e <= +1023 (max IEEE exponent) + // -52 (p - 1) + // -11 (normalize the diyfp) + // = 960 + // + // This binary exponent range [-1137,960] results in a decimal exponent + // range [-307,324]. One does not need to store a cached power for each + // k in this range. For each such k it suffices to find a cached power + // such that the exponent of the product lies in [alpha,gamma]. + // This implies that the difference of the decimal exponents of adjacent + // table entries must be less than or equal to + // + // floor( (gamma - alpha) * log_10(2) ) = 8. + // + // (A smaller distance gamma-alpha would require a larger table.) + + // NB: + // Actually this function returns c, such that -60 <= e_c + e + 64 <= -34. + + constexpr int kCachedPowersMinDecExp = -300; + constexpr int kCachedPowersDecStep = 8; + + static constexpr std::array kCachedPowers = + { + { + { 0xAB70FE17C79AC6CA, -1060, -300 }, + { 0xFF77B1FCBEBCDC4F, -1034, -292 }, + { 0xBE5691EF416BD60C, -1007, -284 }, + { 0x8DD01FAD907FFC3C, -980, -276 }, + { 0xD3515C2831559A83, -954, -268 }, + { 0x9D71AC8FADA6C9B5, -927, -260 }, + { 0xEA9C227723EE8BCB, -901, -252 }, + { 0xAECC49914078536D, -874, -244 }, + { 0x823C12795DB6CE57, -847, -236 }, + { 0xC21094364DFB5637, -821, -228 }, + { 0x9096EA6F3848984F, -794, -220 }, + { 0xD77485CB25823AC7, -768, -212 }, + { 0xA086CFCD97BF97F4, -741, -204 }, + { 0xEF340A98172AACE5, -715, -196 }, + { 0xB23867FB2A35B28E, -688, -188 }, + { 0x84C8D4DFD2C63F3B, -661, -180 }, + { 0xC5DD44271AD3CDBA, -635, -172 }, + { 0x936B9FCEBB25C996, -608, -164 }, + { 0xDBAC6C247D62A584, -582, -156 }, + { 0xA3AB66580D5FDAF6, -555, -148 }, + { 0xF3E2F893DEC3F126, -529, -140 }, + { 0xB5B5ADA8AAFF80B8, -502, -132 }, + { 0x87625F056C7C4A8B, -475, -124 }, + { 0xC9BCFF6034C13053, -449, -116 }, + { 0x964E858C91BA2655, -422, -108 }, + { 0xDFF9772470297EBD, -396, -100 }, + { 0xA6DFBD9FB8E5B88F, -369, -92 }, + { 0xF8A95FCF88747D94, -343, -84 }, + { 0xB94470938FA89BCF, -316, -76 }, + { 0x8A08F0F8BF0F156B, -289, -68 }, + { 0xCDB02555653131B6, -263, -60 }, + { 0x993FE2C6D07B7FAC, -236, -52 }, + { 0xE45C10C42A2B3B06, -210, -44 }, + { 0xAA242499697392D3, -183, -36 }, + { 0xFD87B5F28300CA0E, -157, -28 }, + { 0xBCE5086492111AEB, -130, -20 }, + { 0x8CBCCC096F5088CC, -103, -12 }, + { 0xD1B71758E219652C, -77, -4 }, + { 0x9C40000000000000, -50, 4 }, + { 0xE8D4A51000000000, -24, 12 }, + { 0xAD78EBC5AC620000, 3, 20 }, + { 0x813F3978F8940984, 30, 28 }, + { 0xC097CE7BC90715B3, 56, 36 }, + { 0x8F7E32CE7BEA5C70, 83, 44 }, + { 0xD5D238A4ABE98068, 109, 52 }, + { 0x9F4F2726179A2245, 136, 60 }, + { 0xED63A231D4C4FB27, 162, 68 }, + { 0xB0DE65388CC8ADA8, 189, 76 }, + { 0x83C7088E1AAB65DB, 216, 84 }, + { 0xC45D1DF942711D9A, 242, 92 }, + { 0x924D692CA61BE758, 269, 100 }, + { 0xDA01EE641A708DEA, 295, 108 }, + { 0xA26DA3999AEF774A, 322, 116 }, + { 0xF209787BB47D6B85, 348, 124 }, + { 0xB454E4A179DD1877, 375, 132 }, + { 0x865B86925B9BC5C2, 402, 140 }, + { 0xC83553C5C8965D3D, 428, 148 }, + { 0x952AB45CFA97A0B3, 455, 156 }, + { 0xDE469FBD99A05FE3, 481, 164 }, + { 0xA59BC234DB398C25, 508, 172 }, + { 0xF6C69A72A3989F5C, 534, 180 }, + { 0xB7DCBF5354E9BECE, 561, 188 }, + { 0x88FCF317F22241E2, 588, 196 }, + { 0xCC20CE9BD35C78A5, 614, 204 }, + { 0x98165AF37B2153DF, 641, 212 }, + { 0xE2A0B5DC971F303A, 667, 220 }, + { 0xA8D9D1535CE3B396, 694, 228 }, + { 0xFB9B7CD9A4A7443C, 720, 236 }, + { 0xBB764C4CA7A44410, 747, 244 }, + { 0x8BAB8EEFB6409C1A, 774, 252 }, + { 0xD01FEF10A657842C, 800, 260 }, + { 0x9B10A4E5E9913129, 827, 268 }, + { 0xE7109BFBA19C0C9D, 853, 276 }, + { 0xAC2820D9623BF429, 880, 284 }, + { 0x80444B5E7AA7CF85, 907, 292 }, + { 0xBF21E44003ACDD2D, 933, 300 }, + { 0x8E679C2F5E44FF8F, 960, 308 }, + { 0xD433179D9C8CB841, 986, 316 }, + { 0x9E19DB92B4E31BA9, 1013, 324 }, + } + }; + + // This computation gives exactly the same results for k as + // k = ceil((kAlpha - e - 1) * 0.30102999566398114) + // for |e| <= 1500, but doesn't require floating-point operations. + // NB: log_10(2) ~= 78913 / 2^18 + JSON_ASSERT(e >= -1500); + JSON_ASSERT(e <= 1500); + const int f = kAlpha - e - 1; + const int k = (f * 78913) / (1 << 18) + static_cast(f > 0); + + const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; + JSON_ASSERT(index >= 0); + JSON_ASSERT(static_cast(index) < kCachedPowers.size()); + + const cached_power cached = kCachedPowers[static_cast(index)]; + JSON_ASSERT(kAlpha <= cached.e + e + 64); + JSON_ASSERT(kGamma >= cached.e + e + 64); + + return cached; +} + +/*! +For n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k. +For n == 0, returns 1 and sets pow10 := 1. +*/ +inline int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10) +{ + // LCOV_EXCL_START + if (n >= 1000000000) + { + pow10 = 1000000000; + return 10; + } + // LCOV_EXCL_STOP + if (n >= 100000000) + { + pow10 = 100000000; + return 9; + } + if (n >= 10000000) + { + pow10 = 10000000; + return 8; + } + if (n >= 1000000) + { + pow10 = 1000000; + return 7; + } + if (n >= 100000) + { + pow10 = 100000; + return 6; + } + if (n >= 10000) + { + pow10 = 10000; + return 5; + } + if (n >= 1000) + { + pow10 = 1000; + return 4; + } + if (n >= 100) + { + pow10 = 100; + return 3; + } + if (n >= 10) + { + pow10 = 10; + return 2; + } + + pow10 = 1; + return 1; +} + +inline void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t delta, + std::uint64_t rest, std::uint64_t ten_k) +{ + JSON_ASSERT(len >= 1); + JSON_ASSERT(dist <= delta); + JSON_ASSERT(rest <= delta); + JSON_ASSERT(ten_k > 0); + + // <--------------------------- delta ----> + // <---- dist ---------> + // --------------[------------------+-------------------]-------------- + // M- w M+ + // + // ten_k + // <------> + // <---- rest ----> + // --------------[------------------+----+--------------]-------------- + // w V + // = buf * 10^k + // + // ten_k represents a unit-in-the-last-place in the decimal representation + // stored in buf. + // Decrement buf by ten_k while this takes buf closer to w. + + // The tests are written in this order to avoid overflow in unsigned + // integer arithmetic. + + while (rest < dist + && delta - rest >= ten_k + && (rest + ten_k < dist || dist - rest > rest + ten_k - dist)) + { + JSON_ASSERT(buf[len - 1] != '0'); + buf[len - 1]--; + rest += ten_k; + } +} + +/*! +Generates V = buffer * 10^decimal_exponent, such that M- <= V <= M+. +M- and M+ must be normalized and share the same exponent -60 <= e <= -32. +*/ +inline void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent, + diyfp M_minus, diyfp w, diyfp M_plus) +{ + static_assert(kAlpha >= -60, "internal error"); + static_assert(kGamma <= -32, "internal error"); + + // Generates the digits (and the exponent) of a decimal floating-point + // number V = buffer * 10^decimal_exponent in the range [M-, M+]. The diyfp's + // w, M- and M+ share the same exponent e, which satisfies alpha <= e <= gamma. + // + // <--------------------------- delta ----> + // <---- dist ---------> + // --------------[------------------+-------------------]-------------- + // M- w M+ + // + // Grisu2 generates the digits of M+ from left to right and stops as soon as + // V is in [M-,M+]. + + JSON_ASSERT(M_plus.e >= kAlpha); + JSON_ASSERT(M_plus.e <= kGamma); + + std::uint64_t delta = diyfp::sub(M_plus, M_minus).f; // (significand of (M+ - M-), implicit exponent is e) + std::uint64_t dist = diyfp::sub(M_plus, w ).f; // (significand of (M+ - w ), implicit exponent is e) + + // Split M+ = f * 2^e into two parts p1 and p2 (note: e < 0): + // + // M+ = f * 2^e + // = ((f div 2^-e) * 2^-e + (f mod 2^-e)) * 2^e + // = ((p1 ) * 2^-e + (p2 )) * 2^e + // = p1 + p2 * 2^e + + const diyfp one(std::uint64_t{1} << -M_plus.e, M_plus.e); + + auto p1 = static_cast(M_plus.f >> -one.e); // p1 = f div 2^-e (Since -e >= 32, p1 fits into a 32-bit int.) + std::uint64_t p2 = M_plus.f & (one.f - 1); // p2 = f mod 2^-e + + // 1) + // + // Generate the digits of the integral part p1 = d[n-1]...d[1]d[0] + + JSON_ASSERT(p1 > 0); + + std::uint32_t pow10{}; + const int k = find_largest_pow10(p1, pow10); + + // 10^(k-1) <= p1 < 10^k, pow10 = 10^(k-1) + // + // p1 = (p1 div 10^(k-1)) * 10^(k-1) + (p1 mod 10^(k-1)) + // = (d[k-1] ) * 10^(k-1) + (p1 mod 10^(k-1)) + // + // M+ = p1 + p2 * 2^e + // = d[k-1] * 10^(k-1) + (p1 mod 10^(k-1)) + p2 * 2^e + // = d[k-1] * 10^(k-1) + ((p1 mod 10^(k-1)) * 2^-e + p2) * 2^e + // = d[k-1] * 10^(k-1) + ( rest) * 2^e + // + // Now generate the digits d[n] of p1 from left to right (n = k-1,...,0) + // + // p1 = d[k-1]...d[n] * 10^n + d[n-1]...d[0] + // + // but stop as soon as + // + // rest * 2^e = (d[n-1]...d[0] * 2^-e + p2) * 2^e <= delta * 2^e + + int n = k; + while (n > 0) + { + // Invariants: + // M+ = buffer * 10^n + (p1 + p2 * 2^e) (buffer = 0 for n = k) + // pow10 = 10^(n-1) <= p1 < 10^n + // + const std::uint32_t d = p1 / pow10; // d = p1 div 10^(n-1) + const std::uint32_t r = p1 % pow10; // r = p1 mod 10^(n-1) + // + // M+ = buffer * 10^n + (d * 10^(n-1) + r) + p2 * 2^e + // = (buffer * 10 + d) * 10^(n-1) + (r + p2 * 2^e) + // + JSON_ASSERT(d <= 9); + buffer[length++] = static_cast('0' + d); // buffer := buffer * 10 + d + // + // M+ = buffer * 10^(n-1) + (r + p2 * 2^e) + // + p1 = r; + n--; + // + // M+ = buffer * 10^n + (p1 + p2 * 2^e) + // pow10 = 10^n + // + + // Now check if enough digits have been generated. + // Compute + // + // p1 + p2 * 2^e = (p1 * 2^-e + p2) * 2^e = rest * 2^e + // + // Note: + // Since rest and delta share the same exponent e, it suffices to + // compare the significands. + const std::uint64_t rest = (std::uint64_t{p1} << -one.e) + p2; + if (rest <= delta) + { + // V = buffer * 10^n, with M- <= V <= M+. + + decimal_exponent += n; + + // We may now just stop. But instead look if the buffer could be + // decremented to bring V closer to w. + // + // pow10 = 10^n is now 1 ulp in the decimal representation V. + // The rounding procedure works with diyfp's with an implicit + // exponent of e. + // + // 10^n = (10^n * 2^-e) * 2^e = ulp * 2^e + // + const std::uint64_t ten_n = std::uint64_t{pow10} << -one.e; + grisu2_round(buffer, length, dist, delta, rest, ten_n); + + return; + } + + pow10 /= 10; + // + // pow10 = 10^(n-1) <= p1 < 10^n + // Invariants restored. + } + + // 2) + // + // The digits of the integral part have been generated: + // + // M+ = d[k-1]...d[1]d[0] + p2 * 2^e + // = buffer + p2 * 2^e + // + // Now generate the digits of the fractional part p2 * 2^e. + // + // Note: + // No decimal point is generated: the exponent is adjusted instead. + // + // p2 actually represents the fraction + // + // p2 * 2^e + // = p2 / 2^-e + // = d[-1] / 10^1 + d[-2] / 10^2 + ... + // + // Now generate the digits d[-m] of p1 from left to right (m = 1,2,...) + // + // p2 * 2^e = d[-1]d[-2]...d[-m] * 10^-m + // + 10^-m * (d[-m-1] / 10^1 + d[-m-2] / 10^2 + ...) + // + // using + // + // 10^m * p2 = ((10^m * p2) div 2^-e) * 2^-e + ((10^m * p2) mod 2^-e) + // = ( d) * 2^-e + ( r) + // + // or + // 10^m * p2 * 2^e = d + r * 2^e + // + // i.e. + // + // M+ = buffer + p2 * 2^e + // = buffer + 10^-m * (d + r * 2^e) + // = (buffer * 10^m + d) * 10^-m + 10^-m * r * 2^e + // + // and stop as soon as 10^-m * r * 2^e <= delta * 2^e + + JSON_ASSERT(p2 > delta); + + int m = 0; + for (;;) + { + // Invariant: + // M+ = buffer * 10^-m + 10^-m * (d[-m-1] / 10 + d[-m-2] / 10^2 + ...) * 2^e + // = buffer * 10^-m + 10^-m * (p2 ) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * (10 * p2) ) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * ((10*p2 div 2^-e) * 2^-e + (10*p2 mod 2^-e)) * 2^e + // + JSON_ASSERT(p2 <= (std::numeric_limits::max)() / 10); + p2 *= 10; + const std::uint64_t d = p2 >> -one.e; // d = (10 * p2) div 2^-e + const std::uint64_t r = p2 & (one.f - 1); // r = (10 * p2) mod 2^-e + // + // M+ = buffer * 10^-m + 10^-m * (1/10 * (d * 2^-e + r) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * (d + r * 2^e)) + // = (buffer * 10 + d) * 10^(-m-1) + 10^(-m-1) * r * 2^e + // + JSON_ASSERT(d <= 9); + buffer[length++] = static_cast('0' + d); // buffer := buffer * 10 + d + // + // M+ = buffer * 10^(-m-1) + 10^(-m-1) * r * 2^e + // + p2 = r; + m++; + // + // M+ = buffer * 10^-m + 10^-m * p2 * 2^e + // Invariant restored. + + // Check if enough digits have been generated. + // + // 10^-m * p2 * 2^e <= delta * 2^e + // p2 * 2^e <= 10^m * delta * 2^e + // p2 <= 10^m * delta + delta *= 10; + dist *= 10; + if (p2 <= delta) + { + break; + } + } + + // V = buffer * 10^-m, with M- <= V <= M+. + + decimal_exponent -= m; + + // 1 ulp in the decimal representation is now 10^-m. + // Since delta and dist are now scaled by 10^m, we need to do the + // same with ulp in order to keep the units in sync. + // + // 10^m * 10^-m = 1 = 2^-e * 2^e = ten_m * 2^e + // + const std::uint64_t ten_m = one.f; + grisu2_round(buffer, length, dist, delta, p2, ten_m); + + // By construction this algorithm generates the shortest possible decimal + // number (Loitsch, Theorem 6.2) which rounds back to w. + // For an input number of precision p, at least + // + // N = 1 + ceil(p * log_10(2)) + // + // decimal digits are sufficient to identify all binary floating-point + // numbers (Matula, "In-and-Out conversions"). + // This implies that the algorithm does not produce more than N decimal + // digits. + // + // N = 17 for p = 53 (IEEE double precision) + // N = 9 for p = 24 (IEEE single precision) +} + +/*! +v = buf * 10^decimal_exponent +len is the length of the buffer (number of decimal digits) +The buffer must be large enough, i.e. >= max_digits10. +*/ +JSON_HEDLEY_NON_NULL(1) +inline void grisu2(char* buf, int& len, int& decimal_exponent, + diyfp m_minus, diyfp v, diyfp m_plus) +{ + JSON_ASSERT(m_plus.e == m_minus.e); + JSON_ASSERT(m_plus.e == v.e); + + // --------(-----------------------+-----------------------)-------- (A) + // m- v m+ + // + // --------------------(-----------+-----------------------)-------- (B) + // m- v m+ + // + // First scale v (and m- and m+) such that the exponent is in the range + // [alpha, gamma]. + + const cached_power cached = get_cached_power_for_binary_exponent(m_plus.e); + + const diyfp c_minus_k(cached.f, cached.e); // = c ~= 10^-k + + // The exponent of the products is = v.e + c_minus_k.e + q and is in the range [alpha,gamma] + const diyfp w = diyfp::mul(v, c_minus_k); + const diyfp w_minus = diyfp::mul(m_minus, c_minus_k); + const diyfp w_plus = diyfp::mul(m_plus, c_minus_k); + + // ----(---+---)---------------(---+---)---------------(---+---)---- + // w- w w+ + // = c*m- = c*v = c*m+ + // + // diyfp::mul rounds its result and c_minus_k is approximated too. w, w- and + // w+ are now off by a small amount. + // In fact: + // + // w - v * 10^k < 1 ulp + // + // To account for this inaccuracy, add resp. subtract 1 ulp. + // + // --------+---[---------------(---+---)---------------]---+-------- + // w- M- w M+ w+ + // + // Now any number in [M-, M+] (bounds included) will round to w when input, + // regardless of how the input rounding algorithm breaks ties. + // + // And digit_gen generates the shortest possible such number in [M-, M+]. + // Note that this does not mean that Grisu2 always generates the shortest + // possible number in the interval (m-, m+). + const diyfp M_minus(w_minus.f + 1, w_minus.e); + const diyfp M_plus (w_plus.f - 1, w_plus.e ); + + decimal_exponent = -cached.k; // = -(-k) = k + + grisu2_digit_gen(buf, len, decimal_exponent, M_minus, w, M_plus); +} + +/*! +v = buf * 10^decimal_exponent +len is the length of the buffer (number of decimal digits) +The buffer must be large enough, i.e. >= max_digits10. +*/ +template +JSON_HEDLEY_NON_NULL(1) +void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value) +{ + static_assert(diyfp::kPrecision >= std::numeric_limits::digits + 3, + "internal error: not enough precision"); + + JSON_ASSERT(std::isfinite(value)); + JSON_ASSERT(value > 0); + + // If the neighbors (and boundaries) of 'value' are always computed for double-precision + // numbers, all float's can be recovered using strtod (and strtof). However, the resulting + // decimal representations are not exactly "short". + // + // The documentation for 'std::to_chars' (https://en.cppreference.com/w/cpp/utility/to_chars) + // says "value is converted to a string as if by std::sprintf in the default ("C") locale" + // and since sprintf promotes float's to double's, I think this is exactly what 'std::to_chars' + // does. + // On the other hand, the documentation for 'std::to_chars' requires that "parsing the + // representation using the corresponding std::from_chars function recovers value exactly". That + // indicates that single precision floating-point numbers should be recovered using + // 'std::strtof'. + // + // NB: If the neighbors are computed for single-precision numbers, there is a single float + // (7.0385307e-26f) which can't be recovered using strtod. The resulting double precision + // value is off by 1 ulp. +#if 0 + const boundaries w = compute_boundaries(static_cast(value)); +#else + const boundaries w = compute_boundaries(value); +#endif + + grisu2(buf, len, decimal_exponent, w.minus, w.w, w.plus); +} + +/*! +@brief appends a decimal representation of e to buf +@return a pointer to the element following the exponent. +@pre -1000 < e < 1000 +*/ +JSON_HEDLEY_NON_NULL(1) +JSON_HEDLEY_RETURNS_NON_NULL +inline char* append_exponent(char* buf, int e) +{ + JSON_ASSERT(e > -1000); + JSON_ASSERT(e < 1000); + + if (e < 0) + { + e = -e; + *buf++ = '-'; + } + else + { + *buf++ = '+'; + } + + auto k = static_cast(e); + if (k < 10) + { + // Always print at least two digits in the exponent. + // This is for compatibility with printf("%g"). + *buf++ = '0'; + *buf++ = static_cast('0' + k); + } + else if (k < 100) + { + *buf++ = static_cast('0' + k / 10); + k %= 10; + *buf++ = static_cast('0' + k); + } + else + { + *buf++ = static_cast('0' + k / 100); + k %= 100; + *buf++ = static_cast('0' + k / 10); + k %= 10; + *buf++ = static_cast('0' + k); + } + + return buf; +} + +/*! +@brief prettify v = buf * 10^decimal_exponent + +If v is in the range [10^min_exp, 10^max_exp) it will be printed in fixed-point +notation. Otherwise it will be printed in exponential notation. + +@pre min_exp < 0 +@pre max_exp > 0 +*/ +JSON_HEDLEY_NON_NULL(1) +JSON_HEDLEY_RETURNS_NON_NULL +inline char* format_buffer(char* buf, int len, int decimal_exponent, + int min_exp, int max_exp) +{ + JSON_ASSERT(min_exp < 0); + JSON_ASSERT(max_exp > 0); + + const int k = len; + const int n = len + decimal_exponent; + + // v = buf * 10^(n-k) + // k is the length of the buffer (number of decimal digits) + // n is the position of the decimal point relative to the start of the buffer. + + if (k <= n && n <= max_exp) + { + // digits[000] + // len <= max_exp + 2 + + std::memset(buf + k, '0', static_cast(n) - static_cast(k)); + // Make it look like a floating-point number (#362, #378) + buf[n + 0] = '.'; + buf[n + 1] = '0'; + return buf + (static_cast(n) + 2); + } + + if (0 < n && n <= max_exp) + { + // dig.its + // len <= max_digits10 + 1 + + JSON_ASSERT(k > n); + + std::memmove(buf + (static_cast(n) + 1), buf + n, static_cast(k) - static_cast(n)); + buf[n] = '.'; + return buf + (static_cast(k) + 1U); + } + + if (min_exp < n && n <= 0) + { + // 0.[000]digits + // len <= 2 + (-min_exp - 1) + max_digits10 + + std::memmove(buf + (2 + static_cast(-n)), buf, static_cast(k)); + buf[0] = '0'; + buf[1] = '.'; + std::memset(buf + 2, '0', static_cast(-n)); + return buf + (2U + static_cast(-n) + static_cast(k)); + } + + if (k == 1) + { + // dE+123 + // len <= 1 + 5 + + buf += 1; + } + else + { + // d.igitsE+123 + // len <= max_digits10 + 1 + 5 + + std::memmove(buf + 2, buf + 1, static_cast(k) - 1); + buf[1] = '.'; + buf += 1 + static_cast(k); + } + + *buf++ = 'e'; + return append_exponent(buf, n - 1); +} + +} // namespace dtoa_impl + +/*! +@brief generates a decimal representation of the floating-point number value in [first, last). + +The format of the resulting decimal representation is similar to printf's %g +format. Returns an iterator pointing past-the-end of the decimal representation. + +@note The input number must be finite, i.e. NaN's and Inf's are not supported. +@note The buffer must be large enough. +@note The result is NOT null-terminated. +*/ +template +JSON_HEDLEY_NON_NULL(1, 2) +JSON_HEDLEY_RETURNS_NON_NULL +char* to_chars(char* first, const char* last, FloatType value) +{ + static_cast(last); // maybe unused - fix warning + JSON_ASSERT(std::isfinite(value)); + + // Use signbit(value) instead of (value < 0) since signbit works for -0. + if (std::signbit(value)) + { + value = -value; + *first++ = '-'; + } + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfloat-equal" +#endif + if (value == 0) // +-0 + { + *first++ = '0'; + // Make it look like a floating-point number (#362, #378) + *first++ = '.'; + *first++ = '0'; + return first; + } +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + + JSON_ASSERT(last - first >= std::numeric_limits::max_digits10); + + // Compute v = buffer * 10^decimal_exponent. + // The decimal digits are stored in the buffer, which needs to be interpreted + // as an unsigned decimal integer. + // len is the length of the buffer, i.e. the number of decimal digits. + int len = 0; + int decimal_exponent = 0; + dtoa_impl::grisu2(first, len, decimal_exponent, value); + + JSON_ASSERT(len <= std::numeric_limits::max_digits10); + + // Format the buffer like printf("%.*g", prec, value) + constexpr int kMinExp = -4; + // Use digits10 here to increase compatibility with version 2. + constexpr int kMaxExp = std::numeric_limits::digits10; + + JSON_ASSERT(last - first >= kMaxExp + 2); + JSON_ASSERT(last - first >= 2 + (-kMinExp - 1) + std::numeric_limits::max_digits10); + JSON_ASSERT(last - first >= std::numeric_limits::max_digits10 + 6); + + return dtoa_impl::format_buffer(first, len, decimal_exponent, kMinExp, kMaxExp); +} + +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// serialization // +/////////////////// + +/// how to treat decoding errors +enum class error_handler_t +{ + strict, ///< throw a type_error exception in case of invalid UTF-8 + replace, ///< replace invalid UTF-8 sequences with U+FFFD + ignore ///< ignore invalid UTF-8 sequences +}; + +template +class serializer +{ + using string_t = typename BasicJsonType::string_t; + using number_float_t = typename BasicJsonType::number_float_t; + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using binary_char_t = typename BasicJsonType::binary_t::value_type; + static constexpr std::uint8_t UTF8_ACCEPT = 0; + static constexpr std::uint8_t UTF8_REJECT = 1; + + public: + /*! + @param[in] s output stream to serialize to + @param[in] ichar indentation character to use + @param[in] error_handler_ how to react on decoding errors + */ + serializer(output_adapter_t s, const char ichar, + error_handler_t error_handler_ = error_handler_t::strict) + : o(std::move(s)) + , loc(std::localeconv()) + , thousands_sep(loc->thousands_sep == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->thousands_sep))) + , decimal_point(loc->decimal_point == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->decimal_point))) + , indent_char(ichar) + , indent_string(512, indent_char) + , error_handler(error_handler_) + {} + + // delete because of pointer members + serializer(const serializer&) = delete; + serializer& operator=(const serializer&) = delete; + serializer(serializer&&) = delete; + serializer& operator=(serializer&&) = delete; + ~serializer() = default; + + /*! + @brief internal implementation of the serialization function + + This function is called by the public member function dump and organizes + the serialization internally. The indentation level is propagated as + additional parameter. In case of arrays and objects, the function is + called recursively. + + - strings and object keys are escaped using `escape_string()` + - integer numbers are converted implicitly via `operator<<` + - floating-point numbers are converted to a string using `"%g"` format + - binary values are serialized as objects containing the subtype and the + byte array + + @param[in] val value to serialize + @param[in] pretty_print whether the output shall be pretty-printed + @param[in] ensure_ascii If @a ensure_ascii is true, all non-ASCII characters + in the output are escaped with `\uXXXX` sequences, and the result consists + of ASCII characters only. + @param[in] indent_step the indent level + @param[in] current_indent the current indent level (only used internally) + */ + void dump(const BasicJsonType& val, + const bool pretty_print, + const bool ensure_ascii, + const unsigned int indent_step, + const unsigned int current_indent = 0) + { + switch (val.m_type) + { + case value_t::object: + { + if (val.m_value.object->empty()) + { + o->write_characters("{}", 2); + return; + } + + if (pretty_print) + { + o->write_characters("{\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + // first n-1 elements + auto i = val.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + { + o->write_characters(indent_string.c_str(), new_indent); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\": ", 3); + dump(i->second, true, ensure_ascii, indent_step, new_indent); + o->write_characters(",\n", 2); + } + + // last element + JSON_ASSERT(i != val.m_value.object->cend()); + JSON_ASSERT(std::next(i) == val.m_value.object->cend()); + o->write_characters(indent_string.c_str(), new_indent); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\": ", 3); + dump(i->second, true, ensure_ascii, indent_step, new_indent); + + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character('}'); + } + else + { + o->write_character('{'); + + // first n-1 elements + auto i = val.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + { + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\":", 2); + dump(i->second, false, ensure_ascii, indent_step, current_indent); + o->write_character(','); + } + + // last element + JSON_ASSERT(i != val.m_value.object->cend()); + JSON_ASSERT(std::next(i) == val.m_value.object->cend()); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\":", 2); + dump(i->second, false, ensure_ascii, indent_step, current_indent); + + o->write_character('}'); + } + + return; + } + + case value_t::array: + { + if (val.m_value.array->empty()) + { + o->write_characters("[]", 2); + return; + } + + if (pretty_print) + { + o->write_characters("[\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + // first n-1 elements + for (auto i = val.m_value.array->cbegin(); + i != val.m_value.array->cend() - 1; ++i) + { + o->write_characters(indent_string.c_str(), new_indent); + dump(*i, true, ensure_ascii, indent_step, new_indent); + o->write_characters(",\n", 2); + } + + // last element + JSON_ASSERT(!val.m_value.array->empty()); + o->write_characters(indent_string.c_str(), new_indent); + dump(val.m_value.array->back(), true, ensure_ascii, indent_step, new_indent); + + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character(']'); + } + else + { + o->write_character('['); + + // first n-1 elements + for (auto i = val.m_value.array->cbegin(); + i != val.m_value.array->cend() - 1; ++i) + { + dump(*i, false, ensure_ascii, indent_step, current_indent); + o->write_character(','); + } + + // last element + JSON_ASSERT(!val.m_value.array->empty()); + dump(val.m_value.array->back(), false, ensure_ascii, indent_step, current_indent); + + o->write_character(']'); + } + + return; + } + + case value_t::string: + { + o->write_character('\"'); + dump_escaped(*val.m_value.string, ensure_ascii); + o->write_character('\"'); + return; + } + + case value_t::binary: + { + if (pretty_print) + { + o->write_characters("{\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + o->write_characters(indent_string.c_str(), new_indent); + + o->write_characters("\"bytes\": [", 10); + + if (!val.m_value.binary->empty()) + { + for (auto i = val.m_value.binary->cbegin(); + i != val.m_value.binary->cend() - 1; ++i) + { + dump_integer(*i); + o->write_characters(", ", 2); + } + dump_integer(val.m_value.binary->back()); + } + + o->write_characters("],\n", 3); + o->write_characters(indent_string.c_str(), new_indent); + + o->write_characters("\"subtype\": ", 11); + if (val.m_value.binary->has_subtype()) + { + dump_integer(val.m_value.binary->subtype()); + } + else + { + o->write_characters("null", 4); + } + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character('}'); + } + else + { + o->write_characters("{\"bytes\":[", 10); + + if (!val.m_value.binary->empty()) + { + for (auto i = val.m_value.binary->cbegin(); + i != val.m_value.binary->cend() - 1; ++i) + { + dump_integer(*i); + o->write_character(','); + } + dump_integer(val.m_value.binary->back()); + } + + o->write_characters("],\"subtype\":", 12); + if (val.m_value.binary->has_subtype()) + { + dump_integer(val.m_value.binary->subtype()); + o->write_character('}'); + } + else + { + o->write_characters("null}", 5); + } + } + return; + } + + case value_t::boolean: + { + if (val.m_value.boolean) + { + o->write_characters("true", 4); + } + else + { + o->write_characters("false", 5); + } + return; + } + + case value_t::number_integer: + { + dump_integer(val.m_value.number_integer); + return; + } + + case value_t::number_unsigned: + { + dump_integer(val.m_value.number_unsigned); + return; + } + + case value_t::number_float: + { + dump_float(val.m_value.number_float); + return; + } + + case value_t::discarded: + { + o->write_characters("", 11); + return; + } + + case value_t::null: + { + o->write_characters("null", 4); + return; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + } + + JSON_PRIVATE_UNLESS_TESTED: + /*! + @brief dump escaped string + + Escape a string by replacing certain special characters by a sequence of an + escape character (backslash) and another character and other control + characters by a sequence of "\u" followed by a four-digit hex + representation. The escaped string is written to output stream @a o. + + @param[in] s the string to escape + @param[in] ensure_ascii whether to escape non-ASCII characters with + \uXXXX sequences + + @complexity Linear in the length of string @a s. + */ + void dump_escaped(const string_t& s, const bool ensure_ascii) + { + std::uint32_t codepoint{}; + std::uint8_t state = UTF8_ACCEPT; + std::size_t bytes = 0; // number of bytes written to string_buffer + + // number of bytes written at the point of the last valid byte + std::size_t bytes_after_last_accept = 0; + std::size_t undumped_chars = 0; + + for (std::size_t i = 0; i < s.size(); ++i) + { + const auto byte = static_cast(s[i]); + + switch (decode(state, codepoint, byte)) + { + case UTF8_ACCEPT: // decode found a new code point + { + switch (codepoint) + { + case 0x08: // backspace + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'b'; + break; + } + + case 0x09: // horizontal tab + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 't'; + break; + } + + case 0x0A: // newline + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'n'; + break; + } + + case 0x0C: // formfeed + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'f'; + break; + } + + case 0x0D: // carriage return + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'r'; + break; + } + + case 0x22: // quotation mark + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = '\"'; + break; + } + + case 0x5C: // reverse solidus + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = '\\'; + break; + } + + default: + { + // escape control characters (0x00..0x1F) or, if + // ensure_ascii parameter is used, non-ASCII characters + if ((codepoint <= 0x1F) || (ensure_ascii && (codepoint >= 0x7F))) + { + if (codepoint <= 0xFFFF) + { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + (std::snprintf)(string_buffer.data() + bytes, 7, "\\u%04x", + static_cast(codepoint)); + bytes += 6; + } + else + { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + (std::snprintf)(string_buffer.data() + bytes, 13, "\\u%04x\\u%04x", + static_cast(0xD7C0u + (codepoint >> 10u)), + static_cast(0xDC00u + (codepoint & 0x3FFu))); + bytes += 12; + } + } + else + { + // copy byte to buffer (all previous bytes + // been copied have in default case above) + string_buffer[bytes++] = s[i]; + } + break; + } + } + + // write buffer and reset index; there must be 13 bytes + // left, as this is the maximal number of bytes to be + // written ("\uxxxx\uxxxx\0") for one code point + if (string_buffer.size() - bytes < 13) + { + o->write_characters(string_buffer.data(), bytes); + bytes = 0; + } + + // remember the byte position of this accept + bytes_after_last_accept = bytes; + undumped_chars = 0; + break; + } + + case UTF8_REJECT: // decode found invalid UTF-8 byte + { + switch (error_handler) + { + case error_handler_t::strict: + { + std::string sn(9, '\0'); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + (std::snprintf)(&sn[0], sn.size(), "%.2X", byte); + JSON_THROW(type_error::create(316, "invalid UTF-8 byte at index " + std::to_string(i) + ": 0x" + sn, BasicJsonType())); + } + + case error_handler_t::ignore: + case error_handler_t::replace: + { + // in case we saw this character the first time, we + // would like to read it again, because the byte + // may be OK for itself, but just not OK for the + // previous sequence + if (undumped_chars > 0) + { + --i; + } + + // reset length buffer to the last accepted index; + // thus removing/ignoring the invalid characters + bytes = bytes_after_last_accept; + + if (error_handler == error_handler_t::replace) + { + // add a replacement character + if (ensure_ascii) + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'u'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'd'; + } + else + { + string_buffer[bytes++] = detail::binary_writer::to_char_type('\xEF'); + string_buffer[bytes++] = detail::binary_writer::to_char_type('\xBF'); + string_buffer[bytes++] = detail::binary_writer::to_char_type('\xBD'); + } + + // write buffer and reset index; there must be 13 bytes + // left, as this is the maximal number of bytes to be + // written ("\uxxxx\uxxxx\0") for one code point + if (string_buffer.size() - bytes < 13) + { + o->write_characters(string_buffer.data(), bytes); + bytes = 0; + } + + bytes_after_last_accept = bytes; + } + + undumped_chars = 0; + + // continue processing the string + state = UTF8_ACCEPT; + break; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + break; + } + + default: // decode found yet incomplete multi-byte code point + { + if (!ensure_ascii) + { + // code point will not be escaped - copy byte to buffer + string_buffer[bytes++] = s[i]; + } + ++undumped_chars; + break; + } + } + } + + // we finished processing the string + if (JSON_HEDLEY_LIKELY(state == UTF8_ACCEPT)) + { + // write buffer + if (bytes > 0) + { + o->write_characters(string_buffer.data(), bytes); + } + } + else + { + // we finish reading, but do not accept: string was incomplete + switch (error_handler) + { + case error_handler_t::strict: + { + std::string sn(9, '\0'); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + (std::snprintf)(&sn[0], sn.size(), "%.2X", static_cast(s.back())); + JSON_THROW(type_error::create(316, "incomplete UTF-8 string; last byte: 0x" + sn, BasicJsonType())); + } + + case error_handler_t::ignore: + { + // write all accepted bytes + o->write_characters(string_buffer.data(), bytes_after_last_accept); + break; + } + + case error_handler_t::replace: + { + // write all accepted bytes + o->write_characters(string_buffer.data(), bytes_after_last_accept); + // add a replacement character + if (ensure_ascii) + { + o->write_characters("\\ufffd", 6); + } + else + { + o->write_characters("\xEF\xBF\xBD", 3); + } + break; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + } + } + + private: + /*! + @brief count digits + + Count the number of decimal (base 10) digits for an input unsigned integer. + + @param[in] x unsigned integer number to count its digits + @return number of decimal digits + */ + inline unsigned int count_digits(number_unsigned_t x) noexcept + { + unsigned int n_digits = 1; + for (;;) + { + if (x < 10) + { + return n_digits; + } + if (x < 100) + { + return n_digits + 1; + } + if (x < 1000) + { + return n_digits + 2; + } + if (x < 10000) + { + return n_digits + 3; + } + x = x / 10000u; + n_digits += 4; + } + } + + /*! + @brief dump an integer + + Dump a given integer to output stream @a o. Works internally with + @a number_buffer. + + @param[in] x integer number (signed or unsigned) to dump + @tparam NumberType either @a number_integer_t or @a number_unsigned_t + */ + template < typename NumberType, detail::enable_if_t < + std::is_integral::value || + std::is_same::value || + std::is_same::value || + std::is_same::value, + int > = 0 > + void dump_integer(NumberType x) + { + static constexpr std::array, 100> digits_to_99 + { + { + {{'0', '0'}}, {{'0', '1'}}, {{'0', '2'}}, {{'0', '3'}}, {{'0', '4'}}, {{'0', '5'}}, {{'0', '6'}}, {{'0', '7'}}, {{'0', '8'}}, {{'0', '9'}}, + {{'1', '0'}}, {{'1', '1'}}, {{'1', '2'}}, {{'1', '3'}}, {{'1', '4'}}, {{'1', '5'}}, {{'1', '6'}}, {{'1', '7'}}, {{'1', '8'}}, {{'1', '9'}}, + {{'2', '0'}}, {{'2', '1'}}, {{'2', '2'}}, {{'2', '3'}}, {{'2', '4'}}, {{'2', '5'}}, {{'2', '6'}}, {{'2', '7'}}, {{'2', '8'}}, {{'2', '9'}}, + {{'3', '0'}}, {{'3', '1'}}, {{'3', '2'}}, {{'3', '3'}}, {{'3', '4'}}, {{'3', '5'}}, {{'3', '6'}}, {{'3', '7'}}, {{'3', '8'}}, {{'3', '9'}}, + {{'4', '0'}}, {{'4', '1'}}, {{'4', '2'}}, {{'4', '3'}}, {{'4', '4'}}, {{'4', '5'}}, {{'4', '6'}}, {{'4', '7'}}, {{'4', '8'}}, {{'4', '9'}}, + {{'5', '0'}}, {{'5', '1'}}, {{'5', '2'}}, {{'5', '3'}}, {{'5', '4'}}, {{'5', '5'}}, {{'5', '6'}}, {{'5', '7'}}, {{'5', '8'}}, {{'5', '9'}}, + {{'6', '0'}}, {{'6', '1'}}, {{'6', '2'}}, {{'6', '3'}}, {{'6', '4'}}, {{'6', '5'}}, {{'6', '6'}}, {{'6', '7'}}, {{'6', '8'}}, {{'6', '9'}}, + {{'7', '0'}}, {{'7', '1'}}, {{'7', '2'}}, {{'7', '3'}}, {{'7', '4'}}, {{'7', '5'}}, {{'7', '6'}}, {{'7', '7'}}, {{'7', '8'}}, {{'7', '9'}}, + {{'8', '0'}}, {{'8', '1'}}, {{'8', '2'}}, {{'8', '3'}}, {{'8', '4'}}, {{'8', '5'}}, {{'8', '6'}}, {{'8', '7'}}, {{'8', '8'}}, {{'8', '9'}}, + {{'9', '0'}}, {{'9', '1'}}, {{'9', '2'}}, {{'9', '3'}}, {{'9', '4'}}, {{'9', '5'}}, {{'9', '6'}}, {{'9', '7'}}, {{'9', '8'}}, {{'9', '9'}}, + } + }; + + // special case for "0" + if (x == 0) + { + o->write_character('0'); + return; + } + + // use a pointer to fill the buffer + auto buffer_ptr = number_buffer.begin(); // NOLINT(llvm-qualified-auto,readability-qualified-auto,cppcoreguidelines-pro-type-vararg,hicpp-vararg) + + const bool is_negative = std::is_signed::value && !(x >= 0); // see issue #755 + number_unsigned_t abs_value; + + unsigned int n_chars{}; + + if (is_negative) + { + *buffer_ptr = '-'; + abs_value = remove_sign(static_cast(x)); + + // account one more byte for the minus sign + n_chars = 1 + count_digits(abs_value); + } + else + { + abs_value = static_cast(x); + n_chars = count_digits(abs_value); + } + + // spare 1 byte for '\0' + JSON_ASSERT(n_chars < number_buffer.size() - 1); + + // jump to the end to generate the string from backward + // so we later avoid reversing the result + buffer_ptr += n_chars; + + // Fast int2ascii implementation inspired by "Fastware" talk by Andrei Alexandrescu + // See: https://www.youtube.com/watch?v=o4-CwDo2zpg + while (abs_value >= 100) + { + const auto digits_index = static_cast((abs_value % 100)); + abs_value /= 100; + *(--buffer_ptr) = digits_to_99[digits_index][1]; + *(--buffer_ptr) = digits_to_99[digits_index][0]; + } + + if (abs_value >= 10) + { + const auto digits_index = static_cast(abs_value); + *(--buffer_ptr) = digits_to_99[digits_index][1]; + *(--buffer_ptr) = digits_to_99[digits_index][0]; + } + else + { + *(--buffer_ptr) = static_cast('0' + abs_value); + } + + o->write_characters(number_buffer.data(), n_chars); + } + + /*! + @brief dump a floating-point number + + Dump a given floating-point number to output stream @a o. Works internally + with @a number_buffer. + + @param[in] x floating-point number to dump + */ + void dump_float(number_float_t x) + { + // NaN / inf + if (!std::isfinite(x)) + { + o->write_characters("null", 4); + return; + } + + // If number_float_t is an IEEE-754 single or double precision number, + // use the Grisu2 algorithm to produce short numbers which are + // guaranteed to round-trip, using strtof and strtod, resp. + // + // NB: The test below works if == . + static constexpr bool is_ieee_single_or_double + = (std::numeric_limits::is_iec559 && std::numeric_limits::digits == 24 && std::numeric_limits::max_exponent == 128) || + (std::numeric_limits::is_iec559 && std::numeric_limits::digits == 53 && std::numeric_limits::max_exponent == 1024); + + dump_float(x, std::integral_constant()); + } + + void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/) + { + auto* begin = number_buffer.data(); + auto* end = ::nlohmann::detail::to_chars(begin, begin + number_buffer.size(), x); + + o->write_characters(begin, static_cast(end - begin)); + } + + void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/) + { + // get number of digits for a float -> text -> float round-trip + static constexpr auto d = std::numeric_limits::max_digits10; + + // the actual conversion + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + std::ptrdiff_t len = (std::snprintf)(number_buffer.data(), number_buffer.size(), "%.*g", d, x); + + // negative value indicates an error + JSON_ASSERT(len > 0); + // check if buffer was large enough + JSON_ASSERT(static_cast(len) < number_buffer.size()); + + // erase thousands separator + if (thousands_sep != '\0') + { + // NOLINTNEXTLINE(readability-qualified-auto,llvm-qualified-auto): std::remove returns an iterator, see https://github.com/nlohmann/json/issues/3081 + const auto end = std::remove(number_buffer.begin(), number_buffer.begin() + len, thousands_sep); + std::fill(end, number_buffer.end(), '\0'); + JSON_ASSERT((end - number_buffer.begin()) <= len); + len = (end - number_buffer.begin()); + } + + // convert decimal point to '.' + if (decimal_point != '\0' && decimal_point != '.') + { + // NOLINTNEXTLINE(readability-qualified-auto,llvm-qualified-auto): std::find returns an iterator, see https://github.com/nlohmann/json/issues/3081 + const auto dec_pos = std::find(number_buffer.begin(), number_buffer.end(), decimal_point); + if (dec_pos != number_buffer.end()) + { + *dec_pos = '.'; + } + } + + o->write_characters(number_buffer.data(), static_cast(len)); + + // determine if need to append ".0" + const bool value_is_int_like = + std::none_of(number_buffer.begin(), number_buffer.begin() + len + 1, + [](char c) + { + return c == '.' || c == 'e'; + }); + + if (value_is_int_like) + { + o->write_characters(".0", 2); + } + } + + /*! + @brief check whether a string is UTF-8 encoded + + The function checks each byte of a string whether it is UTF-8 encoded. The + result of the check is stored in the @a state parameter. The function must + be called initially with state 0 (accept). State 1 means the string must + be rejected, because the current byte is not allowed. If the string is + completely processed, but the state is non-zero, the string ended + prematurely; that is, the last byte indicated more bytes should have + followed. + + @param[in,out] state the state of the decoding + @param[in,out] codep codepoint (valid only if resulting state is UTF8_ACCEPT) + @param[in] byte next byte to decode + @return new state + + @note The function has been edited: a std::array is used. + + @copyright Copyright (c) 2008-2009 Bjoern Hoehrmann + @sa http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + */ + static std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const std::uint8_t byte) noexcept + { + static const std::array utf8d = + { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 00..1F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20..3F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 40..5F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 60..7F + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // 80..9F + 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, // A0..BF + 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // C0..DF + 0xA, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, // E0..EF + 0xB, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, // F0..FF + 0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, 0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, // s0..s0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, // s1..s2 + 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, // s3..s4 + 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, // s5..s6 + 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // s7..s8 + } + }; + + JSON_ASSERT(byte < utf8d.size()); + const std::uint8_t type = utf8d[byte]; + + codep = (state != UTF8_ACCEPT) + ? (byte & 0x3fu) | (codep << 6u) + : (0xFFu >> type) & (byte); + + std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); + JSON_ASSERT(index < 400); + state = utf8d[index]; + return state; + } + + /* + * Overload to make the compiler happy while it is instantiating + * dump_integer for number_unsigned_t. + * Must never be called. + */ + number_unsigned_t remove_sign(number_unsigned_t x) + { + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + return x; // LCOV_EXCL_LINE + } + + /* + * Helper function for dump_integer + * + * This function takes a negative signed integer and returns its absolute + * value as unsigned integer. The plus/minus shuffling is necessary as we can + * not directly remove the sign of an arbitrary signed integer as the + * absolute values of INT_MIN and INT_MAX are usually not the same. See + * #1708 for details. + */ + inline number_unsigned_t remove_sign(number_integer_t x) noexcept + { + JSON_ASSERT(x < 0 && x < (std::numeric_limits::max)()); // NOLINT(misc-redundant-expression) + return static_cast(-(x + 1)) + 1; + } + + private: + /// the output of the serializer + output_adapter_t o = nullptr; + + /// a (hopefully) large enough character buffer + std::array number_buffer{{}}; + + /// the locale + const std::lconv* loc = nullptr; + /// the locale's thousand separator character + const char thousands_sep = '\0'; + /// the locale's decimal point character + const char decimal_point = '\0'; + + /// string buffer + std::array string_buffer{{}}; + + /// the indentation character + const char indent_char; + /// the indentation string + string_t indent_string; + + /// error_handler how to react on decoding errors + const error_handler_t error_handler; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + + +#include // less +#include // initializer_list +#include // input_iterator_tag, iterator_traits +#include // allocator +#include // for out_of_range +#include // enable_if, is_convertible +#include // pair +#include // vector + +// #include + + +namespace nlohmann +{ + +/// ordered_map: a minimal map-like container that preserves insertion order +/// for use within nlohmann::basic_json +template , + class Allocator = std::allocator>> + struct ordered_map : std::vector, Allocator> +{ + using key_type = Key; + using mapped_type = T; + using Container = std::vector, Allocator>; + using typename Container::iterator; + using typename Container::const_iterator; + using typename Container::size_type; + using typename Container::value_type; + + // Explicit constructors instead of `using Container::Container` + // otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4) + ordered_map(const Allocator& alloc = Allocator()) : Container{alloc} {} + template + ordered_map(It first, It last, const Allocator& alloc = Allocator()) + : Container{first, last, alloc} {} + ordered_map(std::initializer_list init, const Allocator& alloc = Allocator() ) + : Container{init, alloc} {} + + std::pair emplace(const key_type& key, T&& t) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return {it, false}; + } + } + Container::emplace_back(key, t); + return {--this->end(), true}; + } + + T& operator[](const Key& key) + { + return emplace(key, T{}).first->second; + } + + const T& operator[](const Key& key) const + { + return at(key); + } + + T& at(const Key& key) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it->second; + } + } + + JSON_THROW(std::out_of_range("key not found")); + } + + const T& at(const Key& key) const + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it->second; + } + } + + JSON_THROW(std::out_of_range("key not found")); + } + + size_type erase(const Key& key) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + // Since we cannot move const Keys, re-construct them in place + for (auto next = it; ++next != this->end(); ++it) + { + it->~value_type(); // Destroy but keep allocation + new (&*it) value_type{std::move(*next)}; + } + Container::pop_back(); + return 1; + } + } + return 0; + } + + iterator erase(iterator pos) + { + auto it = pos; + + // Since we cannot move const Keys, re-construct them in place + for (auto next = it; ++next != this->end(); ++it) + { + it->~value_type(); // Destroy but keep allocation + new (&*it) value_type{std::move(*next)}; + } + Container::pop_back(); + return pos; + } + + size_type count(const Key& key) const + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return 1; + } + } + return 0; + } + + iterator find(const Key& key) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it; + } + } + return Container::end(); + } + + const_iterator find(const Key& key) const + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it; + } + } + return Container::end(); + } + + std::pair insert( value_type&& value ) + { + return emplace(value.first, std::move(value.second)); + } + + std::pair insert( const value_type& value ) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == value.first) + { + return {it, false}; + } + } + Container::push_back(value); + return {--this->end(), true}; + } + + template + using require_input_iter = typename std::enable_if::iterator_category, + std::input_iterator_tag>::value>::type; + + template> + void insert(InputIt first, InputIt last) + { + for (auto it = first; it != last; ++it) + { + insert(*it); + } + } +}; + +} // namespace nlohmann + + +#if defined(JSON_HAS_CPP_17) + #include +#endif + +/*! +@brief namespace for Niels Lohmann +@see https://github.com/nlohmann +@since version 1.0.0 +*/ +namespace nlohmann +{ + +/*! +@brief a class to store JSON values + +@tparam ObjectType type for JSON objects (`std::map` by default; will be used +in @ref object_t) +@tparam ArrayType type for JSON arrays (`std::vector` by default; will be used +in @ref array_t) +@tparam StringType type for JSON strings and object keys (`std::string` by +default; will be used in @ref string_t) +@tparam BooleanType type for JSON booleans (`bool` by default; will be used +in @ref boolean_t) +@tparam NumberIntegerType type for JSON integer numbers (`int64_t` by +default; will be used in @ref number_integer_t) +@tparam NumberUnsignedType type for JSON unsigned integer numbers (@c +`uint64_t` by default; will be used in @ref number_unsigned_t) +@tparam NumberFloatType type for JSON floating-point numbers (`double` by +default; will be used in @ref number_float_t) +@tparam BinaryType type for packed binary data for compatibility with binary +serialization formats (`std::vector` by default; will be used in +@ref binary_t) +@tparam AllocatorType type of the allocator to use (`std::allocator` by +default) +@tparam JSONSerializer the serializer to resolve internal calls to `to_json()` +and `from_json()` (@ref adl_serializer by default) + +@requirement The class satisfies the following concept requirements: +- Basic + - [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible): + JSON values can be default constructed. The result will be a JSON null + value. + - [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible): + A JSON value can be constructed from an rvalue argument. + - [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible): + A JSON value can be copy-constructed from an lvalue expression. + - [MoveAssignable](https://en.cppreference.com/w/cpp/named_req/MoveAssignable): + A JSON value van be assigned from an rvalue argument. + - [CopyAssignable](https://en.cppreference.com/w/cpp/named_req/CopyAssignable): + A JSON value can be copy-assigned from an lvalue expression. + - [Destructible](https://en.cppreference.com/w/cpp/named_req/Destructible): + JSON values can be destructed. +- Layout + - [StandardLayoutType](https://en.cppreference.com/w/cpp/named_req/StandardLayoutType): + JSON values have + [standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout): + All non-static data members are private and standard layout types, the + class has no virtual functions or (virtual) base classes. +- Library-wide + - [EqualityComparable](https://en.cppreference.com/w/cpp/named_req/EqualityComparable): + JSON values can be compared with `==`, see @ref + operator==(const_reference,const_reference). + - [LessThanComparable](https://en.cppreference.com/w/cpp/named_req/LessThanComparable): + JSON values can be compared with `<`, see @ref + operator<(const_reference,const_reference). + - [Swappable](https://en.cppreference.com/w/cpp/named_req/Swappable): + Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of + other compatible types, using unqualified function call @ref swap(). + - [NullablePointer](https://en.cppreference.com/w/cpp/named_req/NullablePointer): + JSON values can be compared against `std::nullptr_t` objects which are used + to model the `null` value. +- Container + - [Container](https://en.cppreference.com/w/cpp/named_req/Container): + JSON values can be used like STL containers and provide iterator access. + - [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer); + JSON values can be used like STL containers and provide reverse iterator + access. + +@invariant The member variables @a m_value and @a m_type have the following +relationship: +- If `m_type == value_t::object`, then `m_value.object != nullptr`. +- If `m_type == value_t::array`, then `m_value.array != nullptr`. +- If `m_type == value_t::string`, then `m_value.string != nullptr`. +The invariants are checked by member function assert_invariant(). + +@internal +@note ObjectType trick from https://stackoverflow.com/a/9860911 +@endinternal + +@see [RFC 8259: The JavaScript Object Notation (JSON) Data Interchange +Format](https://tools.ietf.org/html/rfc8259) + +@since version 1.0.0 + +@nosubgrouping +*/ +NLOHMANN_BASIC_JSON_TPL_DECLARATION +class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions) +{ + private: + template friend struct detail::external_constructor; + friend ::nlohmann::json_pointer; + + template + friend class ::nlohmann::detail::parser; + friend ::nlohmann::detail::serializer; + template + friend class ::nlohmann::detail::iter_impl; + template + friend class ::nlohmann::detail::binary_writer; + template + friend class ::nlohmann::detail::binary_reader; + template + friend class ::nlohmann::detail::json_sax_dom_parser; + template + friend class ::nlohmann::detail::json_sax_dom_callback_parser; + friend class ::nlohmann::detail::exception; + + /// workaround type for MSVC + using basic_json_t = NLOHMANN_BASIC_JSON_TPL; + + JSON_PRIVATE_UNLESS_TESTED: + // convenience aliases for types residing in namespace detail; + using lexer = ::nlohmann::detail::lexer_base; + + template + static ::nlohmann::detail::parser parser( + InputAdapterType adapter, + detail::parser_callback_tcb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false + ) + { + return ::nlohmann::detail::parser(std::move(adapter), + std::move(cb), allow_exceptions, ignore_comments); + } + + private: + using primitive_iterator_t = ::nlohmann::detail::primitive_iterator_t; + template + using internal_iterator = ::nlohmann::detail::internal_iterator; + template + using iter_impl = ::nlohmann::detail::iter_impl; + template + using iteration_proxy = ::nlohmann::detail::iteration_proxy; + template using json_reverse_iterator = ::nlohmann::detail::json_reverse_iterator; + + template + using output_adapter_t = ::nlohmann::detail::output_adapter_t; + + template + using binary_reader = ::nlohmann::detail::binary_reader; + template using binary_writer = ::nlohmann::detail::binary_writer; + + JSON_PRIVATE_UNLESS_TESTED: + using serializer = ::nlohmann::detail::serializer; + + public: + using value_t = detail::value_t; + /// JSON Pointer, see @ref nlohmann::json_pointer + using json_pointer = ::nlohmann::json_pointer; + template + using json_serializer = JSONSerializer; + /// how to treat decoding errors + using error_handler_t = detail::error_handler_t; + /// how to treat CBOR tags + using cbor_tag_handler_t = detail::cbor_tag_handler_t; + /// helper type for initializer lists of basic_json values + using initializer_list_t = std::initializer_list>; + + using input_format_t = detail::input_format_t; + /// SAX interface type, see @ref nlohmann::json_sax + using json_sax_t = json_sax; + + //////////////// + // exceptions // + //////////////// + + /// @name exceptions + /// Classes to implement user-defined exceptions. + /// @{ + + /// @copydoc detail::exception + using exception = detail::exception; + /// @copydoc detail::parse_error + using parse_error = detail::parse_error; + /// @copydoc detail::invalid_iterator + using invalid_iterator = detail::invalid_iterator; + /// @copydoc detail::type_error + using type_error = detail::type_error; + /// @copydoc detail::out_of_range + using out_of_range = detail::out_of_range; + /// @copydoc detail::other_error + using other_error = detail::other_error; + + /// @} + + + ///////////////////// + // container types // + ///////////////////// + + /// @name container types + /// The canonic container types to use @ref basic_json like any other STL + /// container. + /// @{ + + /// the type of elements in a basic_json container + using value_type = basic_json; + + /// the type of an element reference + using reference = value_type&; + /// the type of an element const reference + using const_reference = const value_type&; + + /// a type to represent differences between iterators + using difference_type = std::ptrdiff_t; + /// a type to represent container sizes + using size_type = std::size_t; + + /// the allocator type + using allocator_type = AllocatorType; + + /// the type of an element pointer + using pointer = typename std::allocator_traits::pointer; + /// the type of an element const pointer + using const_pointer = typename std::allocator_traits::const_pointer; + + /// an iterator for a basic_json container + using iterator = iter_impl; + /// a const iterator for a basic_json container + using const_iterator = iter_impl; + /// a reverse iterator for a basic_json container + using reverse_iterator = json_reverse_iterator; + /// a const reverse iterator for a basic_json container + using const_reverse_iterator = json_reverse_iterator; + + /// @} + + + /*! + @brief returns the allocator associated with the container + */ + static allocator_type get_allocator() + { + return allocator_type(); + } + + /*! + @brief returns version information on the library + + This function returns a JSON object with information about the library, + including the version number and information on the platform and compiler. + + @return JSON object holding version information + key | description + ----------- | --------------- + `compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version). + `copyright` | The copyright line for the library as string. + `name` | The name of the library as string. + `platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`. + `url` | The URL of the project as string. + `version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string). + + @liveexample{The following code shows an example output of the `meta()` + function.,meta} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @complexity Constant. + + @since 2.1.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json meta() + { + basic_json result; + + result["copyright"] = "(C) 2013-2021 Niels Lohmann"; + result["name"] = "JSON for Modern C++"; + result["url"] = "https://github.com/nlohmann/json"; + result["version"]["string"] = + std::to_string(NLOHMANN_JSON_VERSION_MAJOR) + "." + + std::to_string(NLOHMANN_JSON_VERSION_MINOR) + "." + + std::to_string(NLOHMANN_JSON_VERSION_PATCH); + result["version"]["major"] = NLOHMANN_JSON_VERSION_MAJOR; + result["version"]["minor"] = NLOHMANN_JSON_VERSION_MINOR; + result["version"]["patch"] = NLOHMANN_JSON_VERSION_PATCH; + +#ifdef _WIN32 + result["platform"] = "win32"; +#elif defined __linux__ + result["platform"] = "linux"; +#elif defined __APPLE__ + result["platform"] = "apple"; +#elif defined __unix__ + result["platform"] = "unix"; +#else + result["platform"] = "unknown"; +#endif + +#if defined(__ICC) || defined(__INTEL_COMPILER) + result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; +#elif defined(__clang__) + result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}}; +#elif defined(__GNUC__) || defined(__GNUG__) + result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}}; +#elif defined(__HP_cc) || defined(__HP_aCC) + result["compiler"] = "hp" +#elif defined(__IBMCPP__) + result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}}; +#elif defined(_MSC_VER) + result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}}; +#elif defined(__PGI) + result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}}; +#elif defined(__SUNPRO_CC) + result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}}; +#else + result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; +#endif + +#ifdef __cplusplus + result["compiler"]["c++"] = std::to_string(__cplusplus); +#else + result["compiler"]["c++"] = "unknown"; +#endif + return result; + } + + + /////////////////////////// + // JSON value data types // + /////////////////////////// + + /// @name JSON value data types + /// The data types to store a JSON value. These types are derived from + /// the template arguments passed to class @ref basic_json. + /// @{ + +#if defined(JSON_HAS_CPP_14) + // Use transparent comparator if possible, combined with perfect forwarding + // on find() and count() calls prevents unnecessary string construction. + using object_comparator_t = std::less<>; +#else + using object_comparator_t = std::less; +#endif + + /*! + @brief a type for an object + + [RFC 8259](https://tools.ietf.org/html/rfc8259) describes JSON objects as follows: + > An object is an unordered collection of zero or more name/value pairs, + > where a name is a string and a value is a string, number, boolean, null, + > object, or array. + + To store objects in C++, a type is defined by the template parameters + described below. + + @tparam ObjectType the container to store objects (e.g., `std::map` or + `std::unordered_map`) + @tparam StringType the type of the keys or names (e.g., `std::string`). + The comparison function `std::less` is used to order elements + inside the container. + @tparam AllocatorType the allocator to use for objects (e.g., + `std::allocator`) + + #### Default type + + With the default values for @a ObjectType (`std::map`), @a StringType + (`std::string`), and @a AllocatorType (`std::allocator`), the default + value for @a object_t is: + + @code {.cpp} + std::map< + std::string, // key_type + basic_json, // value_type + std::less, // key_compare + std::allocator> // allocator_type + > + @endcode + + #### Behavior + + The choice of @a object_t influences the behavior of the JSON class. With + the default type, objects have the following behavior: + + - When all names are unique, objects will be interoperable in the sense + that all software implementations receiving that object will agree on + the name-value mappings. + - When the names within an object are not unique, it is unspecified which + one of the values for a given key will be chosen. For instance, + `{"key": 2, "key": 1}` could be equal to either `{"key": 1}` or + `{"key": 2}`. + - Internally, name/value pairs are stored in lexicographical order of the + names. Objects will also be serialized (see @ref dump) in this order. + For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be stored + and serialized as `{"a": 2, "b": 1}`. + - When comparing objects, the order of the name/value pairs is irrelevant. + This makes objects interoperable in the sense that they will not be + affected by these differences. For instance, `{"b": 1, "a": 2}` and + `{"a": 2, "b": 1}` will be treated as equal. + + #### Limits + + [RFC 8259](https://tools.ietf.org/html/rfc8259) specifies: + > An implementation may set limits on the maximum depth of nesting. + + In this class, the object's limit of nesting is not explicitly constrained. + However, a maximum depth of nesting may be introduced by the compiler or + runtime environment. A theoretical limit can be queried by calling the + @ref max_size function of a JSON object. + + #### Storage + + Objects are stored as pointers in a @ref basic_json type. That is, for any + access to object values, a pointer of type `object_t*` must be + dereferenced. + + @sa see @ref array_t -- type for an array value + + @since version 1.0.0 + + @note The order name/value pairs are added to the object is *not* + preserved by the library. Therefore, iterating an object may return + name/value pairs in a different order than they were originally stored. In + fact, keys will be traversed in alphabetical order as `std::map` with + `std::less` is used by default. Please note this behavior conforms to [RFC + 8259](https://tools.ietf.org/html/rfc8259), because any order implements the + specified "unordered" nature of JSON objects. + */ + using object_t = ObjectType>>; + + /*! + @brief a type for an array + + [RFC 8259](https://tools.ietf.org/html/rfc8259) describes JSON arrays as follows: + > An array is an ordered sequence of zero or more values. + + To store objects in C++, a type is defined by the template parameters + explained below. + + @tparam ArrayType container type to store arrays (e.g., `std::vector` or + `std::list`) + @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) + + #### Default type + + With the default values for @a ArrayType (`std::vector`) and @a + AllocatorType (`std::allocator`), the default value for @a array_t is: + + @code {.cpp} + std::vector< + basic_json, // value_type + std::allocator // allocator_type + > + @endcode + + #### Limits + + [RFC 8259](https://tools.ietf.org/html/rfc8259) specifies: + > An implementation may set limits on the maximum depth of nesting. + + In this class, the array's limit of nesting is not explicitly constrained. + However, a maximum depth of nesting may be introduced by the compiler or + runtime environment. A theoretical limit can be queried by calling the + @ref max_size function of a JSON array. + + #### Storage + + Arrays are stored as pointers in a @ref basic_json type. That is, for any + access to array values, a pointer of type `array_t*` must be dereferenced. + + @sa see @ref object_t -- type for an object value + + @since version 1.0.0 + */ + using array_t = ArrayType>; + + /*! + @brief a type for a string + + [RFC 8259](https://tools.ietf.org/html/rfc8259) describes JSON strings as follows: + > A string is a sequence of zero or more Unicode characters. + + To store objects in C++, a type is defined by the template parameter + described below. Unicode values are split by the JSON class into + byte-sized characters during deserialization. + + @tparam StringType the container to store strings (e.g., `std::string`). + Note this container is used for keys/names in objects, see @ref object_t. + + #### Default type + + With the default values for @a StringType (`std::string`), the default + value for @a string_t is: + + @code {.cpp} + std::string + @endcode + + #### Encoding + + Strings are stored in UTF-8 encoding. Therefore, functions like + `std::string::size()` or `std::string::length()` return the number of + bytes in the string rather than the number of characters or glyphs. + + #### String comparison + + [RFC 8259](https://tools.ietf.org/html/rfc8259) states: + > Software implementations are typically required to test names of object + > members for equality. Implementations that transform the textual + > representation into sequences of Unicode code units and then perform the + > comparison numerically, code unit by code unit, are interoperable in the + > sense that implementations will agree in all cases on equality or + > inequality of two strings. For example, implementations that compare + > strings with escaped characters unconverted may incorrectly find that + > `"a\\b"` and `"a\u005Cb"` are not equal. + + This implementation is interoperable as it does compare strings code unit + by code unit. + + #### Storage + + String values are stored as pointers in a @ref basic_json type. That is, + for any access to string values, a pointer of type `string_t*` must be + dereferenced. + + @since version 1.0.0 + */ + using string_t = StringType; + + /*! + @brief a type for a boolean + + [RFC 8259](https://tools.ietf.org/html/rfc8259) implicitly describes a boolean as a + type which differentiates the two literals `true` and `false`. + + To store objects in C++, a type is defined by the template parameter @a + BooleanType which chooses the type to use. + + #### Default type + + With the default values for @a BooleanType (`bool`), the default value for + @a boolean_t is: + + @code {.cpp} + bool + @endcode + + #### Storage + + Boolean values are stored directly inside a @ref basic_json type. + + @since version 1.0.0 + */ + using boolean_t = BooleanType; + + /*! + @brief a type for a number (integer) + + [RFC 8259](https://tools.ietf.org/html/rfc8259) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store integer numbers in C++, a type is defined by the template + parameter @a NumberIntegerType which chooses the type to use. + + #### Default type + + With the default values for @a NumberIntegerType (`int64_t`), the default + value for @a number_integer_t is: + + @code {.cpp} + int64_t + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in integer literals lead to an interpretation as octal + number. Internally, the value will be stored as decimal number. For + instance, the C++ integer literal `010` will be serialized to `8`. + During deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 8259](https://tools.ietf.org/html/rfc8259) specifies: + > An implementation may set limits on the range and precision of numbers. + + When the default type is used, the maximal integer number that can be + stored is `9223372036854775807` (INT64_MAX) and the minimal integer number + that can be stored is `-9223372036854775808` (INT64_MIN). Integer numbers + that are out of range will yield over/underflow when used in a + constructor. During deserialization, too large or small integer numbers + will be automatically be stored as @ref number_unsigned_t or @ref + number_float_t. + + [RFC 8259](https://tools.ietf.org/html/rfc8259) further states: + > Note that when such software is used, numbers that are integers and are + > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense + > that implementations will agree exactly on their numeric values. + + As this range is a subrange of the exactly supported range [INT64_MIN, + INT64_MAX], this class's integer type is interoperable. + + #### Storage + + Integer number values are stored directly inside a @ref basic_json type. + + @sa see @ref number_float_t -- type for number values (floating-point) + + @sa see @ref number_unsigned_t -- type for number values (unsigned integer) + + @since version 1.0.0 + */ + using number_integer_t = NumberIntegerType; + + /*! + @brief a type for a number (unsigned) + + [RFC 8259](https://tools.ietf.org/html/rfc8259) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store unsigned integer numbers in C++, a type is defined by the + template parameter @a NumberUnsignedType which chooses the type to use. + + #### Default type + + With the default values for @a NumberUnsignedType (`uint64_t`), the + default value for @a number_unsigned_t is: + + @code {.cpp} + uint64_t + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in integer literals lead to an interpretation as octal + number. Internally, the value will be stored as decimal number. For + instance, the C++ integer literal `010` will be serialized to `8`. + During deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 8259](https://tools.ietf.org/html/rfc8259) specifies: + > An implementation may set limits on the range and precision of numbers. + + When the default type is used, the maximal integer number that can be + stored is `18446744073709551615` (UINT64_MAX) and the minimal integer + number that can be stored is `0`. Integer numbers that are out of range + will yield over/underflow when used in a constructor. During + deserialization, too large or small integer numbers will be automatically + be stored as @ref number_integer_t or @ref number_float_t. + + [RFC 8259](https://tools.ietf.org/html/rfc8259) further states: + > Note that when such software is used, numbers that are integers and are + > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense + > that implementations will agree exactly on their numeric values. + + As this range is a subrange (when considered in conjunction with the + number_integer_t type) of the exactly supported range [0, UINT64_MAX], + this class's integer type is interoperable. + + #### Storage + + Integer number values are stored directly inside a @ref basic_json type. + + @sa see @ref number_float_t -- type for number values (floating-point) + @sa see @ref number_integer_t -- type for number values (integer) + + @since version 2.0.0 + */ + using number_unsigned_t = NumberUnsignedType; + + /*! + @brief a type for a number (floating-point) + + [RFC 8259](https://tools.ietf.org/html/rfc8259) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store floating-point numbers in C++, a type is defined by the template + parameter @a NumberFloatType which chooses the type to use. + + #### Default type + + With the default values for @a NumberFloatType (`double`), the default + value for @a number_float_t is: + + @code {.cpp} + double + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in floating-point literals will be ignored. Internally, + the value will be stored as decimal number. For instance, the C++ + floating-point literal `01.2` will be serialized to `1.2`. During + deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 8259](https://tools.ietf.org/html/rfc8259) states: + > This specification allows implementations to set limits on the range and + > precision of numbers accepted. Since software that implements IEEE + > 754-2008 binary64 (double precision) numbers is generally available and + > widely used, good interoperability can be achieved by implementations + > that expect no more precision or range than these provide, in the sense + > that implementations will approximate JSON numbers within the expected + > precision. + + This implementation does exactly follow this approach, as it uses double + precision floating-point numbers. Note values smaller than + `-1.79769313486232e+308` and values greater than `1.79769313486232e+308` + will be stored as NaN internally and be serialized to `null`. + + #### Storage + + Floating-point number values are stored directly inside a @ref basic_json + type. + + @sa see @ref number_integer_t -- type for number values (integer) + + @sa see @ref number_unsigned_t -- type for number values (unsigned integer) + + @since version 1.0.0 + */ + using number_float_t = NumberFloatType; + + /*! + @brief a type for a packed binary type + + This type is a type designed to carry binary data that appears in various + serialized formats, such as CBOR's Major Type 2, MessagePack's bin, and + BSON's generic binary subtype. This type is NOT a part of standard JSON and + exists solely for compatibility with these binary types. As such, it is + simply defined as an ordered sequence of zero or more byte values. + + Additionally, as an implementation detail, the subtype of the binary data is + carried around as a `std::uint8_t`, which is compatible with both of the + binary data formats that use binary subtyping, (though the specific + numbering is incompatible with each other, and it is up to the user to + translate between them). + + [CBOR's RFC 7049](https://tools.ietf.org/html/rfc7049) describes this type + as: + > Major type 2: a byte string. The string's length in bytes is represented + > following the rules for positive integers (major type 0). + + [MessagePack's documentation on the bin type + family](https://github.com/msgpack/msgpack/blob/master/spec.md#bin-format-family) + describes this type as: + > Bin format family stores an byte array in 2, 3, or 5 bytes of extra bytes + > in addition to the size of the byte array. + + [BSON's specifications](http://bsonspec.org/spec.html) describe several + binary types; however, this type is intended to represent the generic binary + type which has the description: + > Generic binary subtype - This is the most commonly used binary subtype and + > should be the 'default' for drivers and tools. + + None of these impose any limitations on the internal representation other + than the basic unit of storage be some type of array whose parts are + decomposable into bytes. + + The default representation of this binary format is a + `std::vector`, which is a very common way to represent a byte + array in modern C++. + + #### Default type + + The default values for @a BinaryType is `std::vector` + + #### Storage + + Binary Arrays are stored as pointers in a @ref basic_json type. That is, + for any access to array values, a pointer of the type `binary_t*` must be + dereferenced. + + #### Notes on subtypes + + - CBOR + - Binary values are represented as byte strings. Subtypes are serialized + as tagged values. + - MessagePack + - If a subtype is given and the binary array contains exactly 1, 2, 4, 8, + or 16 elements, the fixext family (fixext1, fixext2, fixext4, fixext8) + is used. For other sizes, the ext family (ext8, ext16, ext32) is used. + The subtype is then added as singed 8-bit integer. + - If no subtype is given, the bin family (bin8, bin16, bin32) is used. + - BSON + - If a subtype is given, it is used and added as unsigned 8-bit integer. + - If no subtype is given, the generic binary subtype 0x00 is used. + + @sa see @ref binary -- create a binary array + + @since version 3.8.0 + */ + using binary_t = nlohmann::byte_container_with_subtype; + /// @} + + private: + + /// helper for exception-safe object creation + template + JSON_HEDLEY_RETURNS_NON_NULL + static T* create(Args&& ... args) + { + AllocatorType alloc; + using AllocatorTraits = std::allocator_traits>; + + auto deleter = [&](T * obj) + { + AllocatorTraits::deallocate(alloc, obj, 1); + }; + std::unique_ptr obj(AllocatorTraits::allocate(alloc, 1), deleter); + AllocatorTraits::construct(alloc, obj.get(), std::forward(args)...); + JSON_ASSERT(obj != nullptr); + return obj.release(); + } + + //////////////////////// + // JSON value storage // + //////////////////////// + + JSON_PRIVATE_UNLESS_TESTED: + /*! + @brief a JSON value + + The actual storage for a JSON value of the @ref basic_json class. This + union combines the different storage types for the JSON value types + defined in @ref value_t. + + JSON type | value_t type | used type + --------- | --------------- | ------------------------ + object | object | pointer to @ref object_t + array | array | pointer to @ref array_t + string | string | pointer to @ref string_t + boolean | boolean | @ref boolean_t + number | number_integer | @ref number_integer_t + number | number_unsigned | @ref number_unsigned_t + number | number_float | @ref number_float_t + binary | binary | pointer to @ref binary_t + null | null | *no value is stored* + + @note Variable-length types (objects, arrays, and strings) are stored as + pointers. The size of the union should not exceed 64 bits if the default + value types are used. + + @since version 1.0.0 + */ + union json_value + { + /// object (stored with pointer to save storage) + object_t* object; + /// array (stored with pointer to save storage) + array_t* array; + /// string (stored with pointer to save storage) + string_t* string; + /// binary (stored with pointer to save storage) + binary_t* binary; + /// boolean + boolean_t boolean; + /// number (integer) + number_integer_t number_integer; + /// number (unsigned integer) + number_unsigned_t number_unsigned; + /// number (floating-point) + number_float_t number_float; + + /// default constructor (for null values) + json_value() = default; + /// constructor for booleans + json_value(boolean_t v) noexcept : boolean(v) {} + /// constructor for numbers (integer) + json_value(number_integer_t v) noexcept : number_integer(v) {} + /// constructor for numbers (unsigned) + json_value(number_unsigned_t v) noexcept : number_unsigned(v) {} + /// constructor for numbers (floating-point) + json_value(number_float_t v) noexcept : number_float(v) {} + /// constructor for empty values of a given type + json_value(value_t t) + { + switch (t) + { + case value_t::object: + { + object = create(); + break; + } + + case value_t::array: + { + array = create(); + break; + } + + case value_t::string: + { + string = create(""); + break; + } + + case value_t::binary: + { + binary = create(); + break; + } + + case value_t::boolean: + { + boolean = boolean_t(false); + break; + } + + case value_t::number_integer: + { + number_integer = number_integer_t(0); + break; + } + + case value_t::number_unsigned: + { + number_unsigned = number_unsigned_t(0); + break; + } + + case value_t::number_float: + { + number_float = number_float_t(0.0); + break; + } + + case value_t::null: + { + object = nullptr; // silence warning, see #821 + break; + } + + case value_t::discarded: + default: + { + object = nullptr; // silence warning, see #821 + if (JSON_HEDLEY_UNLIKELY(t == value_t::null)) + { + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.10.4", basic_json())); // LCOV_EXCL_LINE + } + break; + } + } + } + + /// constructor for strings + json_value(const string_t& value) + { + string = create(value); + } + + /// constructor for rvalue strings + json_value(string_t&& value) + { + string = create(std::move(value)); + } + + /// constructor for objects + json_value(const object_t& value) + { + object = create(value); + } + + /// constructor for rvalue objects + json_value(object_t&& value) + { + object = create(std::move(value)); + } + + /// constructor for arrays + json_value(const array_t& value) + { + array = create(value); + } + + /// constructor for rvalue arrays + json_value(array_t&& value) + { + array = create(std::move(value)); + } + + /// constructor for binary arrays + json_value(const typename binary_t::container_type& value) + { + binary = create(value); + } + + /// constructor for rvalue binary arrays + json_value(typename binary_t::container_type&& value) + { + binary = create(std::move(value)); + } + + /// constructor for binary arrays (internal type) + json_value(const binary_t& value) + { + binary = create(value); + } + + /// constructor for rvalue binary arrays (internal type) + json_value(binary_t&& value) + { + binary = create(std::move(value)); + } + + void destroy(value_t t) + { + if (t == value_t::array || t == value_t::object) + { + // flatten the current json_value to a heap-allocated stack + std::vector stack; + + // move the top-level items to stack + if (t == value_t::array) + { + stack.reserve(array->size()); + std::move(array->begin(), array->end(), std::back_inserter(stack)); + } + else + { + stack.reserve(object->size()); + for (auto&& it : *object) + { + stack.push_back(std::move(it.second)); + } + } + + while (!stack.empty()) + { + // move the last item to local variable to be processed + basic_json current_item(std::move(stack.back())); + stack.pop_back(); + + // if current_item is array/object, move + // its children to the stack to be processed later + if (current_item.is_array()) + { + std::move(current_item.m_value.array->begin(), current_item.m_value.array->end(), std::back_inserter(stack)); + + current_item.m_value.array->clear(); + } + else if (current_item.is_object()) + { + for (auto&& it : *current_item.m_value.object) + { + stack.push_back(std::move(it.second)); + } + + current_item.m_value.object->clear(); + } + + // it's now safe that current_item get destructed + // since it doesn't have any children + } + } + + switch (t) + { + case value_t::object: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, object); + std::allocator_traits::deallocate(alloc, object, 1); + break; + } + + case value_t::array: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, array); + std::allocator_traits::deallocate(alloc, array, 1); + break; + } + + case value_t::string: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, string); + std::allocator_traits::deallocate(alloc, string, 1); + break; + } + + case value_t::binary: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, binary); + std::allocator_traits::deallocate(alloc, binary, 1); + break; + } + + case value_t::null: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::discarded: + default: + { + break; + } + } + } + }; + + private: + /*! + @brief checks the class invariants + + This function asserts the class invariants. It needs to be called at the + end of every constructor to make sure that created objects respect the + invariant. Furthermore, it has to be called each time the type of a JSON + value is changed, because the invariant expresses a relationship between + @a m_type and @a m_value. + + Furthermore, the parent relation is checked for arrays and objects: If + @a check_parents true and the value is an array or object, then the + container's elements must have the current value as parent. + + @param[in] check_parents whether the parent relation should be checked. + The value is true by default and should only be set to false + during destruction of objects when the invariant does not + need to hold. + */ + void assert_invariant(bool check_parents = true) const noexcept + { + JSON_ASSERT(m_type != value_t::object || m_value.object != nullptr); + JSON_ASSERT(m_type != value_t::array || m_value.array != nullptr); + JSON_ASSERT(m_type != value_t::string || m_value.string != nullptr); + JSON_ASSERT(m_type != value_t::binary || m_value.binary != nullptr); + +#if JSON_DIAGNOSTICS + JSON_TRY + { + // cppcheck-suppress assertWithSideEffect + JSON_ASSERT(!check_parents || !is_structured() || std::all_of(begin(), end(), [this](const basic_json & j) + { + return j.m_parent == this; + })); + } + JSON_CATCH(...) {} // LCOV_EXCL_LINE +#endif + static_cast(check_parents); + } + + void set_parents() + { +#if JSON_DIAGNOSTICS + switch (m_type) + { + case value_t::array: + { + for (auto& element : *m_value.array) + { + element.m_parent = this; + } + break; + } + + case value_t::object: + { + for (auto& element : *m_value.object) + { + element.second.m_parent = this; + } + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + break; + } +#endif + } + + iterator set_parents(iterator it, typename iterator::difference_type count) + { +#if JSON_DIAGNOSTICS + for (typename iterator::difference_type i = 0; i < count; ++i) + { + (it + i)->m_parent = this; + } +#else + static_cast(count); +#endif + return it; + } + + reference set_parent(reference j, std::size_t old_capacity = std::size_t(-1)) + { +#if JSON_DIAGNOSTICS + if (old_capacity != std::size_t(-1)) + { + // see https://github.com/nlohmann/json/issues/2838 + JSON_ASSERT(type() == value_t::array); + if (JSON_HEDLEY_UNLIKELY(m_value.array->capacity() != old_capacity)) + { + // capacity has changed: update all parents + set_parents(); + return j; + } + } + + // ordered_json uses a vector internally, so pointers could have + // been invalidated; see https://github.com/nlohmann/json/issues/2962 +#ifdef JSON_HEDLEY_MSVC_VERSION +#pragma warning(push ) +#pragma warning(disable : 4127) // ignore warning to replace if with if constexpr +#endif + if (detail::is_ordered_map::value) + { + set_parents(); + return j; + } +#ifdef JSON_HEDLEY_MSVC_VERSION +#pragma warning( pop ) +#endif + + j.m_parent = this; +#else + static_cast(j); + static_cast(old_capacity); +#endif + return j; + } + + public: + ////////////////////////// + // JSON parser callback // + ////////////////////////// + + /*! + @brief parser event types + + The parser callback distinguishes the following events: + - `object_start`: the parser read `{` and started to process a JSON object + - `key`: the parser read a key of a value in an object + - `object_end`: the parser read `}` and finished processing a JSON object + - `array_start`: the parser read `[` and started to process a JSON array + - `array_end`: the parser read `]` and finished processing a JSON array + - `value`: the parser finished reading a JSON value + + @image html callback_events.png "Example when certain parse events are triggered" + + @sa see @ref parser_callback_t for more information and examples + */ + using parse_event_t = detail::parse_event_t; + + /*! + @brief per-element parser callback type + + With a parser callback function, the result of parsing a JSON text can be + influenced. When passed to @ref parse, it is called on certain events + (passed as @ref parse_event_t via parameter @a event) with a set recursion + depth @a depth and context JSON value @a parsed. The return value of the + callback function is a boolean indicating whether the element that emitted + the callback shall be kept or not. + + We distinguish six scenarios (determined by the event type) in which the + callback function can be called. The following table describes the values + of the parameters @a depth, @a event, and @a parsed. + + parameter @a event | description | parameter @a depth | parameter @a parsed + ------------------ | ----------- | ------------------ | ------------------- + parse_event_t::object_start | the parser read `{` and started to process a JSON object | depth of the parent of the JSON object | a JSON value with type discarded + parse_event_t::key | the parser read a key of a value in an object | depth of the currently parsed JSON object | a JSON string containing the key + parse_event_t::object_end | the parser read `}` and finished processing a JSON object | depth of the parent of the JSON object | the parsed JSON object + parse_event_t::array_start | the parser read `[` and started to process a JSON array | depth of the parent of the JSON array | a JSON value with type discarded + parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array + parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value + + @image html callback_events.png "Example when certain parse events are triggered" + + Discarding a value (i.e., returning `false`) has different effects + depending on the context in which function was called: + + - Discarded values in structured types are skipped. That is, the parser + will behave as if the discarded value was never read. + - In case a value outside a structured type is skipped, it is replaced + with `null`. This case happens if the top-level element is skipped. + + @param[in] depth the depth of the recursion during parsing + + @param[in] event an event of type parse_event_t indicating the context in + the callback function has been called + + @param[in,out] parsed the current intermediate parse result; note that + writing to this value has no effect for parse_event_t::key events + + @return Whether the JSON value which called the function during parsing + should be kept (`true`) or not (`false`). In the latter case, it is either + skipped completely or replaced by an empty discarded object. + + @sa see @ref parse for examples + + @since version 1.0.0 + */ + using parser_callback_t = detail::parser_callback_t; + + ////////////////// + // constructors // + ////////////////// + + /// @name constructors and destructors + /// Constructors of class @ref basic_json, copy/move constructor, copy + /// assignment, static functions creating objects, and the destructor. + /// @{ + + /*! + @brief create an empty value with a given type + + Create an empty JSON value with a given type. The value will be default + initialized with an empty value which depends on the type: + + Value type | initial value + ----------- | ------------- + null | `null` + boolean | `false` + string | `""` + number | `0` + object | `{}` + array | `[]` + binary | empty array + + @param[in] v the type of the value to create + + @complexity Constant. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows the constructor for different @ref + value_t values,basic_json__value_t} + + @sa see @ref clear() -- restores the postcondition of this constructor + + @since version 1.0.0 + */ + basic_json(const value_t v) + : m_type(v), m_value(v) + { + assert_invariant(); + } + + /*! + @brief create a null object + + Create a `null` JSON value. It either takes a null pointer as parameter + (explicitly creating `null`) or no parameter (implicitly creating `null`). + The passed null pointer itself is not read -- it is only used to choose + the right constructor. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this constructor never throws + exceptions. + + @liveexample{The following code shows the constructor with and without a + null pointer parameter.,basic_json__nullptr_t} + + @since version 1.0.0 + */ + basic_json(std::nullptr_t = nullptr) noexcept + : basic_json(value_t::null) + { + assert_invariant(); + } + + /*! + @brief create a JSON value + + This is a "catch all" constructor for all compatible JSON types; that is, + types for which a `to_json()` method exists. The constructor forwards the + parameter @a val to that method (to `json_serializer::to_json` method + with `U = uncvref_t`, to be exact). + + Template type @a CompatibleType includes, but is not limited to, the + following types: + - **arrays**: @ref array_t and all kinds of compatible containers such as + `std::vector`, `std::deque`, `std::list`, `std::forward_list`, + `std::array`, `std::valarray`, `std::set`, `std::unordered_set`, + `std::multiset`, and `std::unordered_multiset` with a `value_type` from + which a @ref basic_json value can be constructed. + - **objects**: @ref object_t and all kinds of compatible associative + containers such as `std::map`, `std::unordered_map`, `std::multimap`, + and `std::unordered_multimap` with a `key_type` compatible to + @ref string_t and a `value_type` from which a @ref basic_json value can + be constructed. + - **strings**: @ref string_t, string literals, and all compatible string + containers can be used. + - **numbers**: @ref number_integer_t, @ref number_unsigned_t, + @ref number_float_t, and all convertible number types such as `int`, + `size_t`, `int64_t`, `float` or `double` can be used. + - **boolean**: @ref boolean_t / `bool` can be used. + - **binary**: @ref binary_t / `std::vector` may be used, + unfortunately because string literals cannot be distinguished from binary + character arrays by the C++ type system, all types compatible with `const + char*` will be directed to the string constructor instead. This is both + for backwards compatibility, and due to the fact that a binary type is not + a standard JSON type. + + See the examples below. + + @tparam CompatibleType a type such that: + - @a CompatibleType is not derived from `std::istream`, + - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move + constructors), + - @a CompatibleType is not a different @ref basic_json type (i.e. with different template arguments) + - @a CompatibleType is not a @ref basic_json nested type (e.g., + @ref json_pointer, @ref iterator, etc ...) + - `json_serializer` has a `to_json(basic_json_t&, CompatibleType&&)` method + + @tparam U = `uncvref_t` + + @param[in] val the value to be forwarded to the respective constructor + + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @exceptionsafety Depends on the called constructor. For types directly + supported by the library (i.e., all types for which no `to_json()` function + was provided), strong guarantee holds: if an exception is thrown, there are + no changes to any JSON value. + + @liveexample{The following code shows the constructor with several + compatible types.,basic_json__CompatibleType} + + @since version 2.1.0 + */ + template < typename CompatibleType, + typename U = detail::uncvref_t, + detail::enable_if_t < + !detail::is_basic_json::value && detail::is_compatible_type::value, int > = 0 > + basic_json(CompatibleType && val) noexcept(noexcept( // NOLINT(bugprone-forwarding-reference-overload,bugprone-exception-escape) + JSONSerializer::to_json(std::declval(), + std::forward(val)))) + { + JSONSerializer::to_json(*this, std::forward(val)); + set_parents(); + assert_invariant(); + } + + /*! + @brief create a JSON value from an existing one + + This is a constructor for existing @ref basic_json types. + It does not hijack copy/move constructors, since the parameter has different + template arguments than the current ones. + + The constructor tries to convert the internal @ref m_value of the parameter. + + @tparam BasicJsonType a type such that: + - @a BasicJsonType is a @ref basic_json type. + - @a BasicJsonType has different template arguments than @ref basic_json_t. + + @param[in] val the @ref basic_json value to be converted. + + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @exceptionsafety Depends on the called constructor. For types directly + supported by the library (i.e., all types for which no `to_json()` function + was provided), strong guarantee holds: if an exception is thrown, there are + no changes to any JSON value. + + @since version 3.2.0 + */ + template < typename BasicJsonType, + detail::enable_if_t < + detail::is_basic_json::value&& !std::is_same::value, int > = 0 > + basic_json(const BasicJsonType& val) + { + using other_boolean_t = typename BasicJsonType::boolean_t; + using other_number_float_t = typename BasicJsonType::number_float_t; + using other_number_integer_t = typename BasicJsonType::number_integer_t; + using other_number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using other_string_t = typename BasicJsonType::string_t; + using other_object_t = typename BasicJsonType::object_t; + using other_array_t = typename BasicJsonType::array_t; + using other_binary_t = typename BasicJsonType::binary_t; + + switch (val.type()) + { + case value_t::boolean: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::number_float: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::number_integer: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::number_unsigned: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::string: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::object: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::array: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::binary: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::null: + *this = nullptr; + break; + case value_t::discarded: + m_type = value_t::discarded; + break; + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + set_parents(); + assert_invariant(); + } + + /*! + @brief create a container (array or object) from an initializer list + + Creates a JSON value of type array or object from the passed initializer + list @a init. In case @a type_deduction is `true` (default), the type of + the JSON value to be created is deducted from the initializer list @a init + according to the following rules: + + 1. If the list is empty, an empty JSON object value `{}` is created. + 2. If the list consists of pairs whose first element is a string, a JSON + object value is created where the first elements of the pairs are + treated as keys and the second elements are as values. + 3. In all other cases, an array is created. + + The rules aim to create the best fit between a C++ initializer list and + JSON values. The rationale is as follows: + + 1. The empty initializer list is written as `{}` which is exactly an empty + JSON object. + 2. C++ has no way of describing mapped types other than to list a list of + pairs. As JSON requires that keys must be of type string, rule 2 is the + weakest constraint one can pose on initializer lists to interpret them + as an object. + 3. In all other cases, the initializer list could not be interpreted as + JSON object type, so interpreting it as JSON array type is safe. + + With the rules described above, the following JSON values cannot be + expressed by an initializer list: + + - the empty array (`[]`): use @ref array(initializer_list_t) + with an empty initializer list in this case + - arrays whose elements satisfy rule 2: use @ref + array(initializer_list_t) with the same initializer list + in this case + + @note When used without parentheses around an empty initializer list, @ref + basic_json() is called instead of this function, yielding the JSON null + value. + + @param[in] init initializer list with JSON values + + @param[in] type_deduction internal parameter; when set to `true`, the type + of the JSON value is deducted from the initializer list @a init; when set + to `false`, the type provided via @a manual_type is forced. This mode is + used by the functions @ref array(initializer_list_t) and + @ref object(initializer_list_t). + + @param[in] manual_type internal parameter; when @a type_deduction is set + to `false`, the created JSON value will use the provided type (only @ref + value_t::array and @ref value_t::object are valid); when @a type_deduction + is set to `true`, this parameter has no effect + + @throw type_error.301 if @a type_deduction is `false`, @a manual_type is + `value_t::object`, but @a init contains an element which is not a pair + whose first element is a string. In this case, the constructor could not + create an object. If @a type_deduction would have be `true`, an array + would have been created. See @ref object(initializer_list_t) + for an example. + + @complexity Linear in the size of the initializer list @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The example below shows how JSON values are created from + initializer lists.,basic_json__list_init_t} + + @sa see @ref array(initializer_list_t) -- create a JSON array + value from an initializer list + @sa see @ref object(initializer_list_t) -- create a JSON object + value from an initializer list + + @since version 1.0.0 + */ + basic_json(initializer_list_t init, + bool type_deduction = true, + value_t manual_type = value_t::array) + { + // check if each element is an array with two elements whose first + // element is a string + bool is_an_object = std::all_of(init.begin(), init.end(), + [](const detail::json_ref& element_ref) + { + return element_ref->is_array() && element_ref->size() == 2 && (*element_ref)[0].is_string(); + }); + + // adjust type if type deduction is not wanted + if (!type_deduction) + { + // if array is wanted, do not create an object though possible + if (manual_type == value_t::array) + { + is_an_object = false; + } + + // if object is wanted but impossible, throw an exception + if (JSON_HEDLEY_UNLIKELY(manual_type == value_t::object && !is_an_object)) + { + JSON_THROW(type_error::create(301, "cannot create object from initializer list", basic_json())); + } + } + + if (is_an_object) + { + // the initializer list is a list of pairs -> create object + m_type = value_t::object; + m_value = value_t::object; + + for (auto& element_ref : init) + { + auto element = element_ref.moved_or_copied(); + m_value.object->emplace( + std::move(*((*element.m_value.array)[0].m_value.string)), + std::move((*element.m_value.array)[1])); + } + } + else + { + // the initializer list describes an array -> create array + m_type = value_t::array; + m_value.array = create(init.begin(), init.end()); + } + + set_parents(); + assert_invariant(); + } + + /*! + @brief explicitly create a binary array (without subtype) + + Creates a JSON binary array value from a given binary container. Binary + values are part of various binary formats, such as CBOR, MessagePack, and + BSON. This constructor is used to create a value for serialization to those + formats. + + @note Note, this function exists because of the difficulty in correctly + specifying the correct template overload in the standard value ctor, as both + JSON arrays and JSON binary arrays are backed with some form of a + `std::vector`. Because JSON binary arrays are a non-standard extension it + was decided that it would be best to prevent automatic initialization of a + binary array type, for backwards compatibility and so it does not happen on + accident. + + @param[in] init container containing bytes to use as binary type + + @return JSON binary array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @since version 3.8.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(const typename binary_t::container_type& init) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = init; + return res; + } + + /*! + @brief explicitly create a binary array (with subtype) + + Creates a JSON binary array value from a given binary container. Binary + values are part of various binary formats, such as CBOR, MessagePack, and + BSON. This constructor is used to create a value for serialization to those + formats. + + @note Note, this function exists because of the difficulty in correctly + specifying the correct template overload in the standard value ctor, as both + JSON arrays and JSON binary arrays are backed with some form of a + `std::vector`. Because JSON binary arrays are a non-standard extension it + was decided that it would be best to prevent automatic initialization of a + binary array type, for backwards compatibility and so it does not happen on + accident. + + @param[in] init container containing bytes to use as binary type + @param[in] subtype subtype to use in MessagePack and BSON + + @return JSON binary array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @since version 3.8.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(const typename binary_t::container_type& init, typename binary_t::subtype_type subtype) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = binary_t(init, subtype); + return res; + } + + /// @copydoc binary(const typename binary_t::container_type&) + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(typename binary_t::container_type&& init) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = std::move(init); + return res; + } + + /// @copydoc binary(const typename binary_t::container_type&, typename binary_t::subtype_type) + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(typename binary_t::container_type&& init, typename binary_t::subtype_type subtype) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = binary_t(std::move(init), subtype); + return res; + } + + /*! + @brief explicitly create an array from an initializer list + + Creates a JSON array value from a given initializer list. That is, given a + list of values `a, b, c`, creates the JSON value `[a, b, c]`. If the + initializer list is empty, the empty array `[]` is created. + + @note This function is only needed to express two edge cases that cannot + be realized with the initializer list constructor (@ref + basic_json(initializer_list_t, bool, value_t)). These cases + are: + 1. creating an array whose elements are all pairs whose first element is a + string -- in this case, the initializer list constructor would create an + object, taking the first elements as keys + 2. creating an empty array -- passing the empty initializer list to the + initializer list constructor yields an empty object + + @param[in] init initializer list with JSON values to create an array from + (optional) + + @return JSON array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows an example for the `array` + function.,array} + + @sa see @ref basic_json(initializer_list_t, bool, value_t) -- + create a JSON value from an initializer list + @sa see @ref object(initializer_list_t) -- create a JSON object + value from an initializer list + + @since version 1.0.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json array(initializer_list_t init = {}) + { + return basic_json(init, false, value_t::array); + } + + /*! + @brief explicitly create an object from an initializer list + + Creates a JSON object value from a given initializer list. The initializer + lists elements must be pairs, and their first elements must be strings. If + the initializer list is empty, the empty object `{}` is created. + + @note This function is only added for symmetry reasons. In contrast to the + related function @ref array(initializer_list_t), there are + no cases which can only be expressed by this function. That is, any + initializer list @a init can also be passed to the initializer list + constructor @ref basic_json(initializer_list_t, bool, value_t). + + @param[in] init initializer list to create an object from (optional) + + @return JSON object value + + @throw type_error.301 if @a init is not a list of pairs whose first + elements are strings. In this case, no object can be created. When such a + value is passed to @ref basic_json(initializer_list_t, bool, value_t), + an array would have been created from the passed initializer list @a init. + See example below. + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows an example for the `object` + function.,object} + + @sa see @ref basic_json(initializer_list_t, bool, value_t) -- + create a JSON value from an initializer list + @sa see @ref array(initializer_list_t) -- create a JSON array + value from an initializer list + + @since version 1.0.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json object(initializer_list_t init = {}) + { + return basic_json(init, false, value_t::object); + } + + /*! + @brief construct an array with count copies of given value + + Constructs a JSON array value by creating @a cnt copies of a passed value. + In case @a cnt is `0`, an empty array is created. + + @param[in] cnt the number of JSON copies of @a val to create + @param[in] val the JSON value to copy + + @post `std::distance(begin(),end()) == cnt` holds. + + @complexity Linear in @a cnt. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows examples for the @ref + basic_json(size_type\, const basic_json&) + constructor.,basic_json__size_type_basic_json} + + @since version 1.0.0 + */ + basic_json(size_type cnt, const basic_json& val) + : m_type(value_t::array) + { + m_value.array = create(cnt, val); + set_parents(); + assert_invariant(); + } + + /*! + @brief construct a JSON container given an iterator range + + Constructs the JSON value with the contents of the range `[first, last)`. + The semantics depends on the different types a JSON value can have: + - In case of a null type, invalid_iterator.206 is thrown. + - In case of other primitive types (number, boolean, or string), @a first + must be `begin()` and @a last must be `end()`. In this case, the value is + copied. Otherwise, invalid_iterator.204 is thrown. + - In case of structured types (array, object), the constructor behaves as + similar versions for `std::vector` or `std::map`; that is, a JSON array + or object is constructed from the values in the range. + + @tparam InputIT an input iterator type (@ref iterator or @ref + const_iterator) + + @param[in] first begin of the range to copy from (included) + @param[in] last end of the range to copy from (excluded) + + @pre Iterators @a first and @a last must be initialized. **This + precondition is enforced with an assertion (see warning).** If + assertions are switched off, a violation of this precondition yields + undefined behavior. + + @pre Range `[first, last)` is valid. Usually, this precondition cannot be + checked efficiently. Only certain edge cases are detected; see the + description of the exceptions below. A violation of this precondition + yields undefined behavior. + + @warning A precondition is enforced with a runtime assertion that will + result in calling `std::abort` if this precondition is not met. + Assertions can be disabled by defining `NDEBUG` at compile time. + See https://en.cppreference.com/w/cpp/error/assert for more + information. + + @throw invalid_iterator.201 if iterators @a first and @a last are not + compatible (i.e., do not belong to the same JSON value). In this case, + the range `[first, last)` is undefined. + @throw invalid_iterator.204 if iterators @a first and @a last belong to a + primitive type (number, boolean, or string), but @a first does not point + to the first element any more. In this case, the range `[first, last)` is + undefined. See example code below. + @throw invalid_iterator.206 if iterators @a first and @a last belong to a + null value. In this case, the range `[first, last)` is undefined. + + @complexity Linear in distance between @a first and @a last. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The example below shows several ways to create JSON values by + specifying a subrange with iterators.,basic_json__InputIt_InputIt} + + @since version 1.0.0 + */ + template < class InputIT, typename std::enable_if < + std::is_same::value || + std::is_same::value, int >::type = 0 > + basic_json(InputIT first, InputIT last) + { + JSON_ASSERT(first.m_object != nullptr); + JSON_ASSERT(last.m_object != nullptr); + + // make sure iterator fits the current value + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(201, "iterators are not compatible", basic_json())); + } + + // copy type from first iterator + m_type = first.m_object->m_type; + + // check if iterator range is complete for primitive values + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + { + if (JSON_HEDLEY_UNLIKELY(!first.m_it.primitive_iterator.is_begin() + || !last.m_it.primitive_iterator.is_end())) + { + JSON_THROW(invalid_iterator::create(204, "iterators out of range", *first.m_object)); + } + break; + } + + case value_t::null: + case value_t::object: + case value_t::array: + case value_t::binary: + case value_t::discarded: + default: + break; + } + + switch (m_type) + { + case value_t::number_integer: + { + m_value.number_integer = first.m_object->m_value.number_integer; + break; + } + + case value_t::number_unsigned: + { + m_value.number_unsigned = first.m_object->m_value.number_unsigned; + break; + } + + case value_t::number_float: + { + m_value.number_float = first.m_object->m_value.number_float; + break; + } + + case value_t::boolean: + { + m_value.boolean = first.m_object->m_value.boolean; + break; + } + + case value_t::string: + { + m_value = *first.m_object->m_value.string; + break; + } + + case value_t::object: + { + m_value.object = create(first.m_it.object_iterator, + last.m_it.object_iterator); + break; + } + + case value_t::array: + { + m_value.array = create(first.m_it.array_iterator, + last.m_it.array_iterator); + break; + } + + case value_t::binary: + { + m_value = *first.m_object->m_value.binary; + break; + } + + case value_t::null: + case value_t::discarded: + default: + JSON_THROW(invalid_iterator::create(206, "cannot construct with iterators from " + std::string(first.m_object->type_name()), *first.m_object)); + } + + set_parents(); + assert_invariant(); + } + + + /////////////////////////////////////// + // other constructors and destructor // + /////////////////////////////////////// + + template, + std::is_same>::value, int> = 0 > + basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {} + + /*! + @brief copy constructor + + Creates a copy of a given JSON value. + + @param[in] other the JSON value to copy + + @post `*this == other` + + @complexity Linear in the size of @a other. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + - As postcondition, it holds: `other == basic_json(other)`. + + @liveexample{The following code shows an example for the copy + constructor.,basic_json__basic_json} + + @since version 1.0.0 + */ + basic_json(const basic_json& other) + : m_type(other.m_type) + { + // check of passed value is valid + other.assert_invariant(); + + switch (m_type) + { + case value_t::object: + { + m_value = *other.m_value.object; + break; + } + + case value_t::array: + { + m_value = *other.m_value.array; + break; + } + + case value_t::string: + { + m_value = *other.m_value.string; + break; + } + + case value_t::boolean: + { + m_value = other.m_value.boolean; + break; + } + + case value_t::number_integer: + { + m_value = other.m_value.number_integer; + break; + } + + case value_t::number_unsigned: + { + m_value = other.m_value.number_unsigned; + break; + } + + case value_t::number_float: + { + m_value = other.m_value.number_float; + break; + } + + case value_t::binary: + { + m_value = *other.m_value.binary; + break; + } + + case value_t::null: + case value_t::discarded: + default: + break; + } + + set_parents(); + assert_invariant(); + } + + /*! + @brief move constructor + + Move constructor. Constructs a JSON value with the contents of the given + value @a other using move semantics. It "steals" the resources from @a + other and leaves it as JSON null value. + + @param[in,out] other value to move to this object + + @post `*this` has the same value as @a other before the call. + @post @a other is a JSON null value. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this constructor never throws + exceptions. + + @requirement This function helps `basic_json` satisfying the + [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible) + requirements. + + @liveexample{The code below shows the move constructor explicitly called + via std::move.,basic_json__moveconstructor} + + @since version 1.0.0 + */ + basic_json(basic_json&& other) noexcept + : m_type(std::move(other.m_type)), + m_value(std::move(other.m_value)) + { + // check that passed value is valid + other.assert_invariant(false); + + // invalidate payload + other.m_type = value_t::null; + other.m_value = {}; + + set_parents(); + assert_invariant(); + } + + /*! + @brief copy assignment + + Copy assignment operator. Copies a JSON value via the "copy and swap" + strategy: It is expressed in terms of the copy constructor, destructor, + and the `swap()` member function. + + @param[in] other value to copy from + + @complexity Linear. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + + @liveexample{The code below shows and example for the copy assignment. It + creates a copy of value `a` which is then swapped with `b`. Finally\, the + copy of `a` (which is the null value after the swap) is + destroyed.,basic_json__copyassignment} + + @since version 1.0.0 + */ + basic_json& operator=(basic_json other) noexcept ( + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value&& + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value + ) + { + // check that passed value is valid + other.assert_invariant(); + + using std::swap; + swap(m_type, other.m_type); + swap(m_value, other.m_value); + + set_parents(); + assert_invariant(); + return *this; + } + + /*! + @brief destructor + + Destroys the JSON value and frees all allocated memory. + + @complexity Linear. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + - All stored elements are destroyed and all memory is freed. + + @since version 1.0.0 + */ + ~basic_json() noexcept + { + assert_invariant(false); + m_value.destroy(m_type); + } + + /// @} + + public: + /////////////////////// + // object inspection // + /////////////////////// + + /// @name object inspection + /// Functions to inspect the type of a JSON value. + /// @{ + + /*! + @brief serialization + + Serialization function for JSON values. The function tries to mimic + Python's `json.dumps()` function, and currently supports its @a indent + and @a ensure_ascii parameters. + + @param[in] indent If indent is nonnegative, then array elements and object + members will be pretty-printed with that indent level. An indent level of + `0` will only insert newlines. `-1` (the default) selects the most compact + representation. + @param[in] indent_char The character to use for indentation if @a indent is + greater than `0`. The default is ` ` (space). + @param[in] ensure_ascii If @a ensure_ascii is true, all non-ASCII characters + in the output are escaped with `\uXXXX` sequences, and the result consists + of ASCII characters only. + @param[in] error_handler how to react on decoding errors; there are three + possible values: `strict` (throws and exception in case a decoding error + occurs; default), `replace` (replace invalid UTF-8 sequences with U+FFFD), + and `ignore` (ignore invalid UTF-8 sequences during serialization; all + bytes are copied to the output unchanged). + + @return string containing the serialization of the JSON value + + @throw type_error.316 if a string stored inside the JSON value is not + UTF-8 encoded and @a error_handler is set to strict + + @note Binary values are serialized as object containing two keys: + - "bytes": an array of bytes as integers + - "subtype": the subtype as integer or "null" if the binary has no subtype + + @complexity Linear. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @liveexample{The following example shows the effect of different @a indent\, + @a indent_char\, and @a ensure_ascii parameters to the result of the + serialization.,dump} + + @see https://docs.python.org/2/library/json.html#json.dump + + @since version 1.0.0; indentation character @a indent_char, option + @a ensure_ascii and exceptions added in version 3.0.0; error + handlers added in version 3.4.0; serialization of binary values added + in version 3.8.0. + */ + string_t dump(const int indent = -1, + const char indent_char = ' ', + const bool ensure_ascii = false, + const error_handler_t error_handler = error_handler_t::strict) const + { + string_t result; + serializer s(detail::output_adapter(result), indent_char, error_handler); + + if (indent >= 0) + { + s.dump(*this, true, ensure_ascii, static_cast(indent)); + } + else + { + s.dump(*this, false, ensure_ascii, 0); + } + + return result; + } + + /*! + @brief return the type of the JSON value (explicit) + + Return the type of the JSON value as a value from the @ref value_t + enumeration. + + @return the type of the JSON value + Value type | return value + ------------------------- | ------------------------- + null | value_t::null + boolean | value_t::boolean + string | value_t::string + number (integer) | value_t::number_integer + number (unsigned integer) | value_t::number_unsigned + number (floating-point) | value_t::number_float + object | value_t::object + array | value_t::array + binary | value_t::binary + discarded | value_t::discarded + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `type()` for all JSON + types.,type} + + @sa see @ref operator value_t() -- return the type of the JSON value (implicit) + @sa see @ref type_name() -- return the type as string + + @since version 1.0.0 + */ + constexpr value_t type() const noexcept + { + return m_type; + } + + /*! + @brief return whether type is primitive + + This function returns true if and only if the JSON type is primitive + (string, number, boolean, or null). + + @return `true` if type is primitive (string, number, boolean, or null), + `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_primitive()` for all JSON + types.,is_primitive} + + @sa see @ref is_structured() -- returns whether JSON value is structured + @sa see @ref is_null() -- returns whether JSON value is `null` + @sa see @ref is_string() -- returns whether JSON value is a string + @sa see @ref is_boolean() -- returns whether JSON value is a boolean + @sa see @ref is_number() -- returns whether JSON value is a number + @sa see @ref is_binary() -- returns whether JSON value is a binary array + + @since version 1.0.0 + */ + constexpr bool is_primitive() const noexcept + { + return is_null() || is_string() || is_boolean() || is_number() || is_binary(); + } + + /*! + @brief return whether type is structured + + This function returns true if and only if the JSON type is structured + (array or object). + + @return `true` if type is structured (array or object), `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_structured()` for all JSON + types.,is_structured} + + @sa see @ref is_primitive() -- returns whether value is primitive + @sa see @ref is_array() -- returns whether value is an array + @sa see @ref is_object() -- returns whether value is an object + + @since version 1.0.0 + */ + constexpr bool is_structured() const noexcept + { + return is_array() || is_object(); + } + + /*! + @brief return whether value is null + + This function returns true if and only if the JSON value is null. + + @return `true` if type is null, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_null()` for all JSON + types.,is_null} + + @since version 1.0.0 + */ + constexpr bool is_null() const noexcept + { + return m_type == value_t::null; + } + + /*! + @brief return whether value is a boolean + + This function returns true if and only if the JSON value is a boolean. + + @return `true` if type is boolean, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_boolean()` for all JSON + types.,is_boolean} + + @since version 1.0.0 + */ + constexpr bool is_boolean() const noexcept + { + return m_type == value_t::boolean; + } + + /*! + @brief return whether value is a number + + This function returns true if and only if the JSON value is a number. This + includes both integer (signed and unsigned) and floating-point values. + + @return `true` if type is number (regardless whether integer, unsigned + integer or floating-type), `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number()` for all JSON + types.,is_number} + + @sa see @ref is_number_integer() -- check if value is an integer or unsigned + integer number + @sa see @ref is_number_unsigned() -- check if value is an unsigned integer + number + @sa see @ref is_number_float() -- check if value is a floating-point number + + @since version 1.0.0 + */ + constexpr bool is_number() const noexcept + { + return is_number_integer() || is_number_float(); + } + + /*! + @brief return whether value is an integer number + + This function returns true if and only if the JSON value is a signed or + unsigned integer number. This excludes floating-point values. + + @return `true` if type is an integer or unsigned integer number, `false` + otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_integer()` for all + JSON types.,is_number_integer} + + @sa see @ref is_number() -- check if value is a number + @sa see @ref is_number_unsigned() -- check if value is an unsigned integer + number + @sa see @ref is_number_float() -- check if value is a floating-point number + + @since version 1.0.0 + */ + constexpr bool is_number_integer() const noexcept + { + return m_type == value_t::number_integer || m_type == value_t::number_unsigned; + } + + /*! + @brief return whether value is an unsigned integer number + + This function returns true if and only if the JSON value is an unsigned + integer number. This excludes floating-point and signed integer values. + + @return `true` if type is an unsigned integer number, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_unsigned()` for all + JSON types.,is_number_unsigned} + + @sa see @ref is_number() -- check if value is a number + @sa see @ref is_number_integer() -- check if value is an integer or unsigned + integer number + @sa see @ref is_number_float() -- check if value is a floating-point number + + @since version 2.0.0 + */ + constexpr bool is_number_unsigned() const noexcept + { + return m_type == value_t::number_unsigned; + } + + /*! + @brief return whether value is a floating-point number + + This function returns true if and only if the JSON value is a + floating-point number. This excludes signed and unsigned integer values. + + @return `true` if type is a floating-point number, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_float()` for all + JSON types.,is_number_float} + + @sa see @ref is_number() -- check if value is number + @sa see @ref is_number_integer() -- check if value is an integer number + @sa see @ref is_number_unsigned() -- check if value is an unsigned integer + number + + @since version 1.0.0 + */ + constexpr bool is_number_float() const noexcept + { + return m_type == value_t::number_float; + } + + /*! + @brief return whether value is an object + + This function returns true if and only if the JSON value is an object. + + @return `true` if type is object, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_object()` for all JSON + types.,is_object} + + @since version 1.0.0 + */ + constexpr bool is_object() const noexcept + { + return m_type == value_t::object; + } + + /*! + @brief return whether value is an array + + This function returns true if and only if the JSON value is an array. + + @return `true` if type is array, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_array()` for all JSON + types.,is_array} + + @since version 1.0.0 + */ + constexpr bool is_array() const noexcept + { + return m_type == value_t::array; + } + + /*! + @brief return whether value is a string + + This function returns true if and only if the JSON value is a string. + + @return `true` if type is string, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_string()` for all JSON + types.,is_string} + + @since version 1.0.0 + */ + constexpr bool is_string() const noexcept + { + return m_type == value_t::string; + } + + /*! + @brief return whether value is a binary array + + This function returns true if and only if the JSON value is a binary array. + + @return `true` if type is binary array, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_binary()` for all JSON + types.,is_binary} + + @since version 3.8.0 + */ + constexpr bool is_binary() const noexcept + { + return m_type == value_t::binary; + } + + /*! + @brief return whether value is discarded + + This function returns true if and only if the JSON value was discarded + during parsing with a callback function (see @ref parser_callback_t). + + @note This function will always be `false` for JSON values after parsing. + That is, discarded values can only occur during parsing, but will be + removed when inside a structured value or replaced by null in other cases. + + @return `true` if type is discarded, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_discarded()` for all JSON + types.,is_discarded} + + @since version 1.0.0 + */ + constexpr bool is_discarded() const noexcept + { + return m_type == value_t::discarded; + } + + /*! + @brief return the type of the JSON value (implicit) + + Implicitly return the type of the JSON value as a value from the @ref + value_t enumeration. + + @return the type of the JSON value + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies the @ref value_t operator for + all JSON types.,operator__value_t} + + @sa see @ref type() -- return the type of the JSON value (explicit) + @sa see @ref type_name() -- return the type as string + + @since version 1.0.0 + */ + constexpr operator value_t() const noexcept + { + return m_type; + } + + /// @} + + private: + ////////////////// + // value access // + ////////////////// + + /// get a boolean (explicit) + boolean_t get_impl(boolean_t* /*unused*/) const + { + if (JSON_HEDLEY_LIKELY(is_boolean())) + { + return m_value.boolean; + } + + JSON_THROW(type_error::create(302, "type must be boolean, but is " + std::string(type_name()), *this)); + } + + /// get a pointer to the value (object) + object_t* get_impl_ptr(object_t* /*unused*/) noexcept + { + return is_object() ? m_value.object : nullptr; + } + + /// get a pointer to the value (object) + constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept + { + return is_object() ? m_value.object : nullptr; + } + + /// get a pointer to the value (array) + array_t* get_impl_ptr(array_t* /*unused*/) noexcept + { + return is_array() ? m_value.array : nullptr; + } + + /// get a pointer to the value (array) + constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept + { + return is_array() ? m_value.array : nullptr; + } + + /// get a pointer to the value (string) + string_t* get_impl_ptr(string_t* /*unused*/) noexcept + { + return is_string() ? m_value.string : nullptr; + } + + /// get a pointer to the value (string) + constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept + { + return is_string() ? m_value.string : nullptr; + } + + /// get a pointer to the value (boolean) + boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept + { + return is_boolean() ? &m_value.boolean : nullptr; + } + + /// get a pointer to the value (boolean) + constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept + { + return is_boolean() ? &m_value.boolean : nullptr; + } + + /// get a pointer to the value (integer number) + number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept + { + return is_number_integer() ? &m_value.number_integer : nullptr; + } + + /// get a pointer to the value (integer number) + constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept + { + return is_number_integer() ? &m_value.number_integer : nullptr; + } + + /// get a pointer to the value (unsigned number) + number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept + { + return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + } + + /// get a pointer to the value (unsigned number) + constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept + { + return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + } + + /// get a pointer to the value (floating-point number) + number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept + { + return is_number_float() ? &m_value.number_float : nullptr; + } + + /// get a pointer to the value (floating-point number) + constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept + { + return is_number_float() ? &m_value.number_float : nullptr; + } + + /// get a pointer to the value (binary) + binary_t* get_impl_ptr(binary_t* /*unused*/) noexcept + { + return is_binary() ? m_value.binary : nullptr; + } + + /// get a pointer to the value (binary) + constexpr const binary_t* get_impl_ptr(const binary_t* /*unused*/) const noexcept + { + return is_binary() ? m_value.binary : nullptr; + } + + /*! + @brief helper function to implement get_ref() + + This function helps to implement get_ref() without code duplication for + const and non-const overloads + + @tparam ThisType will be deduced as `basic_json` or `const basic_json` + + @throw type_error.303 if ReferenceType does not match underlying value + type of the current JSON + */ + template + static ReferenceType get_ref_impl(ThisType& obj) + { + // delegate the call to get_ptr<>() + auto* ptr = obj.template get_ptr::type>(); + + if (JSON_HEDLEY_LIKELY(ptr != nullptr)) + { + return *ptr; + } + + JSON_THROW(type_error::create(303, "incompatible ReferenceType for get_ref, actual type is " + std::string(obj.type_name()), obj)); + } + + public: + /// @name value access + /// Direct access to the stored value of a JSON value. + /// @{ + + /*! + @brief get a pointer value (implicit) + + Implicit pointer access to the internally stored JSON value. No copies are + made. + + @warning Writing data to the pointee of the result yields an undefined + state. + + @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref + object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, + @ref number_unsigned_t, or @ref number_float_t. Enforced by a static + assertion. + + @return pointer to the internally stored JSON value if the requested + pointer type @a PointerType fits to the JSON value; `nullptr` otherwise + + @complexity Constant. + + @liveexample{The example below shows how pointers to internal values of a + JSON value can be requested. Note that no type conversions are made and a + `nullptr` is returned if the value and the requested pointer type does not + match.,get_ptr} + + @since version 1.0.0 + */ + template::value, int>::type = 0> + auto get_ptr() noexcept -> decltype(std::declval().get_impl_ptr(std::declval())) + { + // delegate the call to get_impl_ptr<>() + return get_impl_ptr(static_cast(nullptr)); + } + + /*! + @brief get a pointer value (implicit) + @copydoc get_ptr() + */ + template < typename PointerType, typename std::enable_if < + std::is_pointer::value&& + std::is_const::type>::value, int >::type = 0 > + constexpr auto get_ptr() const noexcept -> decltype(std::declval().get_impl_ptr(std::declval())) + { + // delegate the call to get_impl_ptr<>() const + return get_impl_ptr(static_cast(nullptr)); + } + + private: + /*! + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value + which is [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible) + and [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). + The value is converted by calling the @ref json_serializer + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType ret; + JSONSerializer::from_json(*this, ret); + return ret; + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json, + - @ref json_serializer has a `from_json()` method of the form + `void from_json(const basic_json&, ValueType&)`, and + - @ref json_serializer does not have a `from_json()` method of + the form `ValueType from_json(const basic_json&)` + + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map`.,get__ValueType_const} + + @since version 2.1.0 + */ + template < typename ValueType, + detail::enable_if_t < + detail::is_default_constructible::value&& + detail::has_from_json::value, + int > = 0 > + ValueType get_impl(detail::priority_tag<0> /*unused*/) const noexcept(noexcept( + JSONSerializer::from_json(std::declval(), std::declval()))) + { + auto ret = ValueType(); + JSONSerializer::from_json(*this, ret); + return ret; + } + + /*! + @brief get a value (explicit); special case + + Explicit type conversion between the JSON value and a compatible value + which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible) + and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). + The value is converted by calling the @ref json_serializer + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + return JSONSerializer::from_json(*this); + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json and + - @ref json_serializer has a `from_json()` method of the form + `ValueType from_json(const basic_json&)` + + @note If @ref json_serializer has both overloads of + `from_json()`, this one is chosen. + + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer `from_json()` method throws + + @since version 2.1.0 + */ + template < typename ValueType, + detail::enable_if_t < + detail::has_non_default_from_json::value, + int > = 0 > + ValueType get_impl(detail::priority_tag<1> /*unused*/) const noexcept(noexcept( + JSONSerializer::from_json(std::declval()))) + { + return JSONSerializer::from_json(*this); + } + + /*! + @brief get special-case overload + + This overloads converts the current @ref basic_json in a different + @ref basic_json type + + @tparam BasicJsonType == @ref basic_json + + @return a copy of *this, converted into @a BasicJsonType + + @complexity Depending on the implementation of the called `from_json()` + method. + + @since version 3.2.0 + */ + template < typename BasicJsonType, + detail::enable_if_t < + detail::is_basic_json::value, + int > = 0 > + BasicJsonType get_impl(detail::priority_tag<2> /*unused*/) const + { + return *this; + } + + /*! + @brief get special-case overload + + This overloads avoids a lot of template boilerplate, it can be seen as the + identity method + + @tparam BasicJsonType == @ref basic_json + + @return a copy of *this + + @complexity Constant. + + @since version 2.1.0 + */ + template::value, + int> = 0> + basic_json get_impl(detail::priority_tag<3> /*unused*/) const + { + return *this; + } + + /*! + @brief get a pointer value (explicit) + @copydoc get() + */ + template::value, + int> = 0> + constexpr auto get_impl(detail::priority_tag<4> /*unused*/) const noexcept + -> decltype(std::declval().template get_ptr()) + { + // delegate the call to get_ptr + return get_ptr(); + } + + public: + /*! + @brief get a (pointer) value (explicit) + + Performs explicit type conversion between the JSON value and a compatible value if required. + + - If the requested type is a pointer to the internally stored JSON value that pointer is returned. + No copies are made. + + - If the requested type is the current @ref basic_json, or a different @ref basic_json convertible + from the current @ref basic_json. + + - Otherwise the value is converted by calling the @ref json_serializer `from_json()` + method. + + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @tparam ValueType if necessary + + @throw what @ref json_serializer `from_json()` method throws if conversion is required + + @since version 2.1.0 + */ + template < typename ValueTypeCV, typename ValueType = detail::uncvref_t> +#if defined(JSON_HAS_CPP_14) + constexpr +#endif + auto get() const noexcept( + noexcept(std::declval().template get_impl(detail::priority_tag<4> {}))) + -> decltype(std::declval().template get_impl(detail::priority_tag<4> {})) + { + // we cannot static_assert on ValueTypeCV being non-const, because + // there is support for get(), which is why we + // still need the uncvref + static_assert(!std::is_reference::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + return get_impl(detail::priority_tag<4> {}); + } + + /*! + @brief get a pointer value (explicit) + + Explicit pointer access to the internally stored JSON value. No copies are + made. + + @warning The pointer becomes invalid if the underlying JSON object + changes. + + @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref + object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, + @ref number_unsigned_t, or @ref number_float_t. + + @return pointer to the internally stored JSON value if the requested + pointer type @a PointerType fits to the JSON value; `nullptr` otherwise + + @complexity Constant. + + @liveexample{The example below shows how pointers to internal values of a + JSON value can be requested. Note that no type conversions are made and a + `nullptr` is returned if the value and the requested pointer type does not + match.,get__PointerType} + + @sa see @ref get_ptr() for explicit pointer-member access + + @since version 1.0.0 + */ + template::value, int>::type = 0> + auto get() noexcept -> decltype(std::declval().template get_ptr()) + { + // delegate the call to get_ptr + return get_ptr(); + } + + /*! + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value. + The value is filled into the input parameter by calling the @ref json_serializer + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType v; + JSONSerializer::from_json(*this, v); + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json, + - @ref json_serializer has a `from_json()` method of the form + `void from_json(const basic_json&, ValueType&)`, and + + @tparam ValueType the input parameter type. + + @return the input parameter, allowing chaining calls. + + @throw what @ref json_serializer `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map`.,get_to} + + @since version 3.3.0 + */ + template < typename ValueType, + detail::enable_if_t < + !detail::is_basic_json::value&& + detail::has_from_json::value, + int > = 0 > + ValueType & get_to(ValueType& v) const noexcept(noexcept( + JSONSerializer::from_json(std::declval(), v))) + { + JSONSerializer::from_json(*this, v); + return v; + } + + // specialization to allow to call get_to with a basic_json value + // see https://github.com/nlohmann/json/issues/2175 + template::value, + int> = 0> + ValueType & get_to(ValueType& v) const + { + v = *this; + return v; + } + + template < + typename T, std::size_t N, + typename Array = T (&)[N], // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + detail::enable_if_t < + detail::has_from_json::value, int > = 0 > + Array get_to(T (&v)[N]) const // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + noexcept(noexcept(JSONSerializer::from_json( + std::declval(), v))) + { + JSONSerializer::from_json(*this, v); + return v; + } + + /*! + @brief get a reference value (implicit) + + Implicit reference access to the internally stored JSON value. No copies + are made. + + @warning Writing data to the referee of the result yields an undefined + state. + + @tparam ReferenceType reference type; must be a reference to @ref array_t, + @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or + @ref number_float_t. Enforced by static assertion. + + @return reference to the internally stored JSON value if the requested + reference type @a ReferenceType fits to the JSON value; throws + type_error.303 otherwise + + @throw type_error.303 in case passed type @a ReferenceType is incompatible + with the stored JSON value; see example below + + @complexity Constant. + + @liveexample{The example shows several calls to `get_ref()`.,get_ref} + + @since version 1.1.0 + */ + template::value, int>::type = 0> + ReferenceType get_ref() + { + // delegate call to get_ref_impl + return get_ref_impl(*this); + } + + /*! + @brief get a reference value (implicit) + @copydoc get_ref() + */ + template < typename ReferenceType, typename std::enable_if < + std::is_reference::value&& + std::is_const::type>::value, int >::type = 0 > + ReferenceType get_ref() const + { + // delegate call to get_ref_impl + return get_ref_impl(*this); + } + + /*! + @brief get a value (implicit) + + Implicit type conversion between the JSON value and a compatible value. + The call is realized by calling @ref get() const. + + @tparam ValueType non-pointer type compatible to the JSON value, for + instance `int` for JSON integer numbers, `bool` for JSON booleans, or + `std::vector` types for JSON arrays. The character type of @ref string_t + as well as an initializer list of this type is excluded to avoid + ambiguities as these types implicitly convert to `std::string`. + + @return copy of the JSON value, converted to type @a ValueType + + @throw type_error.302 in case passed type @a ValueType is incompatible + to the JSON value type (e.g., the JSON value is of type boolean, but a + string is requested); see example below + + @complexity Linear in the size of the JSON value. + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map`.,operator__ValueType} + + @since version 1.0.0 + */ + template < typename ValueType, typename std::enable_if < + detail::conjunction < + detail::negation>, + detail::negation>>, + detail::negation>, + detail::negation>, + detail::negation>>, + +#if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1910 && _MSC_VER <= 1914)) + detail::negation>, +#endif + detail::is_detected_lazy + >::value, int >::type = 0 > + JSON_EXPLICIT operator ValueType() const + { + // delegate the call to get<>() const + return get(); + } + + /*! + @return reference to the binary value + + @throw type_error.302 if the value is not binary + + @sa see @ref is_binary() to check if the value is binary + + @since version 3.8.0 + */ + binary_t& get_binary() + { + if (!is_binary()) + { + JSON_THROW(type_error::create(302, "type must be binary, but is " + std::string(type_name()), *this)); + } + + return *get_ptr(); + } + + /// @copydoc get_binary() + const binary_t& get_binary() const + { + if (!is_binary()) + { + JSON_THROW(type_error::create(302, "type must be binary, but is " + std::string(type_name()), *this)); + } + + return *get_ptr(); + } + + /// @} + + + //////////////////// + // element access // + //////////////////// + + /// @name element access + /// Access to the JSON value. + /// @{ + + /*! + @brief access specified array element with bounds checking + + Returns a reference to the element at specified location @a idx, with + bounds checking. + + @param[in] idx index of the element to access + + @return reference to the element at index @a idx + + @throw type_error.304 if the JSON value is not an array; in this case, + calling `at` with an index makes no sense. See example below. + @throw out_of_range.401 if the index @a idx is out of range of the array; + that is, `idx >= size()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 1.0.0 + + @liveexample{The example below shows how array elements can be read and + written using `at()`. It also demonstrates the different exceptions that + can be thrown.,at__size_type} + */ + reference at(size_type idx) + { + // at only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + JSON_TRY + { + return set_parent(m_value.array->at(idx)); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range", *this)); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief access specified array element with bounds checking + + Returns a const reference to the element at specified location @a idx, + with bounds checking. + + @param[in] idx index of the element to access + + @return const reference to the element at index @a idx + + @throw type_error.304 if the JSON value is not an array; in this case, + calling `at` with an index makes no sense. See example below. + @throw out_of_range.401 if the index @a idx is out of range of the array; + that is, `idx >= size()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 1.0.0 + + @liveexample{The example below shows how array elements can be read using + `at()`. It also demonstrates the different exceptions that can be thrown., + at__size_type_const} + */ + const_reference at(size_type idx) const + { + // at only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + JSON_TRY + { + return m_value.array->at(idx); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range", *this)); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief access specified object element with bounds checking + + Returns a reference to the element at with specified key @a key, with + bounds checking. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.304 if the JSON value is not an object; in this case, + calling `at` with a key makes no sense. See example below. + @throw out_of_range.403 if the key @a key is is not stored in the object; + that is, `find(key) == end()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Logarithmic in the size of the container. + + @sa see @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + @sa see @ref value() for access by value with a default value + + @since version 1.0.0 + + @liveexample{The example below shows how object elements can be read and + written using `at()`. It also demonstrates the different exceptions that + can be thrown.,at__object_t_key_type} + */ + reference at(const typename object_t::key_type& key) + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_TRY + { + return set_parent(m_value.object->at(key)); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(403, "key '" + key + "' not found", *this)); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief access specified object element with bounds checking + + Returns a const reference to the element at with specified key @a key, + with bounds checking. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @throw type_error.304 if the JSON value is not an object; in this case, + calling `at` with a key makes no sense. See example below. + @throw out_of_range.403 if the key @a key is is not stored in the object; + that is, `find(key) == end()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Logarithmic in the size of the container. + + @sa see @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + @sa see @ref value() for access by value with a default value + + @since version 1.0.0 + + @liveexample{The example below shows how object elements can be read using + `at()`. It also demonstrates the different exceptions that can be thrown., + at__object_t_key_type_const} + */ + const_reference at(const typename object_t::key_type& key) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_TRY + { + return m_value.object->at(key); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(403, "key '" + key + "' not found", *this)); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief access specified array element + + Returns a reference to the element at specified location @a idx. + + @note If @a idx is beyond the range of the array (i.e., `idx >= size()`), + then the array is silently filled up with `null` values to make `idx` a + valid reference to the last stored element. + + @param[in] idx index of the element to access + + @return reference to the element at index @a idx + + @throw type_error.305 if the JSON value is not an array or null; in that + cases, using the [] operator with an index makes no sense. + + @complexity Constant if @a idx is in the range of the array. Otherwise + linear in `idx - size()`. + + @liveexample{The example below shows how array elements can be read and + written using `[]` operator. Note the addition of `null` + values.,operatorarray__size_type} + + @since version 1.0.0 + */ + reference operator[](size_type idx) + { + // implicitly convert null value to an empty array + if (is_null()) + { + m_type = value_t::array; + m_value.array = create(); + assert_invariant(); + } + + // operator[] only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + // fill up array with null values if given idx is outside range + if (idx >= m_value.array->size()) + { +#if JSON_DIAGNOSTICS + // remember array size & capacity before resizing + const auto old_size = m_value.array->size(); + const auto old_capacity = m_value.array->capacity(); +#endif + m_value.array->resize(idx + 1); + +#if JSON_DIAGNOSTICS + if (JSON_HEDLEY_UNLIKELY(m_value.array->capacity() != old_capacity)) + { + // capacity has changed: update all parents + set_parents(); + } + else + { + // set parent for values added above + set_parents(begin() + static_cast(old_size), static_cast(idx + 1 - old_size)); + } +#endif + assert_invariant(); + } + + return m_value.array->operator[](idx); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a numeric argument with " + std::string(type_name()), *this)); + } + + /*! + @brief access specified array element + + Returns a const reference to the element at specified location @a idx. + + @param[in] idx index of the element to access + + @return const reference to the element at index @a idx + + @throw type_error.305 if the JSON value is not an array; in that case, + using the [] operator with an index makes no sense. + + @complexity Constant. + + @liveexample{The example below shows how array elements can be read using + the `[]` operator.,operatorarray__size_type_const} + + @since version 1.0.0 + */ + const_reference operator[](size_type idx) const + { + // const operator[] only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + return m_value.array->operator[](idx); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a numeric argument with " + std::string(type_name()), *this)); + } + + /*! + @brief access specified object element + + Returns a reference to the element at with specified key @a key. + + @note If @a key is not found in the object, then it is silently added to + the object and filled with a `null` value to make `key` a valid reference. + In case the value was `null` before, it is converted to an object. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.305 if the JSON value is not an object or null; in that + cases, using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read and + written using the `[]` operator.,operatorarray__key_type} + + @sa see @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa see @ref value() for access by value with a default value + + @since version 1.0.0 + */ + reference operator[](const typename object_t::key_type& key) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create(); + assert_invariant(); + } + + // operator[] only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + return set_parent(m_value.object->operator[](key)); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()), *this)); + } + + /*! + @brief read-only access specified object element + + Returns a const reference to the element at with specified key @a key. No + bounds checking is performed. + + @warning If the element with key @a key does not exist, the behavior is + undefined. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + + @throw type_error.305 if the JSON value is not an object; in that case, + using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read using + the `[]` operator.,operatorarray__key_type_const} + + @sa see @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa see @ref value() for access by value with a default value + + @since version 1.0.0 + */ + const_reference operator[](const typename object_t::key_type& key) const + { + // const operator[] only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_ASSERT(m_value.object->find(key) != m_value.object->end()); + return m_value.object->find(key)->second; + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()), *this)); + } + + /*! + @brief access specified object element + + Returns a reference to the element at with specified key @a key. + + @note If @a key is not found in the object, then it is silently added to + the object and filled with a `null` value to make `key` a valid reference. + In case the value was `null` before, it is converted to an object. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.305 if the JSON value is not an object or null; in that + cases, using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read and + written using the `[]` operator.,operatorarray__key_type} + + @sa see @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa see @ref value() for access by value with a default value + + @since version 1.1.0 + */ + template + JSON_HEDLEY_NON_NULL(2) + reference operator[](T* key) + { + // implicitly convert null to object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + return set_parent(m_value.object->operator[](key)); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()), *this)); + } + + /*! + @brief read-only access specified object element + + Returns a const reference to the element at with specified key @a key. No + bounds checking is performed. + + @warning If the element with key @a key does not exist, the behavior is + undefined. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + + @throw type_error.305 if the JSON value is not an object; in that case, + using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read using + the `[]` operator.,operatorarray__key_type_const} + + @sa see @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa see @ref value() for access by value with a default value + + @since version 1.1.0 + */ + template + JSON_HEDLEY_NON_NULL(2) + const_reference operator[](T* key) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_ASSERT(m_value.object->find(key) != m_value.object->end()); + return m_value.object->find(key)->second; + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()), *this)); + } + + /*! + @brief access specified object element with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(key); + } catch(out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const typename object_t::key_type&), this function + does not throw if the given key @a key was not found. + + @note Unlike @ref operator[](const typename object_t::key_type& key), this + function does not implicitly add an element to the position defined by @a + key. This function is furthermore also applicable to const objects. + + @param[in] key key of the element to access + @param[in] default_value the value to return if @a key is not found + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw type_error.302 if @a default_value does not match the type of the + value at @a key + @throw type_error.306 if the JSON value is not an object; in that case, + using `value()` with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value} + + @sa see @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa see @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + + @since version 1.0.0 + */ + // using std::is_convertible in a std::enable_if will fail when using explicit conversions + template < class ValueType, typename std::enable_if < + detail::is_getable::value + && !std::is_same::value, int >::type = 0 > + ValueType value(const typename object_t::key_type& key, const ValueType& default_value) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + // if key is found, return value and given default value otherwise + const auto it = find(key); + if (it != end()) + { + return it->template get(); + } + + return default_value; + } + + JSON_THROW(type_error::create(306, "cannot use value() with " + std::string(type_name()), *this)); + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const typename object_t::key_type&, const ValueType&) const + */ + string_t value(const typename object_t::key_type& key, const char* default_value) const + { + return value(key, string_t(default_value)); + } + + /*! + @brief access specified object element via JSON Pointer with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(ptr); + } catch(out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const json_pointer&), this function does not throw + if the given key @a key was not found. + + @param[in] ptr a JSON pointer to the element to access + @param[in] default_value the value to return if @a ptr found no value + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw type_error.302 if @a default_value does not match the type of the + value at @a ptr + @throw type_error.306 if the JSON value is not an object; in that case, + using `value()` with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value_ptr} + + @sa see @ref operator[](const json_pointer&) for unchecked access by reference + + @since version 2.0.2 + */ + template::value, int>::type = 0> + ValueType value(const json_pointer& ptr, const ValueType& default_value) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + // if pointer resolves a value, return it or use default value + JSON_TRY + { + return ptr.get_checked(this).template get(); + } + JSON_INTERNAL_CATCH (out_of_range&) + { + return default_value; + } + } + + JSON_THROW(type_error::create(306, "cannot use value() with " + std::string(type_name()), *this)); + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const json_pointer&, ValueType) const + */ + JSON_HEDLEY_NON_NULL(3) + string_t value(const json_pointer& ptr, const char* default_value) const + { + return value(ptr, string_t(default_value)); + } + + /*! + @brief access the first element + + Returns a reference to the first element in the container. For a JSON + container `c`, the expression `c.front()` is equivalent to `*c.begin()`. + + @return In case of a structured type (array or object), a reference to the + first element is returned. In case of number, string, boolean, or binary + values, a reference to the value is returned. + + @complexity Constant. + + @pre The JSON value must not be `null` (would throw `std::out_of_range`) + or an empty array or object (undefined behavior, **guarded by + assertions**). + @post The JSON value remains unchanged. + + @throw invalid_iterator.214 when called on `null` value + + @liveexample{The following code shows an example for `front()`.,front} + + @sa see @ref back() -- access the last element + + @since version 1.0.0 + */ + reference front() + { + return *begin(); + } + + /*! + @copydoc basic_json::front() + */ + const_reference front() const + { + return *cbegin(); + } + + /*! + @brief access the last element + + Returns a reference to the last element in the container. For a JSON + container `c`, the expression `c.back()` is equivalent to + @code {.cpp} + auto tmp = c.end(); + --tmp; + return *tmp; + @endcode + + @return In case of a structured type (array or object), a reference to the + last element is returned. In case of number, string, boolean, or binary + values, a reference to the value is returned. + + @complexity Constant. + + @pre The JSON value must not be `null` (would throw `std::out_of_range`) + or an empty array or object (undefined behavior, **guarded by + assertions**). + @post The JSON value remains unchanged. + + @throw invalid_iterator.214 when called on a `null` value. See example + below. + + @liveexample{The following code shows an example for `back()`.,back} + + @sa see @ref front() -- access the first element + + @since version 1.0.0 + */ + reference back() + { + auto tmp = end(); + --tmp; + return *tmp; + } + + /*! + @copydoc basic_json::back() + */ + const_reference back() const + { + auto tmp = cend(); + --tmp; + return *tmp; + } + + /*! + @brief remove element given an iterator + + Removes the element specified by iterator @a pos. The iterator @a pos must + be valid and dereferenceable. Thus the `end()` iterator (which is valid, + but is not dereferenceable) cannot be used as a value for @a pos. + + If called on a primitive type other than `null`, the resulting JSON value + will be `null`. + + @param[in] pos iterator to the element to remove + @return Iterator following the last removed element. If the iterator @a + pos refers to the last element, the `end()` iterator is returned. + + @tparam IteratorType an @ref iterator or @ref const_iterator + + @post Invalidates iterators and references at or after the point of the + erase, including the `end()` iterator. + + @throw type_error.307 if called on a `null` value; example: `"cannot use + erase() with null"` + @throw invalid_iterator.202 if called on an iterator which does not belong + to the current JSON value; example: `"iterator does not fit current + value"` + @throw invalid_iterator.205 if called on a primitive type with invalid + iterator (i.e., any iterator which is not `begin()`); example: `"iterator + out of range"` + + @complexity The complexity depends on the type: + - objects: amortized constant + - arrays: linear in distance between @a pos and the end of the container + - strings and binary: linear in the length of the member + - other types: constant + + @liveexample{The example shows the result of `erase()` for different JSON + types.,erase__IteratorType} + + @sa see @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa see @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + @sa see @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + template < class IteratorType, typename std::enable_if < + std::is_same::value || + std::is_same::value, int >::type + = 0 > + IteratorType erase(IteratorType pos) + { + // make sure iterator fits the current value + if (JSON_HEDLEY_UNLIKELY(this != pos.m_object)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value", *this)); + } + + IteratorType result = end(); + + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + case value_t::binary: + { + if (JSON_HEDLEY_UNLIKELY(!pos.m_it.primitive_iterator.is_begin())) + { + JSON_THROW(invalid_iterator::create(205, "iterator out of range", *this)); + } + + if (is_string()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.string); + std::allocator_traits::deallocate(alloc, m_value.string, 1); + m_value.string = nullptr; + } + else if (is_binary()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.binary); + std::allocator_traits::deallocate(alloc, m_value.binary, 1); + m_value.binary = nullptr; + } + + m_type = value_t::null; + assert_invariant(); + break; + } + + case value_t::object: + { + result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); + break; + } + + case value_t::array: + { + result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); + break; + } + + case value_t::null: + case value_t::discarded: + default: + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()), *this)); + } + + return result; + } + + /*! + @brief remove elements given an iterator range + + Removes the element specified by the range `[first; last)`. The iterator + @a first does not need to be dereferenceable if `first == last`: erasing + an empty range is a no-op. + + If called on a primitive type other than `null`, the resulting JSON value + will be `null`. + + @param[in] first iterator to the beginning of the range to remove + @param[in] last iterator past the end of the range to remove + @return Iterator following the last removed element. If the iterator @a + second refers to the last element, the `end()` iterator is returned. + + @tparam IteratorType an @ref iterator or @ref const_iterator + + @post Invalidates iterators and references at or after the point of the + erase, including the `end()` iterator. + + @throw type_error.307 if called on a `null` value; example: `"cannot use + erase() with null"` + @throw invalid_iterator.203 if called on iterators which does not belong + to the current JSON value; example: `"iterators do not fit current value"` + @throw invalid_iterator.204 if called on a primitive type with invalid + iterators (i.e., if `first != begin()` and `last != end()`); example: + `"iterators out of range"` + + @complexity The complexity depends on the type: + - objects: `log(size()) + std::distance(first, last)` + - arrays: linear in the distance between @a first and @a last, plus linear + in the distance between @a last and end of the container + - strings and binary: linear in the length of the member + - other types: constant + + @liveexample{The example shows the result of `erase()` for different JSON + types.,erase__IteratorType_IteratorType} + + @sa see @ref erase(IteratorType) -- removes the element at a given position + @sa see @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + @sa see @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + template < class IteratorType, typename std::enable_if < + std::is_same::value || + std::is_same::value, int >::type + = 0 > + IteratorType erase(IteratorType first, IteratorType last) + { + // make sure iterator fits the current value + if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object)) + { + JSON_THROW(invalid_iterator::create(203, "iterators do not fit current value", *this)); + } + + IteratorType result = end(); + + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + case value_t::binary: + { + if (JSON_HEDLEY_LIKELY(!first.m_it.primitive_iterator.is_begin() + || !last.m_it.primitive_iterator.is_end())) + { + JSON_THROW(invalid_iterator::create(204, "iterators out of range", *this)); + } + + if (is_string()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.string); + std::allocator_traits::deallocate(alloc, m_value.string, 1); + m_value.string = nullptr; + } + else if (is_binary()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.binary); + std::allocator_traits::deallocate(alloc, m_value.binary, 1); + m_value.binary = nullptr; + } + + m_type = value_t::null; + assert_invariant(); + break; + } + + case value_t::object: + { + result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, + last.m_it.object_iterator); + break; + } + + case value_t::array: + { + result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, + last.m_it.array_iterator); + break; + } + + case value_t::null: + case value_t::discarded: + default: + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()), *this)); + } + + return result; + } + + /*! + @brief remove element from a JSON object given a key + + Removes elements from a JSON object with the key value @a key. + + @param[in] key value of the elements to remove + + @return Number of elements removed. If @a ObjectType is the default + `std::map` type, the return value will always be `0` (@a key was not + found) or `1` (@a key was found). + + @post References and iterators to the erased elements are invalidated. + Other references and iterators are not affected. + + @throw type_error.307 when called on a type other than JSON object; + example: `"cannot use erase() with null"` + + @complexity `log(size()) + count(key)` + + @liveexample{The example shows the effect of `erase()`.,erase__key_type} + + @sa see @ref erase(IteratorType) -- removes the element at a given position + @sa see @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa see @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + size_type erase(const typename object_t::key_type& key) + { + // this erase only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + return m_value.object->erase(key); + } + + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()), *this)); + } + + /*! + @brief remove element from a JSON array given an index + + Removes element from a JSON array at the index @a idx. + + @param[in] idx index of the element to remove + + @throw type_error.307 when called on a type other than JSON object; + example: `"cannot use erase() with null"` + @throw out_of_range.401 when `idx >= size()`; example: `"array index 17 + is out of range"` + + @complexity Linear in distance between @a idx and the end of the container. + + @liveexample{The example shows the effect of `erase()`.,erase__size_type} + + @sa see @ref erase(IteratorType) -- removes the element at a given position + @sa see @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa see @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + + @since version 1.0.0 + */ + void erase(const size_type idx) + { + // this erase only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + if (JSON_HEDLEY_UNLIKELY(idx >= size())) + { + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range", *this)); + } + + m_value.array->erase(m_value.array->begin() + static_cast(idx)); + } + else + { + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()), *this)); + } + } + + /// @} + + + //////////// + // lookup // + //////////// + + /// @name lookup + /// @{ + + /*! + @brief find an element in a JSON object + + Finds an element in a JSON object with key equivalent to @a key. If the + element is not found or the JSON value is not an object, end() is + returned. + + @note This method always returns @ref end() when executed on a JSON type + that is not an object. + + @param[in] key key value of the element to search for. + + @return Iterator to an element with key equivalent to @a key. If no such + element is found or the JSON value is not an object, past-the-end (see + @ref end()) iterator is returned. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The example shows how `find()` is used.,find__key_type} + + @sa see @ref contains(KeyT&&) const -- checks whether a key exists + + @since version 1.0.0 + */ + template + iterator find(KeyT&& key) + { + auto result = end(); + + if (is_object()) + { + result.m_it.object_iterator = m_value.object->find(std::forward(key)); + } + + return result; + } + + /*! + @brief find an element in a JSON object + @copydoc find(KeyT&&) + */ + template + const_iterator find(KeyT&& key) const + { + auto result = cend(); + + if (is_object()) + { + result.m_it.object_iterator = m_value.object->find(std::forward(key)); + } + + return result; + } + + /*! + @brief returns the number of occurrences of a key in a JSON object + + Returns the number of elements with key @a key. If ObjectType is the + default `std::map` type, the return value will always be `0` (@a key was + not found) or `1` (@a key was found). + + @note This method always returns `0` when executed on a JSON type that is + not an object. + + @param[in] key key value of the element to count + + @return Number of elements with key @a key. If the JSON value is not an + object, the return value will be `0`. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The example shows how `count()` is used.,count} + + @since version 1.0.0 + */ + template + size_type count(KeyT&& key) const + { + // return 0 for all nonobject types + return is_object() ? m_value.object->count(std::forward(key)) : 0; + } + + /*! + @brief check the existence of an element in a JSON object + + Check whether an element exists in a JSON object with key equivalent to + @a key. If the element is not found or the JSON value is not an object, + false is returned. + + @note This method always returns false when executed on a JSON type + that is not an object. + + @param[in] key key value to check its existence. + + @return true if an element with specified @a key exists. If no such + element with such key is found or the JSON value is not an object, + false is returned. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The following code shows an example for `contains()`.,contains} + + @sa see @ref find(KeyT&&) -- returns an iterator to an object element + @sa see @ref contains(const json_pointer&) const -- checks the existence for a JSON pointer + + @since version 3.6.0 + */ + template < typename KeyT, typename std::enable_if < + !std::is_same::type, json_pointer>::value, int >::type = 0 > + bool contains(KeyT && key) const + { + return is_object() && m_value.object->find(std::forward(key)) != m_value.object->end(); + } + + /*! + @brief check the existence of an element in a JSON object given a JSON pointer + + Check whether the given JSON pointer @a ptr can be resolved in the current + JSON value. + + @note This method can be executed on any JSON value type. + + @param[in] ptr JSON pointer to check its existence. + + @return true if the JSON pointer can be resolved to a stored value, false + otherwise. + + @post If `j.contains(ptr)` returns true, it is safe to call `j[ptr]`. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The following code shows an example for `contains()`.,contains_json_pointer} + + @sa see @ref contains(KeyT &&) const -- checks the existence of a key + + @since version 3.7.0 + */ + bool contains(const json_pointer& ptr) const + { + return ptr.contains(this); + } + + /// @} + + + /////////////// + // iterators // + /////////////// + + /// @name iterators + /// @{ + + /*! + @brief returns an iterator to the first element + + Returns an iterator to the first element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return iterator to the first element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + + @liveexample{The following code shows an example for `begin()`.,begin} + + @sa see @ref cbegin() -- returns a const iterator to the beginning + @sa see @ref end() -- returns an iterator to the end + @sa see @ref cend() -- returns a const iterator to the end + + @since version 1.0.0 + */ + iterator begin() noexcept + { + iterator result(this); + result.set_begin(); + return result; + } + + /*! + @copydoc basic_json::cbegin() + */ + const_iterator begin() const noexcept + { + return cbegin(); + } + + /*! + @brief returns a const iterator to the first element + + Returns a const iterator to the first element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return const iterator to the first element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).begin()`. + + @liveexample{The following code shows an example for `cbegin()`.,cbegin} + + @sa see @ref begin() -- returns an iterator to the beginning + @sa see @ref end() -- returns an iterator to the end + @sa see @ref cend() -- returns a const iterator to the end + + @since version 1.0.0 + */ + const_iterator cbegin() const noexcept + { + const_iterator result(this); + result.set_begin(); + return result; + } + + /*! + @brief returns an iterator to one past the last element + + Returns an iterator to one past the last element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return iterator one past the last element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + + @liveexample{The following code shows an example for `end()`.,end} + + @sa see @ref cend() -- returns a const iterator to the end + @sa see @ref begin() -- returns an iterator to the beginning + @sa see @ref cbegin() -- returns a const iterator to the beginning + + @since version 1.0.0 + */ + iterator end() noexcept + { + iterator result(this); + result.set_end(); + return result; + } + + /*! + @copydoc basic_json::cend() + */ + const_iterator end() const noexcept + { + return cend(); + } + + /*! + @brief returns a const iterator to one past the last element + + Returns a const iterator to one past the last element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return const iterator one past the last element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).end()`. + + @liveexample{The following code shows an example for `cend()`.,cend} + + @sa see @ref end() -- returns an iterator to the end + @sa see @ref begin() -- returns an iterator to the beginning + @sa see @ref cbegin() -- returns a const iterator to the beginning + + @since version 1.0.0 + */ + const_iterator cend() const noexcept + { + const_iterator result(this); + result.set_end(); + return result; + } + + /*! + @brief returns an iterator to the reverse-beginning + + Returns an iterator to the reverse-beginning; that is, the last element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `reverse_iterator(end())`. + + @liveexample{The following code shows an example for `rbegin()`.,rbegin} + + @sa see @ref crbegin() -- returns a const reverse iterator to the beginning + @sa see @ref rend() -- returns a reverse iterator to the end + @sa see @ref crend() -- returns a const reverse iterator to the end + + @since version 1.0.0 + */ + reverse_iterator rbegin() noexcept + { + return reverse_iterator(end()); + } + + /*! + @copydoc basic_json::crbegin() + */ + const_reverse_iterator rbegin() const noexcept + { + return crbegin(); + } + + /*! + @brief returns an iterator to the reverse-end + + Returns an iterator to the reverse-end; that is, one before the first + element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `reverse_iterator(begin())`. + + @liveexample{The following code shows an example for `rend()`.,rend} + + @sa see @ref crend() -- returns a const reverse iterator to the end + @sa see @ref rbegin() -- returns a reverse iterator to the beginning + @sa see @ref crbegin() -- returns a const reverse iterator to the beginning + + @since version 1.0.0 + */ + reverse_iterator rend() noexcept + { + return reverse_iterator(begin()); + } + + /*! + @copydoc basic_json::crend() + */ + const_reverse_iterator rend() const noexcept + { + return crend(); + } + + /*! + @brief returns a const reverse iterator to the last element + + Returns a const iterator to the reverse-beginning; that is, the last + element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).rbegin()`. + + @liveexample{The following code shows an example for `crbegin()`.,crbegin} + + @sa see @ref rbegin() -- returns a reverse iterator to the beginning + @sa see @ref rend() -- returns a reverse iterator to the end + @sa see @ref crend() -- returns a const reverse iterator to the end + + @since version 1.0.0 + */ + const_reverse_iterator crbegin() const noexcept + { + return const_reverse_iterator(cend()); + } + + /*! + @brief returns a const reverse iterator to one before the first + + Returns a const reverse iterator to the reverse-end; that is, one before + the first element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).rend()`. + + @liveexample{The following code shows an example for `crend()`.,crend} + + @sa see @ref rend() -- returns a reverse iterator to the end + @sa see @ref rbegin() -- returns a reverse iterator to the beginning + @sa see @ref crbegin() -- returns a const reverse iterator to the beginning + + @since version 1.0.0 + */ + const_reverse_iterator crend() const noexcept + { + return const_reverse_iterator(cbegin()); + } + + public: + /*! + @brief wrapper to access iterator member functions in range-based for + + This function allows to access @ref iterator::key() and @ref + iterator::value() during range-based for loops. In these loops, a + reference to the JSON values is returned, so there is no access to the + underlying iterator. + + For loop without iterator_wrapper: + + @code{cpp} + for (auto it = j_object.begin(); it != j_object.end(); ++it) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + Range-based for loop without iterator proxy: + + @code{cpp} + for (auto it : j_object) + { + // "it" is of type json::reference and has no key() member + std::cout << "value: " << it << '\n'; + } + @endcode + + Range-based for loop with iterator proxy: + + @code{cpp} + for (auto it : json::iterator_wrapper(j_object)) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + @note When iterating over an array, `key()` will return the index of the + element as string (see example). + + @param[in] ref reference to a JSON value + @return iteration proxy object wrapping @a ref with an interface to use in + range-based for loops + + @liveexample{The following code shows how the wrapper is used,iterator_wrapper} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @note The name of this function is not yet final and may change in the + future. + + @deprecated This stream operator is deprecated and will be removed in + future 4.0.0 of the library. Please use @ref items() instead; + that is, replace `json::iterator_wrapper(j)` with `j.items()`. + */ + JSON_HEDLEY_DEPRECATED_FOR(3.1.0, items()) + static iteration_proxy iterator_wrapper(reference ref) noexcept + { + return ref.items(); + } + + /*! + @copydoc iterator_wrapper(reference) + */ + JSON_HEDLEY_DEPRECATED_FOR(3.1.0, items()) + static iteration_proxy iterator_wrapper(const_reference ref) noexcept + { + return ref.items(); + } + + /*! + @brief helper to access iterator member functions in range-based for + + This function allows to access @ref iterator::key() and @ref + iterator::value() during range-based for loops. In these loops, a + reference to the JSON values is returned, so there is no access to the + underlying iterator. + + For loop without `items()` function: + + @code{cpp} + for (auto it = j_object.begin(); it != j_object.end(); ++it) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + Range-based for loop without `items()` function: + + @code{cpp} + for (auto it : j_object) + { + // "it" is of type json::reference and has no key() member + std::cout << "value: " << it << '\n'; + } + @endcode + + Range-based for loop with `items()` function: + + @code{cpp} + for (auto& el : j_object.items()) + { + std::cout << "key: " << el.key() << ", value:" << el.value() << '\n'; + } + @endcode + + The `items()` function also allows to use + [structured bindings](https://en.cppreference.com/w/cpp/language/structured_binding) + (C++17): + + @code{cpp} + for (auto& [key, val] : j_object.items()) + { + std::cout << "key: " << key << ", value:" << val << '\n'; + } + @endcode + + @note When iterating over an array, `key()` will return the index of the + element as string (see example). For primitive types (e.g., numbers), + `key()` returns an empty string. + + @warning Using `items()` on temporary objects is dangerous. Make sure the + object's lifetime exeeds the iteration. See + for more + information. + + @return iteration proxy object wrapping @a ref with an interface to use in + range-based for loops + + @liveexample{The following code shows how the function is used.,items} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 3.1.0, structured bindings support since 3.5.0. + */ + iteration_proxy items() noexcept + { + return iteration_proxy(*this); + } + + /*! + @copydoc items() + */ + iteration_proxy items() const noexcept + { + return iteration_proxy(*this); + } + + /// @} + + + ////////////// + // capacity // + ////////////// + + /// @name capacity + /// @{ + + /*! + @brief checks whether the container is empty. + + Checks if a JSON value has no elements (i.e. whether its @ref size is `0`). + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `true` + boolean | `false` + string | `false` + number | `false` + binary | `false` + object | result of function `object_t::empty()` + array | result of function `array_t::empty()` + + @liveexample{The following code uses `empty()` to check if a JSON + object contains any elements.,empty} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their `empty()` functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @note This function does not return whether a string stored as JSON value + is empty - it returns whether the JSON container itself is empty which is + false in the case of a string. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `begin() == end()`. + + @sa see @ref size() -- returns the number of elements + + @since version 1.0.0 + */ + bool empty() const noexcept + { + switch (m_type) + { + case value_t::null: + { + // null values are empty + return true; + } + + case value_t::array: + { + // delegate call to array_t::empty() + return m_value.array->empty(); + } + + case value_t::object: + { + // delegate call to object_t::empty() + return m_value.object->empty(); + } + + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + // all other types are nonempty + return false; + } + } + } + + /*! + @brief returns the number of elements + + Returns the number of elements in a JSON value. + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `0` + boolean | `1` + string | `1` + number | `1` + binary | `1` + object | result of function object_t::size() + array | result of function array_t::size() + + @liveexample{The following code calls `size()` on the different value + types.,size} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their size() functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @note This function does not return the length of a string stored as JSON + value - it returns the number of elements in the JSON value which is 1 in + the case of a string. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `std::distance(begin(), end())`. + + @sa see @ref empty() -- checks whether the container is empty + @sa see @ref max_size() -- returns the maximal number of elements + + @since version 1.0.0 + */ + size_type size() const noexcept + { + switch (m_type) + { + case value_t::null: + { + // null values are empty + return 0; + } + + case value_t::array: + { + // delegate call to array_t::size() + return m_value.array->size(); + } + + case value_t::object: + { + // delegate call to object_t::size() + return m_value.object->size(); + } + + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + // all other types have size 1 + return 1; + } + } + } + + /*! + @brief returns the maximum possible number of elements + + Returns the maximum number of elements a JSON value is able to hold due to + system or library implementation limitations, i.e. `std::distance(begin(), + end())` for the JSON value. + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `0` (same as `size()`) + boolean | `1` (same as `size()`) + string | `1` (same as `size()`) + number | `1` (same as `size()`) + binary | `1` (same as `size()`) + object | result of function `object_t::max_size()` + array | result of function `array_t::max_size()` + + @liveexample{The following code calls `max_size()` on the different value + types. Note the output is implementation specific.,max_size} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their `max_size()` functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of returning `b.size()` where `b` is the largest + possible JSON value. + + @sa see @ref size() -- returns the number of elements + + @since version 1.0.0 + */ + size_type max_size() const noexcept + { + switch (m_type) + { + case value_t::array: + { + // delegate call to array_t::max_size() + return m_value.array->max_size(); + } + + case value_t::object: + { + // delegate call to object_t::max_size() + return m_value.object->max_size(); + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + // all other types have max_size() == size() + return size(); + } + } + } + + /// @} + + + /////////////// + // modifiers // + /////////////// + + /// @name modifiers + /// @{ + + /*! + @brief clears the contents + + Clears the content of a JSON value and resets it to the default value as + if @ref basic_json(value_t) would have been called with the current value + type from @ref type(): + + Value type | initial value + ----------- | ------------- + null | `null` + boolean | `false` + string | `""` + number | `0` + binary | An empty byte vector + object | `{}` + array | `[]` + + @post Has the same effect as calling + @code {.cpp} + *this = basic_json(type()); + @endcode + + @liveexample{The example below shows the effect of `clear()` to different + JSON types.,clear} + + @complexity Linear in the size of the JSON value. + + @iterators All iterators, pointers and references related to this container + are invalidated. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @sa see @ref basic_json(value_t) -- constructor that creates an object with the + same value than calling `clear()` + + @since version 1.0.0 + */ + void clear() noexcept + { + switch (m_type) + { + case value_t::number_integer: + { + m_value.number_integer = 0; + break; + } + + case value_t::number_unsigned: + { + m_value.number_unsigned = 0; + break; + } + + case value_t::number_float: + { + m_value.number_float = 0.0; + break; + } + + case value_t::boolean: + { + m_value.boolean = false; + break; + } + + case value_t::string: + { + m_value.string->clear(); + break; + } + + case value_t::binary: + { + m_value.binary->clear(); + break; + } + + case value_t::array: + { + m_value.array->clear(); + break; + } + + case value_t::object: + { + m_value.object->clear(); + break; + } + + case value_t::null: + case value_t::discarded: + default: + break; + } + } + + /*! + @brief add an object to an array + + Appends the given element @a val to the end of the JSON value. If the + function is called on a JSON null value, an empty array is created before + appending @a val. + + @param[in] val the value to add to the JSON array + + @throw type_error.308 when called on a type other than JSON array or + null; example: `"cannot use push_back() with number"` + + @complexity Amortized constant. + + @liveexample{The example shows how `push_back()` and `+=` can be used to + add elements to a JSON array. Note how the `null` value was silently + converted to a JSON array.,push_back} + + @since version 1.0.0 + */ + void push_back(basic_json&& val) + { + // push_back only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()), *this)); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array (move semantics) + const auto old_capacity = m_value.array->capacity(); + m_value.array->push_back(std::move(val)); + set_parent(m_value.array->back(), old_capacity); + // if val is moved from, basic_json move constructor marks it null so we do not call the destructor + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + reference operator+=(basic_json&& val) + { + push_back(std::move(val)); + return *this; + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + void push_back(const basic_json& val) + { + // push_back only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()), *this)); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array + const auto old_capacity = m_value.array->capacity(); + m_value.array->push_back(val); + set_parent(m_value.array->back(), old_capacity); + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + reference operator+=(const basic_json& val) + { + push_back(val); + return *this; + } + + /*! + @brief add an object to an object + + Inserts the given element @a val to the JSON object. If the function is + called on a JSON null value, an empty object is created before inserting + @a val. + + @param[in] val the value to add to the JSON object + + @throw type_error.308 when called on a type other than JSON object or + null; example: `"cannot use push_back() with number"` + + @complexity Logarithmic in the size of the container, O(log(`size()`)). + + @liveexample{The example shows how `push_back()` and `+=` can be used to + add elements to a JSON object. Note how the `null` value was silently + converted to a JSON object.,push_back__object_t__value} + + @since version 1.0.0 + */ + void push_back(const typename object_t::value_type& val) + { + // push_back only works for null objects or objects + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_object()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()), *this)); + } + + // transform null object into an object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // add element to object + auto res = m_value.object->insert(val); + set_parent(res.first->second); + } + + /*! + @brief add an object to an object + @copydoc push_back(const typename object_t::value_type&) + */ + reference operator+=(const typename object_t::value_type& val) + { + push_back(val); + return *this; + } + + /*! + @brief add an object to an object + + This function allows to use `push_back` with an initializer list. In case + + 1. the current value is an object, + 2. the initializer list @a init contains only two elements, and + 3. the first element of @a init is a string, + + @a init is converted into an object element and added using + @ref push_back(const typename object_t::value_type&). Otherwise, @a init + is converted to a JSON value and added using @ref push_back(basic_json&&). + + @param[in] init an initializer list + + @complexity Linear in the size of the initializer list @a init. + + @note This function is required to resolve an ambiguous overload error, + because pairs like `{"key", "value"}` can be both interpreted as + `object_t::value_type` or `std::initializer_list`, see + https://github.com/nlohmann/json/issues/235 for more information. + + @liveexample{The example shows how initializer lists are treated as + objects when possible.,push_back__initializer_list} + */ + void push_back(initializer_list_t init) + { + if (is_object() && init.size() == 2 && (*init.begin())->is_string()) + { + basic_json&& key = init.begin()->moved_or_copied(); + push_back(typename object_t::value_type( + std::move(key.get_ref()), (init.begin() + 1)->moved_or_copied())); + } + else + { + push_back(basic_json(init)); + } + } + + /*! + @brief add an object to an object + @copydoc push_back(initializer_list_t) + */ + reference operator+=(initializer_list_t init) + { + push_back(init); + return *this; + } + + /*! + @brief add an object to an array + + Creates a JSON value from the passed parameters @a args to the end of the + JSON value. If the function is called on a JSON null value, an empty array + is created before appending the value created from @a args. + + @param[in] args arguments to forward to a constructor of @ref basic_json + @tparam Args compatible types to create a @ref basic_json object + + @return reference to the inserted element + + @throw type_error.311 when called on a type other than JSON array or + null; example: `"cannot use emplace_back() with number"` + + @complexity Amortized constant. + + @liveexample{The example shows how `push_back()` can be used to add + elements to a JSON array. Note how the `null` value was silently converted + to a JSON array.,emplace_back} + + @since version 2.0.8, returns reference since 3.7.0 + */ + template + reference emplace_back(Args&& ... args) + { + // emplace_back only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array()))) + { + JSON_THROW(type_error::create(311, "cannot use emplace_back() with " + std::string(type_name()), *this)); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array (perfect forwarding) + const auto old_capacity = m_value.array->capacity(); + m_value.array->emplace_back(std::forward(args)...); + return set_parent(m_value.array->back(), old_capacity); + } + + /*! + @brief add an object to an object if key does not exist + + Inserts a new element into a JSON object constructed in-place with the + given @a args if there is no element with the key in the container. If the + function is called on a JSON null value, an empty object is created before + appending the value created from @a args. + + @param[in] args arguments to forward to a constructor of @ref basic_json + @tparam Args compatible types to create a @ref basic_json object + + @return a pair consisting of an iterator to the inserted element, or the + already-existing element if no insertion happened, and a bool + denoting whether the insertion took place. + + @throw type_error.311 when called on a type other than JSON object or + null; example: `"cannot use emplace() with number"` + + @complexity Logarithmic in the size of the container, O(log(`size()`)). + + @liveexample{The example shows how `emplace()` can be used to add elements + to a JSON object. Note how the `null` value was silently converted to a + JSON object. Further note how no value is added if there was already one + value stored with the same key.,emplace} + + @since version 2.0.8 + */ + template + std::pair emplace(Args&& ... args) + { + // emplace only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_object()))) + { + JSON_THROW(type_error::create(311, "cannot use emplace() with " + std::string(type_name()), *this)); + } + + // transform null object into an object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // add element to array (perfect forwarding) + auto res = m_value.object->emplace(std::forward(args)...); + set_parent(res.first->second); + + // create result iterator and set iterator to the result of emplace + auto it = begin(); + it.m_it.object_iterator = res.first; + + // return pair of iterator and boolean + return {it, res.second}; + } + + /// Helper for insertion of an iterator + /// @note: This uses std::distance to support GCC 4.8, + /// see https://github.com/nlohmann/json/pull/1257 + template + iterator insert_iterator(const_iterator pos, Args&& ... args) + { + iterator result(this); + JSON_ASSERT(m_value.array != nullptr); + + auto insert_pos = std::distance(m_value.array->begin(), pos.m_it.array_iterator); + m_value.array->insert(pos.m_it.array_iterator, std::forward(args)...); + result.m_it.array_iterator = m_value.array->begin() + insert_pos; + + // This could have been written as: + // result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); + // but the return value of insert is missing in GCC 4.8, so it is written this way instead. + + set_parents(); + return result; + } + + /*! + @brief inserts element + + Inserts element @a val before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] val element to insert + @return iterator pointing to the inserted @a val. + + @throw type_error.309 if called on JSON values other than arrays; + example: `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @complexity Constant plus linear in the distance between @a pos and end of + the container. + + @liveexample{The example shows how `insert()` is used.,insert} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, const basic_json& val) + { + // insert only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value", *this)); + } + + // insert to array and return iterator + return insert_iterator(pos, val); + } + + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()), *this)); + } + + /*! + @brief inserts element + @copydoc insert(const_iterator, const basic_json&) + */ + iterator insert(const_iterator pos, basic_json&& val) + { + return insert(pos, val); + } + + /*! + @brief inserts elements + + Inserts @a cnt copies of @a val before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] cnt number of copies of @a val to insert + @param[in] val element to insert + @return iterator pointing to the first element inserted, or @a pos if + `cnt==0` + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @complexity Linear in @a cnt plus linear in the distance between @a pos + and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__count} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + { + // insert only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value", *this)); + } + + // insert to array and return iterator + return insert_iterator(pos, cnt, val); + } + + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()), *this)); + } + + /*! + @brief inserts elements + + Inserts elements from range `[first, last)` before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + @throw invalid_iterator.211 if @a first or @a last are iterators into + container for which insert is called; example: `"passed iterators may not + belong to container"` + + @return iterator pointing to the first element inserted, or @a pos if + `first==last` + + @complexity Linear in `std::distance(first, last)` plus linear in the + distance between @a pos and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__range} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, const_iterator first, const_iterator last) + { + // insert only works for arrays + if (JSON_HEDLEY_UNLIKELY(!is_array())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()), *this)); + } + + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value", *this)); + } + + // check if range iterators belong to the same JSON object + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit", *this)); + } + + if (JSON_HEDLEY_UNLIKELY(first.m_object == this)) + { + JSON_THROW(invalid_iterator::create(211, "passed iterators may not belong to container", *this)); + } + + // insert to array and return iterator + return insert_iterator(pos, first.m_it.array_iterator, last.m_it.array_iterator); + } + + /*! + @brief inserts elements + + Inserts elements from initializer list @a ilist before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] ilist initializer list to insert the values from + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @return iterator pointing to the first element inserted, or @a pos if + `ilist` is empty + + @complexity Linear in `ilist.size()` plus linear in the distance between + @a pos and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__ilist} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, initializer_list_t ilist) + { + // insert only works for arrays + if (JSON_HEDLEY_UNLIKELY(!is_array())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()), *this)); + } + + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value", *this)); + } + + // insert to array and return iterator + return insert_iterator(pos, ilist.begin(), ilist.end()); + } + + /*! + @brief inserts elements + + Inserts elements from range `[first, last)`. + + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.309 if called on JSON values other than objects; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if iterator @a first or @a last does does not + point to an object; example: `"iterators first and last must point to + objects"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + + @complexity Logarithmic: `O(N*log(size() + N))`, where `N` is the number + of elements to insert. + + @liveexample{The example shows how `insert()` is used.,insert__range_object} + + @since version 3.0.0 + */ + void insert(const_iterator first, const_iterator last) + { + // insert only works for objects + if (JSON_HEDLEY_UNLIKELY(!is_object())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()), *this)); + } + + // check if range iterators belong to the same JSON object + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit", *this)); + } + + // passed iterators must belong to objects + if (JSON_HEDLEY_UNLIKELY(!first.m_object->is_object())) + { + JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects", *this)); + } + + m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + } + + /*! + @brief updates a JSON object from another object, overwriting existing keys + + Inserts all values from JSON object @a j and overwrites existing keys. + + @param[in] j JSON object to read values from + + @throw type_error.312 if called on JSON values other than objects; example: + `"cannot use update() with string"` + + @complexity O(N*log(size() + N)), where N is the number of elements to + insert. + + @liveexample{The example shows how `update()` is used.,update} + + @sa https://docs.python.org/3.6/library/stdtypes.html#dict.update + + @since version 3.0.0 + */ + void update(const_reference j) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create(); + assert_invariant(); + } + + if (JSON_HEDLEY_UNLIKELY(!is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(type_name()), *this)); + } + if (JSON_HEDLEY_UNLIKELY(!j.is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(j.type_name()), *this)); + } + + for (auto it = j.cbegin(); it != j.cend(); ++it) + { + m_value.object->operator[](it.key()) = it.value(); +#if JSON_DIAGNOSTICS + m_value.object->operator[](it.key()).m_parent = this; +#endif + } + } + + /*! + @brief updates a JSON object from another object, overwriting existing keys + + Inserts all values from from range `[first, last)` and overwrites existing + keys. + + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.312 if called on JSON values other than objects; example: + `"cannot use update() with string"` + @throw invalid_iterator.202 if iterator @a first or @a last does does not + point to an object; example: `"iterators first and last must point to + objects"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + + @complexity O(N*log(size() + N)), where N is the number of elements to + insert. + + @liveexample{The example shows how `update()` is used__range.,update} + + @sa https://docs.python.org/3.6/library/stdtypes.html#dict.update + + @since version 3.0.0 + */ + void update(const_iterator first, const_iterator last) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create(); + assert_invariant(); + } + + if (JSON_HEDLEY_UNLIKELY(!is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(type_name()), *this)); + } + + // check if range iterators belong to the same JSON object + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit", *this)); + } + + // passed iterators must belong to objects + if (JSON_HEDLEY_UNLIKELY(!first.m_object->is_object() + || !last.m_object->is_object())) + { + JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects", *this)); + } + + for (auto it = first; it != last; ++it) + { + m_value.object->operator[](it.key()) = it.value(); +#if JSON_DIAGNOSTICS + m_value.object->operator[](it.key()).m_parent = this; +#endif + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of the JSON value with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other JSON value to exchange the contents with + + @complexity Constant. + + @liveexample{The example below shows how JSON values can be swapped with + `swap()`.,swap__reference} + + @since version 1.0.0 + */ + void swap(reference other) noexcept ( + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value&& + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value + ) + { + std::swap(m_type, other.m_type); + std::swap(m_value, other.m_value); + + set_parents(); + other.set_parents(); + assert_invariant(); + } + + /*! + @brief exchanges the values + + Exchanges the contents of the JSON value from @a left with those of @a right. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. implemented as a friend function callable via ADL. + + @param[in,out] left JSON value to exchange the contents with + @param[in,out] right JSON value to exchange the contents with + + @complexity Constant. + + @liveexample{The example below shows how JSON values can be swapped with + `swap()`.,swap__reference} + + @since version 1.0.0 + */ + friend void swap(reference left, reference right) noexcept ( + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value&& + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value + ) + { + left.swap(right); + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON array with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other array to exchange the contents with + + @throw type_error.310 when JSON value is not an array; example: `"cannot + use swap() with string"` + + @complexity Constant. + + @liveexample{The example below shows how arrays can be swapped with + `swap()`.,swap__array_t} + + @since version 1.0.0 + */ + void swap(array_t& other) // NOLINT(bugprone-exception-escape) + { + // swap only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + std::swap(*(m_value.array), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON object with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other object to exchange the contents with + + @throw type_error.310 when JSON value is not an object; example: + `"cannot use swap() with string"` + + @complexity Constant. + + @liveexample{The example below shows how objects can be swapped with + `swap()`.,swap__object_t} + + @since version 1.0.0 + */ + void swap(object_t& other) // NOLINT(bugprone-exception-escape) + { + // swap only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + std::swap(*(m_value.object), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON string with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other string to exchange the contents with + + @throw type_error.310 when JSON value is not a string; example: `"cannot + use swap() with boolean"` + + @complexity Constant. + + @liveexample{The example below shows how strings can be swapped with + `swap()`.,swap__string_t} + + @since version 1.0.0 + */ + void swap(string_t& other) // NOLINT(bugprone-exception-escape) + { + // swap only works for strings + if (JSON_HEDLEY_LIKELY(is_string())) + { + std::swap(*(m_value.string), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()), *this)); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON string with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other binary to exchange the contents with + + @throw type_error.310 when JSON value is not a string; example: `"cannot + use swap() with boolean"` + + @complexity Constant. + + @liveexample{The example below shows how strings can be swapped with + `swap()`.,swap__binary_t} + + @since version 3.8.0 + */ + void swap(binary_t& other) // NOLINT(bugprone-exception-escape) + { + // swap only works for strings + if (JSON_HEDLEY_LIKELY(is_binary())) + { + std::swap(*(m_value.binary), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()), *this)); + } + } + + /// @copydoc swap(binary_t&) + void swap(typename binary_t::container_type& other) // NOLINT(bugprone-exception-escape) + { + // swap only works for strings + if (JSON_HEDLEY_LIKELY(is_binary())) + { + std::swap(*(m_value.binary), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()), *this)); + } + } + + /// @} + + public: + ////////////////////////////////////////// + // lexicographical comparison operators // + ////////////////////////////////////////// + + /// @name lexicographical comparison operators + /// @{ + + /*! + @brief comparison: equal + + Compares two JSON values for equality according to the following rules: + - Two JSON values are equal if (1) they are from the same type and (2) + their stored values are the same according to their respective + `operator==`. + - Integer and floating-point numbers are automatically converted before + comparison. Note that two NaN values are always treated as unequal. + - Two JSON null values are equal. + + @note Floating-point inside JSON values numbers are compared with + `json::number_float_t::operator==` which is `double::operator==` by + default. To compare floating-point while respecting an epsilon, an alternative + [comparison function](https://github.com/mariokonrad/marnav/blob/master/include/marnav/math/floatingpoint.hpp#L34-#L39) + could be used, for instance + @code {.cpp} + template::value, T>::type> + inline bool is_same(T a, T b, T epsilon = std::numeric_limits::epsilon()) noexcept + { + return std::abs(a - b) <= epsilon; + } + @endcode + Or you can self-defined operator equal function like this: + @code {.cpp} + bool my_equal(const_reference lhs, const_reference rhs) { + const auto lhs_type lhs.type(); + const auto rhs_type rhs.type(); + if (lhs_type == rhs_type) { + switch(lhs_type) + // self_defined case + case value_t::number_float: + return std::abs(lhs - rhs) <= std::numeric_limits::epsilon(); + // other cases remain the same with the original + ... + } + ... + } + @endcode + + @note NaN values never compare equal to themselves or to other NaN values. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether the values @a lhs and @a rhs are equal + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @complexity Linear. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__equal} + + @since version 1.0.0 + */ + friend bool operator==(const_reference lhs, const_reference rhs) noexcept + { +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfloat-equal" +#endif + const auto lhs_type = lhs.type(); + const auto rhs_type = rhs.type(); + + if (lhs_type == rhs_type) + { + switch (lhs_type) + { + case value_t::array: + return *lhs.m_value.array == *rhs.m_value.array; + + case value_t::object: + return *lhs.m_value.object == *rhs.m_value.object; + + case value_t::null: + return true; + + case value_t::string: + return *lhs.m_value.string == *rhs.m_value.string; + + case value_t::boolean: + return lhs.m_value.boolean == rhs.m_value.boolean; + + case value_t::number_integer: + return lhs.m_value.number_integer == rhs.m_value.number_integer; + + case value_t::number_unsigned: + return lhs.m_value.number_unsigned == rhs.m_value.number_unsigned; + + case value_t::number_float: + return lhs.m_value.number_float == rhs.m_value.number_float; + + case value_t::binary: + return *lhs.m_value.binary == *rhs.m_value.binary; + + case value_t::discarded: + default: + return false; + } + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_integer) == rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_integer) + { + return lhs.m_value.number_float == static_cast(rhs.m_value.number_integer); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_unsigned) == rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_float == static_cast(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_integer) + { + return static_cast(lhs.m_value.number_unsigned) == rhs.m_value.number_integer; + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_integer == static_cast(rhs.m_value.number_unsigned); + } + + return false; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + } + + /*! + @brief comparison: equal + @copydoc operator==(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator==(const_reference lhs, ScalarType rhs) noexcept + { + return lhs == basic_json(rhs); + } + + /*! + @brief comparison: equal + @copydoc operator==(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator==(ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) == rhs; + } + + /*! + @brief comparison: not equal + + Compares two JSON values for inequality by calculating `not (lhs == rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether the values @a lhs and @a rhs are not equal + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__notequal} + + @since version 1.0.0 + */ + friend bool operator!=(const_reference lhs, const_reference rhs) noexcept + { + return !(lhs == rhs); + } + + /*! + @brief comparison: not equal + @copydoc operator!=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator!=(const_reference lhs, ScalarType rhs) noexcept + { + return lhs != basic_json(rhs); + } + + /*! + @brief comparison: not equal + @copydoc operator!=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator!=(ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) != rhs; + } + + /*! + @brief comparison: less than + + Compares whether one JSON value @a lhs is less than another JSON value @a + rhs according to the following rules: + - If @a lhs and @a rhs have the same type, the values are compared using + the default `<` operator. + - Integer and floating-point numbers are automatically converted before + comparison + - In case @a lhs and @a rhs have different types, the values are ignored + and the order of the types is considered, see + @ref operator<(const value_t, const value_t). + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is less than @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__less} + + @since version 1.0.0 + */ + friend bool operator<(const_reference lhs, const_reference rhs) noexcept + { + const auto lhs_type = lhs.type(); + const auto rhs_type = rhs.type(); + + if (lhs_type == rhs_type) + { + switch (lhs_type) + { + case value_t::array: + // note parentheses are necessary, see + // https://github.com/nlohmann/json/issues/1530 + return (*lhs.m_value.array) < (*rhs.m_value.array); + + case value_t::object: + return (*lhs.m_value.object) < (*rhs.m_value.object); + + case value_t::null: + return false; + + case value_t::string: + return (*lhs.m_value.string) < (*rhs.m_value.string); + + case value_t::boolean: + return (lhs.m_value.boolean) < (rhs.m_value.boolean); + + case value_t::number_integer: + return (lhs.m_value.number_integer) < (rhs.m_value.number_integer); + + case value_t::number_unsigned: + return (lhs.m_value.number_unsigned) < (rhs.m_value.number_unsigned); + + case value_t::number_float: + return (lhs.m_value.number_float) < (rhs.m_value.number_float); + + case value_t::binary: + return (*lhs.m_value.binary) < (*rhs.m_value.binary); + + case value_t::discarded: + default: + return false; + } + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_integer) < rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_integer) + { + return lhs.m_value.number_float < static_cast(rhs.m_value.number_integer); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_unsigned) < rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_float < static_cast(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_integer < static_cast(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_integer) + { + return static_cast(lhs.m_value.number_unsigned) < rhs.m_value.number_integer; + } + + // We only reach this line if we cannot compare values. In that case, + // we compare types. Note we have to call the operator explicitly, + // because MSVC has problems otherwise. + return operator<(lhs_type, rhs_type); + } + + /*! + @brief comparison: less than + @copydoc operator<(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<(const_reference lhs, ScalarType rhs) noexcept + { + return lhs < basic_json(rhs); + } + + /*! + @brief comparison: less than + @copydoc operator<(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<(ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) < rhs; + } + + /*! + @brief comparison: less than or equal + + Compares whether one JSON value @a lhs is less than or equal to another + JSON value by calculating `not (rhs < lhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is less than or equal to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__greater} + + @since version 1.0.0 + */ + friend bool operator<=(const_reference lhs, const_reference rhs) noexcept + { + return !(rhs < lhs); + } + + /*! + @brief comparison: less than or equal + @copydoc operator<=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<=(const_reference lhs, ScalarType rhs) noexcept + { + return lhs <= basic_json(rhs); + } + + /*! + @brief comparison: less than or equal + @copydoc operator<=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<=(ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) <= rhs; + } + + /*! + @brief comparison: greater than + + Compares whether one JSON value @a lhs is greater than another + JSON value by calculating `not (lhs <= rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is greater than to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__lessequal} + + @since version 1.0.0 + */ + friend bool operator>(const_reference lhs, const_reference rhs) noexcept + { + return !(lhs <= rhs); + } + + /*! + @brief comparison: greater than + @copydoc operator>(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>(const_reference lhs, ScalarType rhs) noexcept + { + return lhs > basic_json(rhs); + } + + /*! + @brief comparison: greater than + @copydoc operator>(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>(ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) > rhs; + } + + /*! + @brief comparison: greater than or equal + + Compares whether one JSON value @a lhs is greater than or equal to another + JSON value by calculating `not (lhs < rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is greater than or equal to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__greaterequal} + + @since version 1.0.0 + */ + friend bool operator>=(const_reference lhs, const_reference rhs) noexcept + { + return !(lhs < rhs); + } + + /*! + @brief comparison: greater than or equal + @copydoc operator>=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>=(const_reference lhs, ScalarType rhs) noexcept + { + return lhs >= basic_json(rhs); + } + + /*! + @brief comparison: greater than or equal + @copydoc operator>=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>=(ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) >= rhs; + } + + /// @} + + /////////////////// + // serialization // + /////////////////// + + /// @name serialization + /// @{ +#ifndef JSON_NO_IO + /*! + @brief serialize to stream + + Serialize the given JSON value @a j to the output stream @a o. The JSON + value will be serialized using the @ref dump member function. + + - The indentation of the output can be controlled with the member variable + `width` of the output stream @a o. For instance, using the manipulator + `std::setw(4)` on @a o sets the indentation level to `4` and the + serialization result is the same as calling `dump(4)`. + + - The indentation character can be controlled with the member variable + `fill` of the output stream @a o. For instance, the manipulator + `std::setfill('\\t')` sets indentation to use a tab character rather than + the default space character. + + @param[in,out] o stream to serialize to + @param[in] j JSON value to serialize + + @return the stream @a o + + @throw type_error.316 if a string stored inside the JSON value is not + UTF-8 encoded + + @complexity Linear. + + @liveexample{The example below shows the serialization with different + parameters to `width` to adjust the indentation level.,operator_serialize} + + @since version 1.0.0; indentation character added in version 3.0.0 + */ + friend std::ostream& operator<<(std::ostream& o, const basic_json& j) + { + // read width member and use it as indentation parameter if nonzero + const bool pretty_print = o.width() > 0; + const auto indentation = pretty_print ? o.width() : 0; + + // reset width to 0 for subsequent calls to this stream + o.width(0); + + // do the actual serialization + serializer s(detail::output_adapter(o), o.fill()); + s.dump(j, pretty_print, false, static_cast(indentation)); + return o; + } + + /*! + @brief serialize to stream + @deprecated This stream operator is deprecated and will be removed in + future 4.0.0 of the library. Please use + @ref operator<<(std::ostream&, const basic_json&) + instead; that is, replace calls like `j >> o;` with `o << j;`. + @since version 1.0.0; deprecated since version 3.0.0 + */ + JSON_HEDLEY_DEPRECATED_FOR(3.0.0, operator<<(std::ostream&, const basic_json&)) + friend std::ostream& operator>>(const basic_json& j, std::ostream& o) + { + return o << j; + } +#endif // JSON_NO_IO + /// @} + + + ///////////////////// + // deserialization // + ///////////////////// + + /// @name deserialization + /// @{ + + /*! + @brief deserialize from a compatible input + + @tparam InputType A compatible input, for instance + - an std::istream object + - a FILE pointer + - a C-style array of characters + - a pointer to a null-terminated string of single byte characters + - an object obj for which begin(obj) and end(obj) produces a valid pair of + iterators. + + @param[in] i input to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb or reading from the input @a i has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an array.,parse__array__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function with + and without callback function.,parse__string__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function with + and without callback function.,parse__istream__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function reading + from a contiguous container.,parse__contiguouscontainer__parser_callback_t} + + @since version 2.0.3 (contiguous containers); version 3.9.0 allowed to + ignore comments. + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json parse(InputType&& i, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false) + { + basic_json result; + parser(detail::input_adapter(std::forward(i)), cb, allow_exceptions, ignore_comments).parse(true, result); + return result; + } + + /*! + @brief deserialize from a pair of character iterators + + The value_type of the iterator must be a integral type with size of 1, 2 or + 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32. + + @param[in] first iterator to start of character range + @param[in] last iterator to end of character range + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json parse(IteratorType first, + IteratorType last, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false) + { + basic_json result; + parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result); + return result; + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len)) + static basic_json parse(detail::span_input_adapter&& i, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false) + { + basic_json result; + parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result); + return result; + } + + /*! + @brief check if the input is valid JSON + + Unlike the @ref parse(InputType&&, const parser_callback_t,const bool) + function, this function neither throws an exception in case of invalid JSON + input (i.e., a parse error) nor creates diagnostic information. + + @tparam InputType A compatible input, for instance + - an std::istream object + - a FILE pointer + - a C-style array of characters + - a pointer to a null-terminated string of single byte characters + - an object obj for which begin(obj) and end(obj) produces a valid pair of + iterators. + + @param[in] i input to read from + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default) + + @return Whether the input read from @a i is valid JSON. + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `accept()` function reading + from a string.,accept__string} + */ + template + static bool accept(InputType&& i, + const bool ignore_comments = false) + { + return parser(detail::input_adapter(std::forward(i)), nullptr, false, ignore_comments).accept(true); + } + + template + static bool accept(IteratorType first, IteratorType last, + const bool ignore_comments = false) + { + return parser(detail::input_adapter(std::move(first), std::move(last)), nullptr, false, ignore_comments).accept(true); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, accept(ptr, ptr + len)) + static bool accept(detail::span_input_adapter&& i, + const bool ignore_comments = false) + { + return parser(i.get(), nullptr, false, ignore_comments).accept(true); + } + + /*! + @brief generate SAX events + + The SAX event lister must follow the interface of @ref json_sax. + + This function reads from a compatible input. Examples are: + - an std::istream object + - a FILE pointer + - a C-style array of characters + - a pointer to a null-terminated string of single byte characters + - an object obj for which begin(obj) and end(obj) produces a valid pair of + iterators. + + @param[in] i input to read from + @param[in,out] sax SAX event listener + @param[in] format the format to parse (JSON, CBOR, MessagePack, or UBJSON) + @param[in] strict whether the input has to be consumed completely + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default); only applies to the JSON file format. + + @return return value of the last processed SAX event + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the SAX consumer @a sax has + a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `sax_parse()` function + reading from string and processing the events with a user-defined SAX + event consumer.,sax_parse} + + @since version 3.2.0 + */ + template + JSON_HEDLEY_NON_NULL(2) + static bool sax_parse(InputType&& i, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true, + const bool ignore_comments = false) + { + auto ia = detail::input_adapter(std::forward(i)); + return format == input_format_t::json + ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict) + : detail::binary_reader(std::move(ia)).sax_parse(format, sax, strict); + } + + template + JSON_HEDLEY_NON_NULL(3) + static bool sax_parse(IteratorType first, IteratorType last, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true, + const bool ignore_comments = false) + { + auto ia = detail::input_adapter(std::move(first), std::move(last)); + return format == input_format_t::json + ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict) + : detail::binary_reader(std::move(ia)).sax_parse(format, sax, strict); + } + + template + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, sax_parse(ptr, ptr + len, ...)) + JSON_HEDLEY_NON_NULL(2) + static bool sax_parse(detail::span_input_adapter&& i, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true, + const bool ignore_comments = false) + { + auto ia = i.get(); + return format == input_format_t::json + // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) + ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict) + // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) + : detail::binary_reader(std::move(ia)).sax_parse(format, sax, strict); + } +#ifndef JSON_NO_IO + /*! + @brief deserialize from stream + @deprecated This stream operator is deprecated and will be removed in + version 4.0.0 of the library. Please use + @ref operator>>(std::istream&, basic_json&) + instead; that is, replace calls like `j << i;` with `i >> j;`. + @since version 1.0.0; deprecated since version 3.0.0 + */ + JSON_HEDLEY_DEPRECATED_FOR(3.0.0, operator>>(std::istream&, basic_json&)) + friend std::istream& operator<<(basic_json& j, std::istream& i) + { + return operator>>(i, j); + } + + /*! + @brief deserialize from stream + + Deserializes an input stream to a JSON value. + + @param[in,out] i input stream to read a serialized JSON value from + @param[in,out] j JSON value to write the deserialized input to + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below shows how a JSON value is constructed by + reading a serialization from a stream.,operator_deserialize} + + @sa parse(std::istream&, const parser_callback_t) for a variant with a + parser callback function to filter values while parsing + + @since version 1.0.0 + */ + friend std::istream& operator>>(std::istream& i, basic_json& j) + { + parser(detail::input_adapter(i)).parse(false, j); + return i; + } +#endif // JSON_NO_IO + /// @} + + /////////////////////////// + // convenience functions // + /////////////////////////// + + /*! + @brief return the type as string + + Returns the type name as string to be used in error messages - usually to + indicate that a function was called on a wrong JSON type. + + @return a string representation of a the @a m_type member: + Value type | return value + ----------- | ------------- + null | `"null"` + boolean | `"boolean"` + string | `"string"` + number | `"number"` (for all number types) + object | `"object"` + array | `"array"` + binary | `"binary"` + discarded | `"discarded"` + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @complexity Constant. + + @liveexample{The following code exemplifies `type_name()` for all JSON + types.,type_name} + + @sa see @ref type() -- return the type of the JSON value + @sa see @ref operator value_t() -- return the type of the JSON value (implicit) + + @since version 1.0.0, public since 2.1.0, `const char*` and `noexcept` + since 3.0.0 + */ + JSON_HEDLEY_RETURNS_NON_NULL + const char* type_name() const noexcept + { + { + switch (m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::binary: + return "binary"; + case value_t::discarded: + return "discarded"; + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + default: + return "number"; + } + } + } + + + JSON_PRIVATE_UNLESS_TESTED: + ////////////////////// + // member variables // + ////////////////////// + + /// the type of the current element + value_t m_type = value_t::null; + + /// the value of the current element + json_value m_value = {}; + +#if JSON_DIAGNOSTICS + /// a pointer to a parent value (for debugging purposes) + basic_json* m_parent = nullptr; +#endif + + ////////////////////////////////////////// + // binary serialization/deserialization // + ////////////////////////////////////////// + + /// @name binary serialization/deserialization support + /// @{ + + public: + /*! + @brief create a CBOR serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the CBOR (Concise + Binary Object Representation) serialization format. CBOR is a binary + serialization format which aims to be more compact than JSON itself, yet + more efficient to parse. + + The library uses the following mapping from JSON values types to + CBOR types according to the CBOR specification (RFC 7049): + + JSON value type | value/range | CBOR type | first byte + --------------- | ------------------------------------------ | ---------------------------------- | --------------- + null | `null` | Null | 0xF6 + boolean | `true` | True | 0xF5 + boolean | `false` | False | 0xF4 + number_integer | -9223372036854775808..-2147483649 | Negative integer (8 bytes follow) | 0x3B + number_integer | -2147483648..-32769 | Negative integer (4 bytes follow) | 0x3A + number_integer | -32768..-129 | Negative integer (2 bytes follow) | 0x39 + number_integer | -128..-25 | Negative integer (1 byte follow) | 0x38 + number_integer | -24..-1 | Negative integer | 0x20..0x37 + number_integer | 0..23 | Integer | 0x00..0x17 + number_integer | 24..255 | Unsigned integer (1 byte follow) | 0x18 + number_integer | 256..65535 | Unsigned integer (2 bytes follow) | 0x19 + number_integer | 65536..4294967295 | Unsigned integer (4 bytes follow) | 0x1A + number_integer | 4294967296..18446744073709551615 | Unsigned integer (8 bytes follow) | 0x1B + number_unsigned | 0..23 | Integer | 0x00..0x17 + number_unsigned | 24..255 | Unsigned integer (1 byte follow) | 0x18 + number_unsigned | 256..65535 | Unsigned integer (2 bytes follow) | 0x19 + number_unsigned | 65536..4294967295 | Unsigned integer (4 bytes follow) | 0x1A + number_unsigned | 4294967296..18446744073709551615 | Unsigned integer (8 bytes follow) | 0x1B + number_float | *any value representable by a float* | Single-Precision Float | 0xFA + number_float | *any value NOT representable by a float* | Double-Precision Float | 0xFB + string | *length*: 0..23 | UTF-8 string | 0x60..0x77 + string | *length*: 23..255 | UTF-8 string (1 byte follow) | 0x78 + string | *length*: 256..65535 | UTF-8 string (2 bytes follow) | 0x79 + string | *length*: 65536..4294967295 | UTF-8 string (4 bytes follow) | 0x7A + string | *length*: 4294967296..18446744073709551615 | UTF-8 string (8 bytes follow) | 0x7B + array | *size*: 0..23 | array | 0x80..0x97 + array | *size*: 23..255 | array (1 byte follow) | 0x98 + array | *size*: 256..65535 | array (2 bytes follow) | 0x99 + array | *size*: 65536..4294967295 | array (4 bytes follow) | 0x9A + array | *size*: 4294967296..18446744073709551615 | array (8 bytes follow) | 0x9B + object | *size*: 0..23 | map | 0xA0..0xB7 + object | *size*: 23..255 | map (1 byte follow) | 0xB8 + object | *size*: 256..65535 | map (2 bytes follow) | 0xB9 + object | *size*: 65536..4294967295 | map (4 bytes follow) | 0xBA + object | *size*: 4294967296..18446744073709551615 | map (8 bytes follow) | 0xBB + binary | *size*: 0..23 | byte string | 0x40..0x57 + binary | *size*: 23..255 | byte string (1 byte follow) | 0x58 + binary | *size*: 256..65535 | byte string (2 bytes follow) | 0x59 + binary | *size*: 65536..4294967295 | byte string (4 bytes follow) | 0x5A + binary | *size*: 4294967296..18446744073709551615 | byte string (8 bytes follow) | 0x5B + + Binary values with subtype are mapped to tagged values (0xD8..0xDB) + depending on the subtype, followed by a byte string, see "binary" cells + in the table above. + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a CBOR value. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @note The following CBOR types are not used in the conversion: + - UTF-8 strings terminated by "break" (0x7F) + - arrays terminated by "break" (0x9F) + - maps terminated by "break" (0xBF) + - byte strings terminated by "break" (0x5F) + - date/time (0xC0..0xC1) + - bignum (0xC2..0xC3) + - decimal fraction (0xC4) + - bigfloat (0xC5) + - expected conversions (0xD5..0xD7) + - simple values (0xE0..0xF3, 0xF8) + - undefined (0xF7) + - half-precision floats (0xF9) + - break (0xFF) + + @param[in] j JSON value to serialize + @return CBOR serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in CBOR format.,to_cbor} + + @sa http://cbor.io + @sa see @ref from_cbor(InputType&&, const bool, const bool, const cbor_tag_handler_t) for the + analogous deserialization + @sa see @ref to_msgpack(const basic_json&) for the related MessagePack format + @sa see @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9; compact representation of floating-point numbers + since version 3.8.0 + */ + static std::vector to_cbor(const basic_json& j) + { + std::vector result; + to_cbor(j, result); + return result; + } + + static void to_cbor(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_cbor(j); + } + + static void to_cbor(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_cbor(j); + } + + /*! + @brief create a MessagePack serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the MessagePack + serialization format. MessagePack is a binary serialization format which + aims to be more compact than JSON itself, yet more efficient to parse. + + The library uses the following mapping from JSON values types to + MessagePack types according to the MessagePack specification: + + JSON value type | value/range | MessagePack type | first byte + --------------- | --------------------------------- | ---------------- | ---------- + null | `null` | nil | 0xC0 + boolean | `true` | true | 0xC3 + boolean | `false` | false | 0xC2 + number_integer | -9223372036854775808..-2147483649 | int64 | 0xD3 + number_integer | -2147483648..-32769 | int32 | 0xD2 + number_integer | -32768..-129 | int16 | 0xD1 + number_integer | -128..-33 | int8 | 0xD0 + number_integer | -32..-1 | negative fixint | 0xE0..0xFF + number_integer | 0..127 | positive fixint | 0x00..0x7F + number_integer | 128..255 | uint 8 | 0xCC + number_integer | 256..65535 | uint 16 | 0xCD + number_integer | 65536..4294967295 | uint 32 | 0xCE + number_integer | 4294967296..18446744073709551615 | uint 64 | 0xCF + number_unsigned | 0..127 | positive fixint | 0x00..0x7F + number_unsigned | 128..255 | uint 8 | 0xCC + number_unsigned | 256..65535 | uint 16 | 0xCD + number_unsigned | 65536..4294967295 | uint 32 | 0xCE + number_unsigned | 4294967296..18446744073709551615 | uint 64 | 0xCF + number_float | *any value representable by a float* | float 32 | 0xCA + number_float | *any value NOT representable by a float* | float 64 | 0xCB + string | *length*: 0..31 | fixstr | 0xA0..0xBF + string | *length*: 32..255 | str 8 | 0xD9 + string | *length*: 256..65535 | str 16 | 0xDA + string | *length*: 65536..4294967295 | str 32 | 0xDB + array | *size*: 0..15 | fixarray | 0x90..0x9F + array | *size*: 16..65535 | array 16 | 0xDC + array | *size*: 65536..4294967295 | array 32 | 0xDD + object | *size*: 0..15 | fix map | 0x80..0x8F + object | *size*: 16..65535 | map 16 | 0xDE + object | *size*: 65536..4294967295 | map 32 | 0xDF + binary | *size*: 0..255 | bin 8 | 0xC4 + binary | *size*: 256..65535 | bin 16 | 0xC5 + binary | *size*: 65536..4294967295 | bin 32 | 0xC6 + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a MessagePack value. + + @note The following values can **not** be converted to a MessagePack value: + - strings with more than 4294967295 bytes + - byte strings with more than 4294967295 bytes + - arrays with more than 4294967295 elements + - objects with more than 4294967295 elements + + @note Any MessagePack output created @ref to_msgpack can be successfully + parsed by @ref from_msgpack. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @param[in] j JSON value to serialize + @return MessagePack serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in MessagePack format.,to_msgpack} + + @sa http://msgpack.org + @sa see @ref from_msgpack for the analogous deserialization + @sa see @ref to_cbor(const basic_json& for the related CBOR format + @sa see @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9 + */ + static std::vector to_msgpack(const basic_json& j) + { + std::vector result; + to_msgpack(j, result); + return result; + } + + static void to_msgpack(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_msgpack(j); + } + + static void to_msgpack(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_msgpack(j); + } + + /*! + @brief create a UBJSON serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the UBJSON + (Universal Binary JSON) serialization format. UBJSON aims to be more compact + than JSON itself, yet more efficient to parse. + + The library uses the following mapping from JSON values types to + UBJSON types according to the UBJSON specification: + + JSON value type | value/range | UBJSON type | marker + --------------- | --------------------------------- | ----------- | ------ + null | `null` | null | `Z` + boolean | `true` | true | `T` + boolean | `false` | false | `F` + number_integer | -9223372036854775808..-2147483649 | int64 | `L` + number_integer | -2147483648..-32769 | int32 | `l` + number_integer | -32768..-129 | int16 | `I` + number_integer | -128..127 | int8 | `i` + number_integer | 128..255 | uint8 | `U` + number_integer | 256..32767 | int16 | `I` + number_integer | 32768..2147483647 | int32 | `l` + number_integer | 2147483648..9223372036854775807 | int64 | `L` + number_unsigned | 0..127 | int8 | `i` + number_unsigned | 128..255 | uint8 | `U` + number_unsigned | 256..32767 | int16 | `I` + number_unsigned | 32768..2147483647 | int32 | `l` + number_unsigned | 2147483648..9223372036854775807 | int64 | `L` + number_unsigned | 2147483649..18446744073709551615 | high-precision | `H` + number_float | *any value* | float64 | `D` + string | *with shortest length indicator* | string | `S` + array | *see notes on optimized format* | array | `[` + object | *see notes on optimized format* | map | `{` + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a UBJSON value. + + @note The following values can **not** be converted to a UBJSON value: + - strings with more than 9223372036854775807 bytes (theoretical) + + @note The following markers are not used in the conversion: + - `Z`: no-op values are not created. + - `C`: single-byte strings are serialized with `S` markers. + + @note Any UBJSON output created @ref to_ubjson can be successfully parsed + by @ref from_ubjson. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @note The optimized formats for containers are supported: Parameter + @a use_size adds size information to the beginning of a container and + removes the closing marker. Parameter @a use_type further checks + whether all elements of a container have the same type and adds the + type marker to the beginning of the container. The @a use_type + parameter must only be used together with @a use_size = true. Note + that @a use_size = true alone may result in larger representations - + the benefit of this parameter is that the receiving side is + immediately informed on the number of elements of the container. + + @note If the JSON data contains the binary type, the value stored is a list + of integers, as suggested by the UBJSON documentation. In particular, + this means that serialization and the deserialization of a JSON + containing binary values into UBJSON and back will result in a + different JSON object. + + @param[in] j JSON value to serialize + @param[in] use_size whether to add size annotations to container types + @param[in] use_type whether to add type annotations to container types + (must be combined with @a use_size = true) + @return UBJSON serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in UBJSON format.,to_ubjson} + + @sa http://ubjson.org + @sa see @ref from_ubjson(InputType&&, const bool, const bool) for the + analogous deserialization + @sa see @ref to_cbor(const basic_json& for the related CBOR format + @sa see @ref to_msgpack(const basic_json&) for the related MessagePack format + + @since version 3.1.0 + */ + static std::vector to_ubjson(const basic_json& j, + const bool use_size = false, + const bool use_type = false) + { + std::vector result; + to_ubjson(j, result, use_size, use_type); + return result; + } + + static void to_ubjson(const basic_json& j, detail::output_adapter o, + const bool use_size = false, const bool use_type = false) + { + binary_writer(o).write_ubjson(j, use_size, use_type); + } + + static void to_ubjson(const basic_json& j, detail::output_adapter o, + const bool use_size = false, const bool use_type = false) + { + binary_writer(o).write_ubjson(j, use_size, use_type); + } + + + /*! + @brief Serializes the given JSON object `j` to BSON and returns a vector + containing the corresponding BSON-representation. + + BSON (Binary JSON) is a binary format in which zero or more ordered key/value pairs are + stored as a single entity (a so-called document). + + The library uses the following mapping from JSON values types to BSON types: + + JSON value type | value/range | BSON type | marker + --------------- | --------------------------------- | ----------- | ------ + null | `null` | null | 0x0A + boolean | `true`, `false` | boolean | 0x08 + number_integer | -9223372036854775808..-2147483649 | int64 | 0x12 + number_integer | -2147483648..2147483647 | int32 | 0x10 + number_integer | 2147483648..9223372036854775807 | int64 | 0x12 + number_unsigned | 0..2147483647 | int32 | 0x10 + number_unsigned | 2147483648..9223372036854775807 | int64 | 0x12 + number_unsigned | 9223372036854775808..18446744073709551615| -- | -- + number_float | *any value* | double | 0x01 + string | *any value* | string | 0x02 + array | *any value* | document | 0x04 + object | *any value* | document | 0x03 + binary | *any value* | binary | 0x05 + + @warning The mapping is **incomplete**, since only JSON-objects (and things + contained therein) can be serialized to BSON. + Also, integers larger than 9223372036854775807 cannot be serialized to BSON, + and the keys may not contain U+0000, since they are serialized a + zero-terminated c-strings. + + @throw out_of_range.407 if `j.is_number_unsigned() && j.get() > 9223372036854775807` + @throw out_of_range.409 if a key in `j` contains a NULL (U+0000) + @throw type_error.317 if `!j.is_object()` + + @pre The input `j` is required to be an object: `j.is_object() == true`. + + @note Any BSON output created via @ref to_bson can be successfully parsed + by @ref from_bson. + + @param[in] j JSON value to serialize + @return BSON serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in BSON format.,to_bson} + + @sa http://bsonspec.org/spec.html + @sa see @ref from_bson(detail::input_adapter&&, const bool strict) for the + analogous deserialization + @sa see @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + @sa see @ref to_cbor(const basic_json&) for the related CBOR format + @sa see @ref to_msgpack(const basic_json&) for the related MessagePack format + */ + static std::vector to_bson(const basic_json& j) + { + std::vector result; + to_bson(j, result); + return result; + } + + /*! + @brief Serializes the given JSON object `j` to BSON and forwards the + corresponding BSON-representation to the given output_adapter `o`. + @param j The JSON object to convert to BSON. + @param o The output adapter that receives the binary BSON representation. + @pre The input `j` shall be an object: `j.is_object() == true` + @sa see @ref to_bson(const basic_json&) + */ + static void to_bson(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_bson(j); + } + + /*! + @copydoc to_bson(const basic_json&, detail::output_adapter) + */ + static void to_bson(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_bson(j); + } + + + /*! + @brief create a JSON value from an input in CBOR format + + Deserializes a given input @a i to a JSON value using the CBOR (Concise + Binary Object Representation) serialization format. + + The library maps CBOR types to JSON value types as follows: + + CBOR type | JSON value type | first byte + ---------------------- | --------------- | ---------- + Integer | number_unsigned | 0x00..0x17 + Unsigned integer | number_unsigned | 0x18 + Unsigned integer | number_unsigned | 0x19 + Unsigned integer | number_unsigned | 0x1A + Unsigned integer | number_unsigned | 0x1B + Negative integer | number_integer | 0x20..0x37 + Negative integer | number_integer | 0x38 + Negative integer | number_integer | 0x39 + Negative integer | number_integer | 0x3A + Negative integer | number_integer | 0x3B + Byte string | binary | 0x40..0x57 + Byte string | binary | 0x58 + Byte string | binary | 0x59 + Byte string | binary | 0x5A + Byte string | binary | 0x5B + UTF-8 string | string | 0x60..0x77 + UTF-8 string | string | 0x78 + UTF-8 string | string | 0x79 + UTF-8 string | string | 0x7A + UTF-8 string | string | 0x7B + UTF-8 string | string | 0x7F + array | array | 0x80..0x97 + array | array | 0x98 + array | array | 0x99 + array | array | 0x9A + array | array | 0x9B + array | array | 0x9F + map | object | 0xA0..0xB7 + map | object | 0xB8 + map | object | 0xB9 + map | object | 0xBA + map | object | 0xBB + map | object | 0xBF + False | `false` | 0xF4 + True | `true` | 0xF5 + Null | `null` | 0xF6 + Half-Precision Float | number_float | 0xF9 + Single-Precision Float | number_float | 0xFA + Double-Precision Float | number_float | 0xFB + + @warning The mapping is **incomplete** in the sense that not all CBOR + types can be converted to a JSON value. The following CBOR types + are not supported and will yield parse errors (parse_error.112): + - date/time (0xC0..0xC1) + - bignum (0xC2..0xC3) + - decimal fraction (0xC4) + - bigfloat (0xC5) + - expected conversions (0xD5..0xD7) + - simple values (0xE0..0xF3, 0xF8) + - undefined (0xF7) + + @warning CBOR allows map keys of any type, whereas JSON only allows + strings as keys in object values. Therefore, CBOR maps with keys + other than UTF-8 strings are rejected (parse_error.113). + + @note Any CBOR output created @ref to_cbor can be successfully parsed by + @ref from_cbor. + + @param[in] i an input in CBOR format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + @param[in] tag_handler how to treat CBOR tags (optional, error by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if unsupported features from CBOR were + used in the given input @a v or if the input is not valid CBOR + @throw parse_error.113 if a string was expected as map key, but not found + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in CBOR + format to a JSON value.,from_cbor} + + @sa http://cbor.io + @sa see @ref to_cbor(const basic_json&) for the analogous serialization + @sa see @ref from_msgpack(InputType&&, const bool, const bool) for the + related MessagePack format + @sa see @ref from_ubjson(InputType&&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9; parameter @a start_index since 2.1.1; changed to + consume input adapters, removed start_index parameter, and added + @a strict parameter since 3.0.0; added @a allow_exceptions parameter + since 3.2.0; added @a tag_handler parameter since 3.9.0. + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_cbor(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_cbor(InputType&&, const bool, const bool, const cbor_tag_handler_t) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_cbor(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + return res ? result : basic_json(value_t::discarded); + } + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len)) + static basic_json from_cbor(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + return from_cbor(ptr, ptr + len, strict, allow_exceptions, tag_handler); + } + + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len)) + static basic_json from_cbor(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @brief create a JSON value from an input in MessagePack format + + Deserializes a given input @a i to a JSON value using the MessagePack + serialization format. + + The library maps MessagePack types to JSON value types as follows: + + MessagePack type | JSON value type | first byte + ---------------- | --------------- | ---------- + positive fixint | number_unsigned | 0x00..0x7F + fixmap | object | 0x80..0x8F + fixarray | array | 0x90..0x9F + fixstr | string | 0xA0..0xBF + nil | `null` | 0xC0 + false | `false` | 0xC2 + true | `true` | 0xC3 + float 32 | number_float | 0xCA + float 64 | number_float | 0xCB + uint 8 | number_unsigned | 0xCC + uint 16 | number_unsigned | 0xCD + uint 32 | number_unsigned | 0xCE + uint 64 | number_unsigned | 0xCF + int 8 | number_integer | 0xD0 + int 16 | number_integer | 0xD1 + int 32 | number_integer | 0xD2 + int 64 | number_integer | 0xD3 + str 8 | string | 0xD9 + str 16 | string | 0xDA + str 32 | string | 0xDB + array 16 | array | 0xDC + array 32 | array | 0xDD + map 16 | object | 0xDE + map 32 | object | 0xDF + bin 8 | binary | 0xC4 + bin 16 | binary | 0xC5 + bin 32 | binary | 0xC6 + ext 8 | binary | 0xC7 + ext 16 | binary | 0xC8 + ext 32 | binary | 0xC9 + fixext 1 | binary | 0xD4 + fixext 2 | binary | 0xD5 + fixext 4 | binary | 0xD6 + fixext 8 | binary | 0xD7 + fixext 16 | binary | 0xD8 + negative fixint | number_integer | 0xE0-0xFF + + @note Any MessagePack output created @ref to_msgpack can be successfully + parsed by @ref from_msgpack. + + @param[in] i an input in MessagePack format convertible to an input + adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if unsupported features from MessagePack were + used in the given input @a i or if the input is not valid MessagePack + @throw parse_error.113 if a string was expected as map key, but not found + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + MessagePack format to a JSON value.,from_msgpack} + + @sa http://msgpack.org + @sa see @ref to_msgpack(const basic_json&) for the analogous serialization + @sa see @ref from_cbor(InputType&&, const bool, const bool, const cbor_tag_handler_t) for the + related CBOR format + @sa see @ref from_ubjson(InputType&&, const bool, const bool) for + the related UBJSON format + @sa see @ref from_bson(InputType&&, const bool, const bool) for + the related BSON format + + @since version 2.0.9; parameter @a start_index since 2.1.1; changed to + consume input adapters, removed start_index parameter, and added + @a strict parameter since 3.0.0; added @a allow_exceptions parameter + since 3.2.0 + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_msgpack(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_msgpack(InputType&&, const bool, const bool) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_msgpack(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_msgpack(ptr, ptr + len)) + static basic_json from_msgpack(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true) + { + return from_msgpack(ptr, ptr + len, strict, allow_exceptions); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_msgpack(ptr, ptr + len)) + static basic_json from_msgpack(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + /*! + @brief create a JSON value from an input in UBJSON format + + Deserializes a given input @a i to a JSON value using the UBJSON (Universal + Binary JSON) serialization format. + + The library maps UBJSON types to JSON value types as follows: + + UBJSON type | JSON value type | marker + ----------- | --------------------------------------- | ------ + no-op | *no value, next value is read* | `N` + null | `null` | `Z` + false | `false` | `F` + true | `true` | `T` + float32 | number_float | `d` + float64 | number_float | `D` + uint8 | number_unsigned | `U` + int8 | number_integer | `i` + int16 | number_integer | `I` + int32 | number_integer | `l` + int64 | number_integer | `L` + high-precision number | number_integer, number_unsigned, or number_float - depends on number string | 'H' + string | string | `S` + char | string | `C` + array | array (optimized values are supported) | `[` + object | object (optimized values are supported) | `{` + + @note The mapping is **complete** in the sense that any UBJSON value can + be converted to a JSON value. + + @param[in] i an input in UBJSON format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if a parse error occurs + @throw parse_error.113 if a string could not be parsed successfully + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + UBJSON format to a JSON value.,from_ubjson} + + @sa http://ubjson.org + @sa see @ref to_ubjson(const basic_json&, const bool, const bool) for the + analogous serialization + @sa see @ref from_cbor(InputType&&, const bool, const bool, const cbor_tag_handler_t) for the + related CBOR format + @sa see @ref from_msgpack(InputType&&, const bool, const bool) for + the related MessagePack format + @sa see @ref from_bson(InputType&&, const bool, const bool) for + the related BSON format + + @since version 3.1.0; added @a allow_exceptions parameter since 3.2.0 + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_ubjson(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_ubjson(InputType&&, const bool, const bool) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_ubjson(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_ubjson(ptr, ptr + len)) + static basic_json from_ubjson(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true) + { + return from_ubjson(ptr, ptr + len, strict, allow_exceptions); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_ubjson(ptr, ptr + len)) + static basic_json from_ubjson(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + /*! + @brief Create a JSON value from an input in BSON format + + Deserializes a given input @a i to a JSON value using the BSON (Binary JSON) + serialization format. + + The library maps BSON record types to JSON value types as follows: + + BSON type | BSON marker byte | JSON value type + --------------- | ---------------- | --------------------------- + double | 0x01 | number_float + string | 0x02 | string + document | 0x03 | object + array | 0x04 | array + binary | 0x05 | binary + undefined | 0x06 | still unsupported + ObjectId | 0x07 | still unsupported + boolean | 0x08 | boolean + UTC Date-Time | 0x09 | still unsupported + null | 0x0A | null + Regular Expr. | 0x0B | still unsupported + DB Pointer | 0x0C | still unsupported + JavaScript Code | 0x0D | still unsupported + Symbol | 0x0E | still unsupported + JavaScript Code | 0x0F | still unsupported + int32 | 0x10 | number_integer + Timestamp | 0x11 | still unsupported + 128-bit decimal float | 0x13 | still unsupported + Max Key | 0x7F | still unsupported + Min Key | 0xFF | still unsupported + + @warning The mapping is **incomplete**. The unsupported mappings + are indicated in the table above. + + @param[in] i an input in BSON format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.114 if an unsupported BSON record type is encountered + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + BSON format to a JSON value.,from_bson} + + @sa http://bsonspec.org/spec.html + @sa see @ref to_bson(const basic_json&) for the analogous serialization + @sa see @ref from_cbor(InputType&&, const bool, const bool, const cbor_tag_handler_t) for the + related CBOR format + @sa see @ref from_msgpack(InputType&&, const bool, const bool) for + the related MessagePack format + @sa see @ref from_ubjson(InputType&&, const bool, const bool) for the + related UBJSON format + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_bson(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_bson(InputType&&, const bool, const bool) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_bson(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_bson(ptr, ptr + len)) + static basic_json from_bson(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true) + { + return from_bson(ptr, ptr + len, strict, allow_exceptions); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_bson(ptr, ptr + len)) + static basic_json from_bson(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + /// @} + + ////////////////////////// + // JSON Pointer support // + ////////////////////////// + + /// @name JSON Pointer functions + /// @{ + + /*! + @brief access specified element via JSON Pointer + + Uses a JSON pointer to retrieve a reference to the respective JSON value. + No bound checking is performed. Similar to @ref operator[](const typename + object_t::key_type&), `null` values are created in arrays and objects if + necessary. + + In particular: + - If the JSON pointer points to an object key that does not exist, it + is created an filled with a `null` value before a reference to it + is returned. + - If the JSON pointer points to an array index that does not exist, it + is created an filled with a `null` value before a reference to it + is returned. All indices between the current maximum and the given + index are also filled with `null`. + - The special value `-` is treated as a synonym for the index past the + end. + + @param[in] ptr a JSON pointer + + @return reference to the element pointed to by @a ptr + + @complexity Constant. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.404 if the JSON pointer can not be resolved + + @liveexample{The behavior is shown in the example.,operatorjson_pointer} + + @since version 2.0.0 + */ + reference operator[](const json_pointer& ptr) + { + return ptr.get_unchecked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Uses a JSON pointer to retrieve a reference to the respective JSON value. + No bound checking is performed. The function does not change the JSON + value; no `null` values are created. In particular, the special value + `-` yields an exception. + + @param[in] ptr JSON pointer to the desired element + + @return const reference to the element pointed to by @a ptr + + @complexity Constant. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + + @liveexample{The behavior is shown in the example.,operatorjson_pointer_const} + + @since version 2.0.0 + */ + const_reference operator[](const json_pointer& ptr) const + { + return ptr.get_unchecked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Returns a reference to the element at with specified JSON pointer @a ptr, + with bounds checking. + + @param[in] ptr JSON pointer to the desired element + + @return reference to the element pointed to by @a ptr + + @throw parse_error.106 if an array index in the passed JSON pointer @a ptr + begins with '0'. See example below. + + @throw parse_error.109 if an array index in the passed JSON pointer @a ptr + is not a number. See example below. + + @throw out_of_range.401 if an array index in the passed JSON pointer @a ptr + is out of range. See example below. + + @throw out_of_range.402 if the array index '-' is used in the passed JSON + pointer @a ptr. As `at` provides checked access (and no elements are + implicitly inserted), the index '-' is always invalid. See example below. + + @throw out_of_range.403 if the JSON pointer describes a key of an object + which cannot be found. See example below. + + @throw out_of_range.404 if the JSON pointer @a ptr can not be resolved. + See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 2.0.0 + + @liveexample{The behavior is shown in the example.,at_json_pointer} + */ + reference at(const json_pointer& ptr) + { + return ptr.get_checked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Returns a const reference to the element at with specified JSON pointer @a + ptr, with bounds checking. + + @param[in] ptr JSON pointer to the desired element + + @return reference to the element pointed to by @a ptr + + @throw parse_error.106 if an array index in the passed JSON pointer @a ptr + begins with '0'. See example below. + + @throw parse_error.109 if an array index in the passed JSON pointer @a ptr + is not a number. See example below. + + @throw out_of_range.401 if an array index in the passed JSON pointer @a ptr + is out of range. See example below. + + @throw out_of_range.402 if the array index '-' is used in the passed JSON + pointer @a ptr. As `at` provides checked access (and no elements are + implicitly inserted), the index '-' is always invalid. See example below. + + @throw out_of_range.403 if the JSON pointer describes a key of an object + which cannot be found. See example below. + + @throw out_of_range.404 if the JSON pointer @a ptr can not be resolved. + See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 2.0.0 + + @liveexample{The behavior is shown in the example.,at_json_pointer_const} + */ + const_reference at(const json_pointer& ptr) const + { + return ptr.get_checked(this); + } + + /*! + @brief return flattened JSON value + + The function creates a JSON object whose keys are JSON pointers (see [RFC + 6901](https://tools.ietf.org/html/rfc6901)) and whose values are all + primitive. The original JSON value can be restored using the @ref + unflatten() function. + + @return an object that maps JSON pointers to primitive values + + @note Empty objects and arrays are flattened to `null` and will not be + reconstructed correctly by the @ref unflatten() function. + + @complexity Linear in the size the JSON value. + + @liveexample{The following code shows how a JSON object is flattened to an + object whose keys consist of JSON pointers.,flatten} + + @sa see @ref unflatten() for the reverse function + + @since version 2.0.0 + */ + basic_json flatten() const + { + basic_json result(value_t::object); + json_pointer::flatten("", *this, result); + return result; + } + + /*! + @brief unflatten a previously flattened JSON value + + The function restores the arbitrary nesting of a JSON value that has been + flattened before using the @ref flatten() function. The JSON value must + meet certain constraints: + 1. The value must be an object. + 2. The keys must be JSON pointers (see + [RFC 6901](https://tools.ietf.org/html/rfc6901)) + 3. The mapped values must be primitive JSON types. + + @return the original JSON from a flattened version + + @note Empty objects and arrays are flattened by @ref flatten() to `null` + values and can not unflattened to their original type. Apart from + this example, for a JSON value `j`, the following is always true: + `j == j.flatten().unflatten()`. + + @complexity Linear in the size the JSON value. + + @throw type_error.314 if value is not an object + @throw type_error.315 if object values are not primitive + + @liveexample{The following code shows how a flattened JSON object is + unflattened into the original nested JSON object.,unflatten} + + @sa see @ref flatten() for the reverse function + + @since version 2.0.0 + */ + basic_json unflatten() const + { + return json_pointer::unflatten(*this); + } + + /// @} + + ////////////////////////// + // JSON Patch functions // + ////////////////////////// + + /// @name JSON Patch functions + /// @{ + + /*! + @brief applies a JSON patch + + [JSON Patch](http://jsonpatch.com) defines a JSON document structure for + expressing a sequence of operations to apply to a JSON) document. With + this function, a JSON Patch is applied to the current JSON value by + executing all operations from the patch. + + @param[in] json_patch JSON patch document + @return patched document + + @note The application of a patch is atomic: Either all operations succeed + and the patched document is returned or an exception is thrown. In + any case, the original value is not changed: the patch is applied + to a copy of the value. + + @throw parse_error.104 if the JSON patch does not consist of an array of + objects + + @throw parse_error.105 if the JSON patch is malformed (e.g., mandatory + attributes are missing); example: `"operation add must have member path"` + + @throw out_of_range.401 if an array index is out of range. + + @throw out_of_range.403 if a JSON pointer inside the patch could not be + resolved successfully in the current JSON value; example: `"key baz not + found"` + + @throw out_of_range.405 if JSON pointer has no parent ("add", "remove", + "move") + + @throw other_error.501 if "test" operation was unsuccessful + + @complexity Linear in the size of the JSON value and the length of the + JSON patch. As usually only a fraction of the JSON value is affected by + the patch, the complexity can usually be neglected. + + @liveexample{The following code shows how a JSON patch is applied to a + value.,patch} + + @sa see @ref diff -- create a JSON patch by comparing two JSON values + + @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) + @sa [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) + + @since version 2.0.0 + */ + basic_json patch(const basic_json& json_patch) const + { + // make a working copy to apply the patch to + basic_json result = *this; + + // the valid JSON Patch operations + enum class patch_operations {add, remove, replace, move, copy, test, invalid}; + + const auto get_op = [](const std::string & op) + { + if (op == "add") + { + return patch_operations::add; + } + if (op == "remove") + { + return patch_operations::remove; + } + if (op == "replace") + { + return patch_operations::replace; + } + if (op == "move") + { + return patch_operations::move; + } + if (op == "copy") + { + return patch_operations::copy; + } + if (op == "test") + { + return patch_operations::test; + } + + return patch_operations::invalid; + }; + + // wrapper for "add" operation; add value at ptr + const auto operation_add = [&result](json_pointer & ptr, basic_json val) + { + // adding to the root of the target document means replacing it + if (ptr.empty()) + { + result = val; + return; + } + + // make sure the top element of the pointer exists + json_pointer top_pointer = ptr.top(); + if (top_pointer != ptr) + { + result.at(top_pointer); + } + + // get reference to parent of JSON pointer ptr + const auto last_path = ptr.back(); + ptr.pop_back(); + basic_json& parent = result[ptr]; + + switch (parent.m_type) + { + case value_t::null: + case value_t::object: + { + // use operator[] to add value + parent[last_path] = val; + break; + } + + case value_t::array: + { + if (last_path == "-") + { + // special case: append to back + parent.push_back(val); + } + else + { + const auto idx = json_pointer::array_index(last_path); + if (JSON_HEDLEY_UNLIKELY(idx > parent.size())) + { + // avoid undefined behavior + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range", parent)); + } + + // default case: insert add offset + parent.insert(parent.begin() + static_cast(idx), val); + } + break; + } + + // if there exists a parent it cannot be primitive + case value_t::string: // LCOV_EXCL_LINE + case value_t::boolean: // LCOV_EXCL_LINE + case value_t::number_integer: // LCOV_EXCL_LINE + case value_t::number_unsigned: // LCOV_EXCL_LINE + case value_t::number_float: // LCOV_EXCL_LINE + case value_t::binary: // LCOV_EXCL_LINE + case value_t::discarded: // LCOV_EXCL_LINE + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE + } + }; + + // wrapper for "remove" operation; remove value at ptr + const auto operation_remove = [this, &result](json_pointer & ptr) + { + // get reference to parent of JSON pointer ptr + const auto last_path = ptr.back(); + ptr.pop_back(); + basic_json& parent = result.at(ptr); + + // remove child + if (parent.is_object()) + { + // perform range check + auto it = parent.find(last_path); + if (JSON_HEDLEY_LIKELY(it != parent.end())) + { + parent.erase(it); + } + else + { + JSON_THROW(out_of_range::create(403, "key '" + last_path + "' not found", *this)); + } + } + else if (parent.is_array()) + { + // note erase performs range check + parent.erase(json_pointer::array_index(last_path)); + } + }; + + // type check: top level value must be an array + if (JSON_HEDLEY_UNLIKELY(!json_patch.is_array())) + { + JSON_THROW(parse_error::create(104, 0, "JSON patch must be an array of objects", json_patch)); + } + + // iterate and apply the operations + for (const auto& val : json_patch) + { + // wrapper to get a value for an operation + const auto get_value = [&val](const std::string & op, + const std::string & member, + bool string_type) -> basic_json & + { + // find value + auto it = val.m_value.object->find(member); + + // context-sensitive error message + const auto error_msg = (op == "op") ? "operation" : "operation '" + op + "'"; + + // check if desired value is present + if (JSON_HEDLEY_UNLIKELY(it == val.m_value.object->end())) + { + // NOLINTNEXTLINE(performance-inefficient-string-concatenation) + JSON_THROW(parse_error::create(105, 0, error_msg + " must have member '" + member + "'", val)); + } + + // check if result is of type string + if (JSON_HEDLEY_UNLIKELY(string_type && !it->second.is_string())) + { + // NOLINTNEXTLINE(performance-inefficient-string-concatenation) + JSON_THROW(parse_error::create(105, 0, error_msg + " must have string member '" + member + "'", val)); + } + + // no error: return value + return it->second; + }; + + // type check: every element of the array must be an object + if (JSON_HEDLEY_UNLIKELY(!val.is_object())) + { + JSON_THROW(parse_error::create(104, 0, "JSON patch must be an array of objects", val)); + } + + // collect mandatory members + const auto op = get_value("op", "op", true).template get(); + const auto path = get_value(op, "path", true).template get(); + json_pointer ptr(path); + + switch (get_op(op)) + { + case patch_operations::add: + { + operation_add(ptr, get_value("add", "value", false)); + break; + } + + case patch_operations::remove: + { + operation_remove(ptr); + break; + } + + case patch_operations::replace: + { + // the "path" location must exist - use at() + result.at(ptr) = get_value("replace", "value", false); + break; + } + + case patch_operations::move: + { + const auto from_path = get_value("move", "from", true).template get(); + json_pointer from_ptr(from_path); + + // the "from" location must exist - use at() + basic_json v = result.at(from_ptr); + + // The move operation is functionally identical to a + // "remove" operation on the "from" location, followed + // immediately by an "add" operation at the target + // location with the value that was just removed. + operation_remove(from_ptr); + operation_add(ptr, v); + break; + } + + case patch_operations::copy: + { + const auto from_path = get_value("copy", "from", true).template get(); + const json_pointer from_ptr(from_path); + + // the "from" location must exist - use at() + basic_json v = result.at(from_ptr); + + // The copy is functionally identical to an "add" + // operation at the target location using the value + // specified in the "from" member. + operation_add(ptr, v); + break; + } + + case patch_operations::test: + { + bool success = false; + JSON_TRY + { + // check if "value" matches the one at "path" + // the "path" location must exist - use at() + success = (result.at(ptr) == get_value("test", "value", false)); + } + JSON_INTERNAL_CATCH (out_of_range&) + { + // ignore out of range errors: success remains false + } + + // throw an exception if test fails + if (JSON_HEDLEY_UNLIKELY(!success)) + { + JSON_THROW(other_error::create(501, "unsuccessful: " + val.dump(), val)); + } + + break; + } + + case patch_operations::invalid: + default: + { + // op must be "add", "remove", "replace", "move", "copy", or + // "test" + JSON_THROW(parse_error::create(105, 0, "operation value '" + op + "' is invalid", val)); + } + } + } + + return result; + } + + /*! + @brief creates a diff as a JSON patch + + Creates a [JSON Patch](http://jsonpatch.com) so that value @a source can + be changed into the value @a target by calling @ref patch function. + + @invariant For two JSON values @a source and @a target, the following code + yields always `true`: + @code {.cpp} + source.patch(diff(source, target)) == target; + @endcode + + @note Currently, only `remove`, `add`, and `replace` operations are + generated. + + @param[in] source JSON value to compare from + @param[in] target JSON value to compare against + @param[in] path helper value to create JSON pointers + + @return a JSON patch to convert the @a source to @a target + + @complexity Linear in the lengths of @a source and @a target. + + @liveexample{The following code shows how a JSON patch is created as a + diff for two JSON values.,diff} + + @sa see @ref patch -- apply a JSON patch + @sa see @ref merge_patch -- apply a JSON Merge Patch + + @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) + + @since version 2.0.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json diff(const basic_json& source, const basic_json& target, + const std::string& path = "") + { + // the patch + basic_json result(value_t::array); + + // if the values are the same, return empty patch + if (source == target) + { + return result; + } + + if (source.type() != target.type()) + { + // different types: replace value + result.push_back( + { + {"op", "replace"}, {"path", path}, {"value", target} + }); + return result; + } + + switch (source.type()) + { + case value_t::array: + { + // first pass: traverse common elements + std::size_t i = 0; + while (i < source.size() && i < target.size()) + { + // recursive call to compare array values at index i + auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i)); + result.insert(result.end(), temp_diff.begin(), temp_diff.end()); + ++i; + } + + // i now reached the end of at least one array + // in a second pass, traverse the remaining elements + + // remove my remaining elements + const auto end_index = static_cast(result.size()); + while (i < source.size()) + { + // add operations in reverse order to avoid invalid + // indices + result.insert(result.begin() + end_index, object( + { + {"op", "remove"}, + {"path", path + "/" + std::to_string(i)} + })); + ++i; + } + + // add other remaining elements + while (i < target.size()) + { + result.push_back( + { + {"op", "add"}, + {"path", path + "/-"}, + {"value", target[i]} + }); + ++i; + } + + break; + } + + case value_t::object: + { + // first pass: traverse this object's elements + for (auto it = source.cbegin(); it != source.cend(); ++it) + { + // escape the key name to be used in a JSON patch + const auto path_key = path + "/" + detail::escape(it.key()); + + if (target.find(it.key()) != target.end()) + { + // recursive call to compare object values at key it + auto temp_diff = diff(it.value(), target[it.key()], path_key); + result.insert(result.end(), temp_diff.begin(), temp_diff.end()); + } + else + { + // found a key that is not in o -> remove it + result.push_back(object( + { + {"op", "remove"}, {"path", path_key} + })); + } + } + + // second pass: traverse other object's elements + for (auto it = target.cbegin(); it != target.cend(); ++it) + { + if (source.find(it.key()) == source.end()) + { + // found a key that is not in this -> add it + const auto path_key = path + "/" + detail::escape(it.key()); + result.push_back( + { + {"op", "add"}, {"path", path_key}, + {"value", it.value()} + }); + } + } + + break; + } + + case value_t::null: + case value_t::string: + case value_t::boolean: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + case value_t::binary: + case value_t::discarded: + default: + { + // both primitive type: replace value + result.push_back( + { + {"op", "replace"}, {"path", path}, {"value", target} + }); + break; + } + } + + return result; + } + + /// @} + + //////////////////////////////// + // JSON Merge Patch functions // + //////////////////////////////// + + /// @name JSON Merge Patch functions + /// @{ + + /*! + @brief applies a JSON Merge Patch + + The merge patch format is primarily intended for use with the HTTP PATCH + method as a means of describing a set of modifications to a target + resource's content. This function applies a merge patch to the current + JSON value. + + The function implements the following algorithm from Section 2 of + [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396): + + ``` + define MergePatch(Target, Patch): + if Patch is an Object: + if Target is not an Object: + Target = {} // Ignore the contents and set it to an empty Object + for each Name/Value pair in Patch: + if Value is null: + if Name exists in Target: + remove the Name/Value pair from Target + else: + Target[Name] = MergePatch(Target[Name], Value) + return Target + else: + return Patch + ``` + + Thereby, `Target` is the current object; that is, the patch is applied to + the current value. + + @param[in] apply_patch the patch to apply + + @complexity Linear in the lengths of @a patch. + + @liveexample{The following code shows how a JSON Merge Patch is applied to + a JSON document.,merge_patch} + + @sa see @ref patch -- apply a JSON patch + @sa [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396) + + @since version 3.0.0 + */ + void merge_patch(const basic_json& apply_patch) + { + if (apply_patch.is_object()) + { + if (!is_object()) + { + *this = object(); + } + for (auto it = apply_patch.begin(); it != apply_patch.end(); ++it) + { + if (it.value().is_null()) + { + erase(it.key()); + } + else + { + operator[](it.key()).merge_patch(it.value()); + } + } + } + else + { + *this = apply_patch; + } + } + + /// @} +}; + +/*! +@brief user-defined to_string function for JSON values + +This function implements a user-defined to_string for JSON objects. + +@param[in] j a JSON object +@return a std::string object +*/ + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +std::string to_string(const NLOHMANN_BASIC_JSON_TPL& j) +{ + return j.dump(); +} +} // namespace nlohmann + +/////////////////////// +// nonmember support // +/////////////////////// + +// specialization of std::swap, and std::hash +namespace std +{ + +/// hash value for JSON objects +template<> +struct hash +{ + /*! + @brief return a hash value for a JSON object + + @since version 1.0.0 + */ + std::size_t operator()(const nlohmann::json& j) const + { + return nlohmann::detail::hash(j); + } +}; + +/// specialization for std::less +/// @note: do not remove the space after '<', +/// see https://github.com/nlohmann/json/pull/679 +template<> +struct less<::nlohmann::detail::value_t> +{ + /*! + @brief compare two value_t enum values + @since version 3.0.0 + */ + bool operator()(nlohmann::detail::value_t lhs, + nlohmann::detail::value_t rhs) const noexcept + { + return nlohmann::detail::operator<(lhs, rhs); + } +}; + +// C++20 prohibit function specialization in the std namespace. +#ifndef JSON_HAS_CPP_20 + +/*! +@brief exchanges the values of two JSON objects + +@since version 1.0.0 +*/ +template<> +inline void swap(nlohmann::json& j1, nlohmann::json& j2) noexcept( // NOLINT(readability-inconsistent-declaration-parameter-name) + is_nothrow_move_constructible::value&& // NOLINT(misc-redundant-expression) + is_nothrow_move_assignable::value + ) +{ + j1.swap(j2); +} + +#endif + +} // namespace std + +/*! +@brief user-defined string literal for JSON values + +This operator implements a user-defined string literal for JSON objects. It +can be used by adding `"_json"` to a string literal and returns a JSON object +if no parse error occurred. + +@param[in] s a string representation of a JSON object +@param[in] n the length of string @a s +@return a JSON object + +@since version 1.0.0 +*/ +JSON_HEDLEY_NON_NULL(1) +inline nlohmann::json operator "" _json(const char* s, std::size_t n) +{ + return nlohmann::json::parse(s, s + n); +} + +/*! +@brief user-defined string literal for JSON pointer + +This operator implements a user-defined string literal for JSON Pointers. It +can be used by adding `"_json_pointer"` to a string literal and returns a JSON pointer +object if no parse error occurred. + +@param[in] s a string representation of a JSON Pointer +@param[in] n the length of string @a s +@return a JSON pointer object + +@since version 2.0.0 +*/ +JSON_HEDLEY_NON_NULL(1) +inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t n) +{ + return nlohmann::json::json_pointer(std::string(s, n)); +} + +// #include + + +// restore clang diagnostic settings +#if defined(__clang__) + #pragma clang diagnostic pop +#endif + +// clean up +#undef JSON_ASSERT +#undef JSON_INTERNAL_CATCH +#undef JSON_CATCH +#undef JSON_THROW +#undef JSON_TRY +#undef JSON_PRIVATE_UNLESS_TESTED +#undef JSON_HAS_CPP_11 +#undef JSON_HAS_CPP_14 +#undef JSON_HAS_CPP_17 +#undef JSON_HAS_CPP_20 +#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION +#undef NLOHMANN_BASIC_JSON_TPL +#undef JSON_EXPLICIT +#undef NLOHMANN_CAN_CALL_STD_FUNC_IMPL + +// #include + + +#undef JSON_HEDLEY_ALWAYS_INLINE +#undef JSON_HEDLEY_ARM_VERSION +#undef JSON_HEDLEY_ARM_VERSION_CHECK +#undef JSON_HEDLEY_ARRAY_PARAM +#undef JSON_HEDLEY_ASSUME +#undef JSON_HEDLEY_BEGIN_C_DECLS +#undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#undef JSON_HEDLEY_CLANG_HAS_FEATURE +#undef JSON_HEDLEY_CLANG_HAS_WARNING +#undef JSON_HEDLEY_COMPCERT_VERSION +#undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#undef JSON_HEDLEY_CONCAT +#undef JSON_HEDLEY_CONCAT3 +#undef JSON_HEDLEY_CONCAT3_EX +#undef JSON_HEDLEY_CONCAT_EX +#undef JSON_HEDLEY_CONST +#undef JSON_HEDLEY_CONSTEXPR +#undef JSON_HEDLEY_CONST_CAST +#undef JSON_HEDLEY_CPP_CAST +#undef JSON_HEDLEY_CRAY_VERSION +#undef JSON_HEDLEY_CRAY_VERSION_CHECK +#undef JSON_HEDLEY_C_DECL +#undef JSON_HEDLEY_DEPRECATED +#undef JSON_HEDLEY_DEPRECATED_FOR +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#undef JSON_HEDLEY_DIAGNOSTIC_POP +#undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#undef JSON_HEDLEY_DMC_VERSION +#undef JSON_HEDLEY_DMC_VERSION_CHECK +#undef JSON_HEDLEY_EMPTY_BASES +#undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#undef JSON_HEDLEY_END_C_DECLS +#undef JSON_HEDLEY_FLAGS +#undef JSON_HEDLEY_FLAGS_CAST +#undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#undef JSON_HEDLEY_GCC_HAS_BUILTIN +#undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_GCC_HAS_EXTENSION +#undef JSON_HEDLEY_GCC_HAS_FEATURE +#undef JSON_HEDLEY_GCC_HAS_WARNING +#undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#undef JSON_HEDLEY_GCC_VERSION +#undef JSON_HEDLEY_GCC_VERSION_CHECK +#undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#undef JSON_HEDLEY_GNUC_HAS_FEATURE +#undef JSON_HEDLEY_GNUC_HAS_WARNING +#undef JSON_HEDLEY_GNUC_VERSION +#undef JSON_HEDLEY_GNUC_VERSION_CHECK +#undef JSON_HEDLEY_HAS_ATTRIBUTE +#undef JSON_HEDLEY_HAS_BUILTIN +#undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_HAS_EXTENSION +#undef JSON_HEDLEY_HAS_FEATURE +#undef JSON_HEDLEY_HAS_WARNING +#undef JSON_HEDLEY_IAR_VERSION +#undef JSON_HEDLEY_IAR_VERSION_CHECK +#undef JSON_HEDLEY_IBM_VERSION +#undef JSON_HEDLEY_IBM_VERSION_CHECK +#undef JSON_HEDLEY_IMPORT +#undef JSON_HEDLEY_INLINE +#undef JSON_HEDLEY_INTEL_CL_VERSION +#undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK +#undef JSON_HEDLEY_INTEL_VERSION +#undef JSON_HEDLEY_INTEL_VERSION_CHECK +#undef JSON_HEDLEY_IS_CONSTANT +#undef JSON_HEDLEY_IS_CONSTEXPR_ +#undef JSON_HEDLEY_LIKELY +#undef JSON_HEDLEY_MALLOC +#undef JSON_HEDLEY_MCST_LCC_VERSION +#undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK +#undef JSON_HEDLEY_MESSAGE +#undef JSON_HEDLEY_MSVC_VERSION +#undef JSON_HEDLEY_MSVC_VERSION_CHECK +#undef JSON_HEDLEY_NEVER_INLINE +#undef JSON_HEDLEY_NON_NULL +#undef JSON_HEDLEY_NO_ESCAPE +#undef JSON_HEDLEY_NO_RETURN +#undef JSON_HEDLEY_NO_THROW +#undef JSON_HEDLEY_NULL +#undef JSON_HEDLEY_PELLES_VERSION +#undef JSON_HEDLEY_PELLES_VERSION_CHECK +#undef JSON_HEDLEY_PGI_VERSION +#undef JSON_HEDLEY_PGI_VERSION_CHECK +#undef JSON_HEDLEY_PREDICT +#undef JSON_HEDLEY_PRINTF_FORMAT +#undef JSON_HEDLEY_PRIVATE +#undef JSON_HEDLEY_PUBLIC +#undef JSON_HEDLEY_PURE +#undef JSON_HEDLEY_REINTERPRET_CAST +#undef JSON_HEDLEY_REQUIRE +#undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#undef JSON_HEDLEY_REQUIRE_MSG +#undef JSON_HEDLEY_RESTRICT +#undef JSON_HEDLEY_RETURNS_NON_NULL +#undef JSON_HEDLEY_SENTINEL +#undef JSON_HEDLEY_STATIC_ASSERT +#undef JSON_HEDLEY_STATIC_CAST +#undef JSON_HEDLEY_STRINGIFY +#undef JSON_HEDLEY_STRINGIFY_EX +#undef JSON_HEDLEY_SUNPRO_VERSION +#undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#undef JSON_HEDLEY_TINYC_VERSION +#undef JSON_HEDLEY_TINYC_VERSION_CHECK +#undef JSON_HEDLEY_TI_ARMCL_VERSION +#undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL2000_VERSION +#undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL430_VERSION +#undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL6X_VERSION +#undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL7X_VERSION +#undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#undef JSON_HEDLEY_TI_CLPRU_VERSION +#undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#undef JSON_HEDLEY_TI_VERSION +#undef JSON_HEDLEY_TI_VERSION_CHECK +#undef JSON_HEDLEY_UNAVAILABLE +#undef JSON_HEDLEY_UNLIKELY +#undef JSON_HEDLEY_UNPREDICTABLE +#undef JSON_HEDLEY_UNREACHABLE +#undef JSON_HEDLEY_UNREACHABLE_RETURN +#undef JSON_HEDLEY_VERSION +#undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#undef JSON_HEDLEY_VERSION_DECODE_MINOR +#undef JSON_HEDLEY_VERSION_DECODE_REVISION +#undef JSON_HEDLEY_VERSION_ENCODE +#undef JSON_HEDLEY_WARNING +#undef JSON_HEDLEY_WARN_UNUSED_RESULT +#undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#undef JSON_HEDLEY_FALL_THROUGH + + + +#endif // INCLUDE_NLOHMANN_JSON_HPP_ diff --git a/src/libs/tiny_gltf.h b/src/libs/tiny_gltf.h new file mode 100644 index 0000000..0b4a1d9 --- /dev/null +++ b/src/libs/tiny_gltf.h @@ -0,0 +1,8485 @@ +// +// Header-only tiny glTF 2.0 loader and serializer. +// +// +// The MIT License (MIT) +// +// Copyright (c) 2015 - Present Syoyo Fujita, Aurélien Chatelain and many +// contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Version: - v2.8.10 +// See https://github.com/syoyo/tinygltf/releases for release history. +// +// Tiny glTF loader is using following third party libraries: +// +// - jsonhpp: C++ JSON library. +// - base64: base64 decode/encode library. +// - stb_image: Image loading library. +// +#ifndef TINY_GLTF_H_ +#define TINY_GLTF_H_ + +#include +#include +#include // std::fabs +#include +#include +#include +#include +#include +#include +#include + +// Auto-detect C++14 standard version +#if !defined(TINYGLTF_USE_CPP14) && defined(__cplusplus) && \ + (__cplusplus >= 201402L) +#define TINYGLTF_USE_CPP14 +#endif + +#ifdef __ANDROID__ +#ifdef TINYGLTF_ANDROID_LOAD_FROM_ASSETS +#include +#endif +#endif + +#ifdef __GNUC__ +#if (__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ <= 8)) +#define TINYGLTF_NOEXCEPT +#else +#define TINYGLTF_NOEXCEPT noexcept +#endif +#else +#define TINYGLTF_NOEXCEPT noexcept +#endif + +#define DEFAULT_METHODS(x) \ + ~x() = default; \ + x(const x &) = default; \ + x(x &&) TINYGLTF_NOEXCEPT = default; \ + x &operator=(const x &) = default; \ + x &operator=(x &&) TINYGLTF_NOEXCEPT = default; + +namespace tinygltf { + +#define TINYGLTF_MODE_POINTS (0) +#define TINYGLTF_MODE_LINE (1) +#define TINYGLTF_MODE_LINE_LOOP (2) +#define TINYGLTF_MODE_LINE_STRIP (3) +#define TINYGLTF_MODE_TRIANGLES (4) +#define TINYGLTF_MODE_TRIANGLE_STRIP (5) +#define TINYGLTF_MODE_TRIANGLE_FAN (6) + +#define TINYGLTF_COMPONENT_TYPE_BYTE (5120) +#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE (5121) +#define TINYGLTF_COMPONENT_TYPE_SHORT (5122) +#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT (5123) +#define TINYGLTF_COMPONENT_TYPE_INT (5124) +#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT (5125) +#define TINYGLTF_COMPONENT_TYPE_FLOAT (5126) +#define TINYGLTF_COMPONENT_TYPE_DOUBLE \ + (5130) // OpenGL double type. Note that some of glTF 2.0 validator does not + // support double type even the schema seems allow any value of + // integer: + // https://github.com/KhronosGroup/glTF/blob/b9884a2fd45130b4d673dd6c8a706ee21ee5c5f7/specification/2.0/schema/accessor.schema.json#L22 + +#define TINYGLTF_TEXTURE_FILTER_NEAREST (9728) +#define TINYGLTF_TEXTURE_FILTER_LINEAR (9729) +#define TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST (9984) +#define TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST (9985) +#define TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR (9986) +#define TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR (9987) + +#define TINYGLTF_TEXTURE_WRAP_REPEAT (10497) +#define TINYGLTF_TEXTURE_WRAP_CLAMP_TO_EDGE (33071) +#define TINYGLTF_TEXTURE_WRAP_MIRRORED_REPEAT (33648) + +// Redeclarations of the above for technique.parameters. +#define TINYGLTF_PARAMETER_TYPE_BYTE (5120) +#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_BYTE (5121) +#define TINYGLTF_PARAMETER_TYPE_SHORT (5122) +#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_SHORT (5123) +#define TINYGLTF_PARAMETER_TYPE_INT (5124) +#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_INT (5125) +#define TINYGLTF_PARAMETER_TYPE_FLOAT (5126) + +#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC2 (35664) +#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC3 (35665) +#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC4 (35666) + +#define TINYGLTF_PARAMETER_TYPE_INT_VEC2 (35667) +#define TINYGLTF_PARAMETER_TYPE_INT_VEC3 (35668) +#define TINYGLTF_PARAMETER_TYPE_INT_VEC4 (35669) + +#define TINYGLTF_PARAMETER_TYPE_BOOL (35670) +#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC2 (35671) +#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC3 (35672) +#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC4 (35673) + +#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT2 (35674) +#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT3 (35675) +#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT4 (35676) + +#define TINYGLTF_PARAMETER_TYPE_SAMPLER_2D (35678) + +// End parameter types + +#define TINYGLTF_TYPE_VEC2 (2) +#define TINYGLTF_TYPE_VEC3 (3) +#define TINYGLTF_TYPE_VEC4 (4) +#define TINYGLTF_TYPE_MAT2 (32 + 2) +#define TINYGLTF_TYPE_MAT3 (32 + 3) +#define TINYGLTF_TYPE_MAT4 (32 + 4) +#define TINYGLTF_TYPE_SCALAR (64 + 1) +#define TINYGLTF_TYPE_VECTOR (64 + 4) +#define TINYGLTF_TYPE_MATRIX (64 + 16) + +#define TINYGLTF_IMAGE_FORMAT_JPEG (0) +#define TINYGLTF_IMAGE_FORMAT_PNG (1) +#define TINYGLTF_IMAGE_FORMAT_BMP (2) +#define TINYGLTF_IMAGE_FORMAT_GIF (3) + +#define TINYGLTF_TEXTURE_FORMAT_ALPHA (6406) +#define TINYGLTF_TEXTURE_FORMAT_RGB (6407) +#define TINYGLTF_TEXTURE_FORMAT_RGBA (6408) +#define TINYGLTF_TEXTURE_FORMAT_LUMINANCE (6409) +#define TINYGLTF_TEXTURE_FORMAT_LUMINANCE_ALPHA (6410) + +#define TINYGLTF_TEXTURE_TARGET_TEXTURE2D (3553) +#define TINYGLTF_TEXTURE_TYPE_UNSIGNED_BYTE (5121) + +#define TINYGLTF_TARGET_ARRAY_BUFFER (34962) +#define TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER (34963) + +#define TINYGLTF_SHADER_TYPE_VERTEX_SHADER (35633) +#define TINYGLTF_SHADER_TYPE_FRAGMENT_SHADER (35632) + +#define TINYGLTF_DOUBLE_EPS (1.e-12) +#define TINYGLTF_DOUBLE_EQUAL(a, b) (std::fabs((b) - (a)) < TINYGLTF_DOUBLE_EPS) + +#ifdef __ANDROID__ +#ifdef TINYGLTF_ANDROID_LOAD_FROM_ASSETS +#ifdef TINYGLTF_IMPLEMENTATION +AAssetManager *asset_manager = nullptr; +#else +extern AAssetManager *asset_manager; +#endif +#endif +#endif + +typedef enum { + NULL_TYPE, + REAL_TYPE, + INT_TYPE, + BOOL_TYPE, + STRING_TYPE, + ARRAY_TYPE, + BINARY_TYPE, + OBJECT_TYPE +} Type; + +typedef enum { + Permissive, + Strict +} ParseStrictness; + +static inline int32_t GetComponentSizeInBytes(uint32_t componentType) { + if (componentType == TINYGLTF_COMPONENT_TYPE_BYTE) { + return 1; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE) { + return 1; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_SHORT) { + return 2; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT) { + return 2; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_INT) { + return 4; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT) { + return 4; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_FLOAT) { + return 4; + } else if (componentType == TINYGLTF_COMPONENT_TYPE_DOUBLE) { + return 8; + } else { + // Unknown component type + return -1; + } +} + +static inline int32_t GetNumComponentsInType(uint32_t ty) { + if (ty == TINYGLTF_TYPE_SCALAR) { + return 1; + } else if (ty == TINYGLTF_TYPE_VEC2) { + return 2; + } else if (ty == TINYGLTF_TYPE_VEC3) { + return 3; + } else if (ty == TINYGLTF_TYPE_VEC4) { + return 4; + } else if (ty == TINYGLTF_TYPE_MAT2) { + return 4; + } else if (ty == TINYGLTF_TYPE_MAT3) { + return 9; + } else if (ty == TINYGLTF_TYPE_MAT4) { + return 16; + } else { + // Unknown component type + return -1; + } +} + +// TODO(syoyo): Move these functions to TinyGLTF class +bool IsDataURI(const std::string &in); +bool DecodeDataURI(std::vector *out, std::string &mime_type, + const std::string &in, size_t reqBytes, bool checkSize); + +#ifdef __clang__ +#pragma clang diagnostic push +// Suppress warning for : static Value null_value +#pragma clang diagnostic ignored "-Wexit-time-destructors" +#pragma clang diagnostic ignored "-Wpadded" +#endif + +// Simple class to represent JSON object +class Value { + public: + typedef std::vector Array; + typedef std::map Object; + + Value() = default; + + explicit Value(bool b) : type_(BOOL_TYPE) { boolean_value_ = b; } + explicit Value(int i) : type_(INT_TYPE) { + int_value_ = i; + real_value_ = i; + } + explicit Value(double n) : type_(REAL_TYPE) { real_value_ = n; } + explicit Value(const std::string &s) : type_(STRING_TYPE) { + string_value_ = s; + } + explicit Value(std::string &&s) + : type_(STRING_TYPE), string_value_(std::move(s)) {} + explicit Value(const char *s) : type_(STRING_TYPE) { string_value_ = s; } + explicit Value(const unsigned char *p, size_t n) : type_(BINARY_TYPE) { + binary_value_.resize(n); + memcpy(binary_value_.data(), p, n); + } + explicit Value(std::vector &&v) noexcept + : type_(BINARY_TYPE), + binary_value_(std::move(v)) {} + explicit Value(const Array &a) : type_(ARRAY_TYPE) { array_value_ = a; } + explicit Value(Array &&a) noexcept : type_(ARRAY_TYPE), + array_value_(std::move(a)) {} + + explicit Value(const Object &o) : type_(OBJECT_TYPE) { object_value_ = o; } + explicit Value(Object &&o) noexcept : type_(OBJECT_TYPE), + object_value_(std::move(o)) {} + + DEFAULT_METHODS(Value) + + char Type() const { return static_cast(type_); } + + bool IsBool() const { return (type_ == BOOL_TYPE); } + + bool IsInt() const { return (type_ == INT_TYPE); } + + bool IsNumber() const { return (type_ == REAL_TYPE) || (type_ == INT_TYPE); } + + bool IsReal() const { return (type_ == REAL_TYPE); } + + bool IsString() const { return (type_ == STRING_TYPE); } + + bool IsBinary() const { return (type_ == BINARY_TYPE); } + + bool IsArray() const { return (type_ == ARRAY_TYPE); } + + bool IsObject() const { return (type_ == OBJECT_TYPE); } + + // Use this function if you want to have number value as double. + double GetNumberAsDouble() const { + if (type_ == INT_TYPE) { + return double(int_value_); + } else { + return real_value_; + } + } + + // Use this function if you want to have number value as int. + // TODO(syoyo): Support int value larger than 32 bits + int GetNumberAsInt() const { + if (type_ == REAL_TYPE) { + return int(real_value_); + } else { + return int_value_; + } + } + + // Accessor + template + const T &Get() const; + template + T &Get(); + + // Lookup value from an array + const Value &Get(int idx) const { + static Value null_value; + assert(IsArray()); + assert(idx >= 0); + return (static_cast(idx) < array_value_.size()) + ? array_value_[static_cast(idx)] + : null_value; + } + + // Lookup value from a key-value pair + const Value &Get(const std::string &key) const { + static Value null_value; + assert(IsObject()); + Object::const_iterator it = object_value_.find(key); + return (it != object_value_.end()) ? it->second : null_value; + } + + size_t ArrayLen() const { + if (!IsArray()) return 0; + return array_value_.size(); + } + + // Valid only for object type. + bool Has(const std::string &key) const { + if (!IsObject()) return false; + Object::const_iterator it = object_value_.find(key); + return (it != object_value_.end()) ? true : false; + } + + // List keys + std::vector Keys() const { + std::vector keys; + if (!IsObject()) return keys; // empty + + for (Object::const_iterator it = object_value_.begin(); + it != object_value_.end(); ++it) { + keys.push_back(it->first); + } + + return keys; + } + + size_t Size() const { return (IsArray() ? ArrayLen() : Keys().size()); } + + bool operator==(const tinygltf::Value &other) const; + + protected: + int type_ = NULL_TYPE; + + int int_value_ = 0; + double real_value_ = 0.0; + std::string string_value_; + std::vector binary_value_; + Array array_value_; + Object object_value_; + bool boolean_value_ = false; +}; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#define TINYGLTF_VALUE_GET(ctype, var) \ + template <> \ + inline const ctype &Value::Get() const { \ + return var; \ + } \ + template <> \ + inline ctype &Value::Get() { \ + return var; \ + } +TINYGLTF_VALUE_GET(bool, boolean_value_) +TINYGLTF_VALUE_GET(double, real_value_) +TINYGLTF_VALUE_GET(int, int_value_) +TINYGLTF_VALUE_GET(std::string, string_value_) +TINYGLTF_VALUE_GET(std::vector, binary_value_) +TINYGLTF_VALUE_GET(Value::Array, array_value_) +TINYGLTF_VALUE_GET(Value::Object, object_value_) +#undef TINYGLTF_VALUE_GET + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++98-compat" +#pragma clang diagnostic ignored "-Wpadded" +#endif + +/// Aggregate object for representing a color +using ColorValue = std::array; + +// === legacy interface ==== +// TODO(syoyo): Deprecate `Parameter` class. +struct Parameter { + bool bool_value = false; + bool has_number_value = false; + std::string string_value; + std::vector number_array; + std::map json_double_value; + double number_value = 0.0; + + // context sensitive methods. depending the type of the Parameter you are + // accessing, these are either valid or not + // If this parameter represent a texture map in a material, will return the + // texture index + + /// Return the index of a texture if this Parameter is a texture map. + /// Returned value is only valid if the parameter represent a texture from a + /// material + int TextureIndex() const { + const auto it = json_double_value.find("index"); + if (it != std::end(json_double_value)) { + return int(it->second); + } + return -1; + } + + /// Return the index of a texture coordinate set if this Parameter is a + /// texture map. Returned value is only valid if the parameter represent a + /// texture from a material + int TextureTexCoord() const { + const auto it = json_double_value.find("texCoord"); + if (it != std::end(json_double_value)) { + return int(it->second); + } + // As per the spec, if texCoord is omitted, this parameter is 0 + return 0; + } + + /// Return the scale of a texture if this Parameter is a normal texture map. + /// Returned value is only valid if the parameter represent a normal texture + /// from a material + double TextureScale() const { + const auto it = json_double_value.find("scale"); + if (it != std::end(json_double_value)) { + return it->second; + } + // As per the spec, if scale is omitted, this parameter is 1 + return 1; + } + + /// Return the strength of a texture if this Parameter is a an occlusion map. + /// Returned value is only valid if the parameter represent an occlusion map + /// from a material + double TextureStrength() const { + const auto it = json_double_value.find("strength"); + if (it != std::end(json_double_value)) { + return it->second; + } + // As per the spec, if strength is omitted, this parameter is 1 + return 1; + } + + /// Material factor, like the roughness or metalness of a material + /// Returned value is only valid if the parameter represent a texture from a + /// material + double Factor() const { return number_value; } + + /// Return the color of a material + /// Returned value is only valid if the parameter represent a texture from a + /// material + ColorValue ColorFactor() const { + return { + {// this aggregate initialize the std::array object, and uses C++11 RVO. + number_array[0], number_array[1], number_array[2], + (number_array.size() > 3 ? number_array[3] : 1.0)}}; + } + + Parameter() = default; + DEFAULT_METHODS(Parameter) + bool operator==(const Parameter &) const; +}; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#endif + +typedef std::map ParameterMap; +typedef std::map ExtensionMap; + +struct AnimationChannel { + int sampler{-1}; // required + int target_node{-1}; // optional index of the node to target (alternative + // target should be provided by extension) + std::string target_path; // required with standard values of ["translation", + // "rotation", "scale", "weights"] + Value extras; + ExtensionMap extensions; + Value target_extras; + ExtensionMap target_extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + std::string target_extras_json_string; + std::string target_extensions_json_string; + + AnimationChannel() = default; + DEFAULT_METHODS(AnimationChannel) + bool operator==(const AnimationChannel &) const; +}; + +struct AnimationSampler { + int input{-1}; // required + int output{-1}; // required + std::string interpolation; // "LINEAR", "STEP","CUBICSPLINE" or user defined + // string. default "LINEAR" + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + AnimationSampler() : interpolation("LINEAR") {} + DEFAULT_METHODS(AnimationSampler) + bool operator==(const AnimationSampler &) const; +}; + +struct Animation { + std::string name; + std::vector channels; + std::vector samplers; + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Animation() = default; + DEFAULT_METHODS(Animation) + bool operator==(const Animation &) const; +}; + +struct Skin { + std::string name; + int inverseBindMatrices{-1}; // required here but not in the spec + int skeleton{-1}; // The index of the node used as a skeleton root + std::vector joints; // Indices of skeleton nodes + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Skin() = default; + DEFAULT_METHODS(Skin) + bool operator==(const Skin &) const; +}; + +struct Sampler { + std::string name; + // glTF 2.0 spec does not define default value for `minFilter` and + // `magFilter`. Set -1 in TinyGLTF(issue #186) + int minFilter = + -1; // optional. -1 = no filter defined. ["NEAREST", "LINEAR", + // "NEAREST_MIPMAP_NEAREST", "LINEAR_MIPMAP_NEAREST", + // "NEAREST_MIPMAP_LINEAR", "LINEAR_MIPMAP_LINEAR"] + int magFilter = + -1; // optional. -1 = no filter defined. ["NEAREST", "LINEAR"] + int wrapS = + TINYGLTF_TEXTURE_WRAP_REPEAT; // ["CLAMP_TO_EDGE", "MIRRORED_REPEAT", + // "REPEAT"], default "REPEAT" + int wrapT = + TINYGLTF_TEXTURE_WRAP_REPEAT; // ["CLAMP_TO_EDGE", "MIRRORED_REPEAT", + // "REPEAT"], default "REPEAT" + // int wrapR = TINYGLTF_TEXTURE_WRAP_REPEAT; // TinyGLTF extension. currently + // not used. + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Sampler() = default; + DEFAULT_METHODS(Sampler) + bool operator==(const Sampler &) const; +}; + +struct Image { + std::string name; + int width{-1}; + int height{-1}; + int component{-1}; + int bits{-1}; // bit depth per channel. 8(byte), 16 or 32. + int pixel_type{-1}; // pixel type(TINYGLTF_COMPONENT_TYPE_***). usually + // UBYTE(bits = 8) or USHORT(bits = 16) + std::vector image; + int bufferView{-1}; // (required if no uri) + std::string mimeType; // (required if no uri) ["image/jpeg", "image/png", + // "image/bmp", "image/gif"] + std::string uri; // (required if no mimeType) uri is not decoded(e.g. + // whitespace may be represented as %20) + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + // When this flag is true, data is stored to `image` in as-is format(e.g. jpeg + // compressed for "image/jpeg" mime) This feature is good if you use custom + // image loader function. (e.g. delayed decoding of images for faster glTF + // parsing) Default parser for Image does not provide as-is loading feature at + // the moment. (You can manipulate this by providing your own LoadImageData + // function) + bool as_is{false}; + + Image() = default; + DEFAULT_METHODS(Image) + + bool operator==(const Image &) const; +}; + +struct Texture { + std::string name; + + int sampler{-1}; + int source{-1}; + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Texture() = default; + DEFAULT_METHODS(Texture) + + bool operator==(const Texture &) const; +}; + +struct TextureInfo { + int index{-1}; // required. + int texCoord{0}; // The set index of texture's TEXCOORD attribute used for + // texture coordinate mapping. + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + TextureInfo() = default; + DEFAULT_METHODS(TextureInfo) + bool operator==(const TextureInfo &) const; +}; + +struct NormalTextureInfo { + int index{-1}; // required + int texCoord{0}; // The set index of texture's TEXCOORD attribute used for + // texture coordinate mapping. + double scale{ + 1.0}; // scaledNormal = normalize(( + // * 2.0 - 1.0) * vec3(, , 1.0)) + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + NormalTextureInfo() = default; + DEFAULT_METHODS(NormalTextureInfo) + bool operator==(const NormalTextureInfo &) const; +}; + +struct OcclusionTextureInfo { + int index{-1}; // required + int texCoord{0}; // The set index of texture's TEXCOORD attribute used for + // texture coordinate mapping. + double strength{1.0}; // occludedColor = lerp(color, color * , ) + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + OcclusionTextureInfo() = default; + DEFAULT_METHODS(OcclusionTextureInfo) + bool operator==(const OcclusionTextureInfo &) const; +}; + +// pbrMetallicRoughness class defined in glTF 2.0 spec. +struct PbrMetallicRoughness { + std::vector baseColorFactor; // len = 4. default [1,1,1,1] + TextureInfo baseColorTexture; + double metallicFactor{1.0}; // default 1 + double roughnessFactor{1.0}; // default 1 + TextureInfo metallicRoughnessTexture; + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + PbrMetallicRoughness() + : baseColorFactor(std::vector{1.0, 1.0, 1.0, 1.0}) {} + DEFAULT_METHODS(PbrMetallicRoughness) + bool operator==(const PbrMetallicRoughness &) const; +}; + +// Each extension should be stored in a ParameterMap. +// members not in the values could be included in the ParameterMap +// to keep a single material model +struct Material { + std::string name; + + std::vector emissiveFactor; // length 3. default [0, 0, 0] + std::string alphaMode; // default "OPAQUE" + double alphaCutoff{0.5}; // default 0.5 + bool doubleSided{false}; // default false; + + PbrMetallicRoughness pbrMetallicRoughness; + + NormalTextureInfo normalTexture; + OcclusionTextureInfo occlusionTexture; + TextureInfo emissiveTexture; + + // For backward compatibility + // TODO(syoyo): Remove `values` and `additionalValues` in the next release. + ParameterMap values; + ParameterMap additionalValues; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Material() : alphaMode("OPAQUE") {} + DEFAULT_METHODS(Material) + + bool operator==(const Material &) const; +}; + +struct BufferView { + std::string name; + int buffer{-1}; // Required + size_t byteOffset{0}; // minimum 0, default 0 + size_t byteLength{0}; // required, minimum 1. 0 = invalid + size_t byteStride{0}; // minimum 4, maximum 252 (multiple of 4), default 0 = + // understood to be tightly packed + int target{0}; // ["ARRAY_BUFFER", "ELEMENT_ARRAY_BUFFER"] for vertex indices + // or attribs. Could be 0 for other data + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + bool dracoDecoded{false}; // Flag indicating this has been draco decoded + + BufferView() = default; + DEFAULT_METHODS(BufferView) + bool operator==(const BufferView &) const; +}; + +struct Accessor { + int bufferView{-1}; // optional in spec but required here since sparse + // accessor are not supported + std::string name; + size_t byteOffset{0}; + bool normalized{false}; // optional. + int componentType{-1}; // (required) One of TINYGLTF_COMPONENT_TYPE_*** + size_t count{0}; // required + int type{-1}; // (required) One of TINYGLTF_TYPE_*** .. + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + std::vector + minValues; // optional. integer value is promoted to double + std::vector + maxValues; // optional. integer value is promoted to double + + struct Sparse { + int count; + bool isSparse; + struct { + size_t byteOffset; + int bufferView; + int componentType; // a TINYGLTF_COMPONENT_TYPE_ value + Value extras; + ExtensionMap extensions; + std::string extras_json_string; + std::string extensions_json_string; + } indices; + struct { + int bufferView; + size_t byteOffset; + Value extras; + ExtensionMap extensions; + std::string extras_json_string; + std::string extensions_json_string; + } values; + Value extras; + ExtensionMap extensions; + std::string extras_json_string; + std::string extensions_json_string; + }; + + Sparse sparse; + + /// + /// Utility function to compute byteStride for a given bufferView object. + /// Returns -1 upon invalid glTF value or parameter configuration. + /// + int ByteStride(const BufferView &bufferViewObject) const { + if (bufferViewObject.byteStride == 0) { + // Assume data is tightly packed. + int componentSizeInBytes = + GetComponentSizeInBytes(static_cast(componentType)); + if (componentSizeInBytes <= 0) { + return -1; + } + + int numComponents = GetNumComponentsInType(static_cast(type)); + if (numComponents <= 0) { + return -1; + } + + return componentSizeInBytes * numComponents; + } else { + // Check if byteStride is a multiple of the size of the accessor's + // component type. + int componentSizeInBytes = + GetComponentSizeInBytes(static_cast(componentType)); + if (componentSizeInBytes <= 0) { + return -1; + } + + if ((bufferViewObject.byteStride % uint32_t(componentSizeInBytes)) != 0) { + return -1; + } + return static_cast(bufferViewObject.byteStride); + } + + // unreachable return 0; + } + + Accessor() + + { + sparse.isSparse = false; + } + DEFAULT_METHODS(Accessor) + bool operator==(const tinygltf::Accessor &) const; +}; + +struct PerspectiveCamera { + double aspectRatio{0.0}; // min > 0 + double yfov{0.0}; // required. min > 0 + double zfar{0.0}; // min > 0 + double znear{0.0}; // required. min > 0 + + PerspectiveCamera() = default; + DEFAULT_METHODS(PerspectiveCamera) + bool operator==(const PerspectiveCamera &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct OrthographicCamera { + double xmag{0.0}; // required. must not be zero. + double ymag{0.0}; // required. must not be zero. + double zfar{0.0}; // required. `zfar` must be greater than `znear`. + double znear{0.0}; // required + + OrthographicCamera() = default; + DEFAULT_METHODS(OrthographicCamera) + bool operator==(const OrthographicCamera &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct Camera { + std::string type; // required. "perspective" or "orthographic" + std::string name; + + PerspectiveCamera perspective; + OrthographicCamera orthographic; + + Camera() = default; + DEFAULT_METHODS(Camera) + bool operator==(const Camera &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct Primitive { + std::map attributes; // (required) A dictionary object of + // integer, where each integer + // is the index of the accessor + // containing an attribute. + int material{-1}; // The index of the material to apply to this primitive + // when rendering. + int indices{-1}; // The index of the accessor that contains the indices. + int mode{-1}; // one of TINYGLTF_MODE_*** + std::vector > targets; // array of morph targets, + // where each target is a dict with attributes in ["POSITION, "NORMAL", + // "TANGENT"] pointing + // to their corresponding accessors + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Primitive() = default; + DEFAULT_METHODS(Primitive) + bool operator==(const Primitive &) const; +}; + +struct Mesh { + std::string name; + std::vector primitives; + std::vector weights; // weights to be applied to the Morph Targets + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Mesh() = default; + DEFAULT_METHODS(Mesh) + bool operator==(const Mesh &) const; +}; + +class Node { + public: + Node() = default; + + DEFAULT_METHODS(Node) + + bool operator==(const Node &) const; + + int camera{-1}; // the index of the camera referenced by this node + + std::string name; + int skin{-1}; + int mesh{-1}; + int light{-1}; // light source index (KHR_lights_punctual) + int emitter{-1}; // audio emitter index (KHR_audio) + std::vector children; + std::vector rotation; // length must be 0 or 4 + std::vector scale; // length must be 0 or 3 + std::vector translation; // length must be 0 or 3 + std::vector matrix; // length must be 0 or 16 + std::vector weights; // The weights of the instantiated Morph Target + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct Buffer { + std::string name; + std::vector data; + std::string + uri; // considered as required here but not in the spec (need to clarify) + // uri is not decoded(e.g. whitespace may be represented as %20) + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Buffer() = default; + DEFAULT_METHODS(Buffer) + bool operator==(const Buffer &) const; +}; + +struct Asset { + std::string version = "2.0"; // required + std::string generator; + std::string minVersion; + std::string copyright; + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Asset() = default; + DEFAULT_METHODS(Asset) + bool operator==(const Asset &) const; +}; + +struct Scene { + std::string name; + std::vector nodes; + std::vector audioEmitters; // KHR_audio global emitters + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; + + Scene() = default; + DEFAULT_METHODS(Scene) + bool operator==(const Scene &) const; +}; + +struct SpotLight { + double innerConeAngle{0.0}; + double outerConeAngle{0.7853981634}; + + SpotLight() = default; + DEFAULT_METHODS(SpotLight) + bool operator==(const SpotLight &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct Light { + std::string name; + std::vector color; + double intensity{1.0}; + std::string type; + double range{0.0}; // 0.0 = infinite + SpotLight spot; + + Light() = default; + DEFAULT_METHODS(Light) + + bool operator==(const Light &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct PositionalEmitter { + double coneInnerAngle{6.283185307179586}; + double coneOuterAngle{6.283185307179586}; + double coneOuterGain{0.0}; + double maxDistance{100.0}; + double refDistance{1.0}; + double rolloffFactor{1.0}; + + PositionalEmitter() = default; + DEFAULT_METHODS(PositionalEmitter) + bool operator==(const PositionalEmitter &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct AudioEmitter { + std::string name; + double gain{1.0}; + bool loop{false}; + bool playing{false}; + std::string + type; // positional - Positional audio emitters. Using sound cones, the + // orientation is +Z having the same front side for a glTF asset. + // global - Global audio emitters are not affected by the position + // of audio listeners. coneInnerAngle, coneOuterAngle, + // coneOuterGain, distanceModel, maxDistance, refDistance, and + // rolloffFactor should all be ignored when set. + std::string + distanceModel; // linear - A linear distance model calculating the + // gain induced by the distance according to: 1.0 + // - rolloffFactor * (distance - refDistance) / + // (maxDistance - refDistance) + // inverse - (default) An inverse distance model + // calculating the gain induced by the distance according + // to: refDistance / (refDistance + rolloffFactor * + // (Math.max(distance, refDistance) - refDistance)) + // exponential - An exponential distance model calculating + // the gain induced by the distance according to: + // pow((Math.max(distance, refDistance) / refDistance, + // -rolloffFactor)) + PositionalEmitter positional; + int source{-1}; + + AudioEmitter() : type("global"), distanceModel("inverse") {} + DEFAULT_METHODS(AudioEmitter) + + bool operator==(const AudioEmitter &) const; + + ExtensionMap extensions; + Value extras; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +struct AudioSource { + std::string name; + std::string uri; + int bufferView{-1}; // (required if no uri) + std::string + mimeType; // (required if no uri) The audio's MIME type. Required if + // bufferView is defined. Unless specified by another + // extension, the only supported mimeType is audio/mpeg. + + AudioSource() = default; + DEFAULT_METHODS(AudioSource) + + bool operator==(const AudioSource &) const; + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +class Model { + public: + Model() = default; + DEFAULT_METHODS(Model) + + bool operator==(const Model &) const; + + std::vector accessors; + std::vector animations; + std::vector buffers; + std::vector bufferViews; + std::vector materials; + std::vector meshes; + std::vector nodes; + std::vector textures; + std::vector images; + std::vector skins; + std::vector samplers; + std::vector cameras; + std::vector scenes; + std::vector lights; + std::vector audioEmitters; + std::vector audioSources; + + int defaultScene{-1}; + std::vector extensionsUsed; + std::vector extensionsRequired; + + Asset asset; + + Value extras; + ExtensionMap extensions; + + // Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled. + std::string extras_json_string; + std::string extensions_json_string; +}; + +enum SectionCheck { + NO_REQUIRE = 0x00, + REQUIRE_VERSION = 0x01, + REQUIRE_SCENE = 0x02, + REQUIRE_SCENES = 0x04, + REQUIRE_NODES = 0x08, + REQUIRE_ACCESSORS = 0x10, + REQUIRE_BUFFERS = 0x20, + REQUIRE_BUFFER_VIEWS = 0x40, + REQUIRE_ALL = 0x7f +}; + +/// +/// URIEncodeFunction type. Signature for custom URI encoding of external +/// resources such as .bin and image files. Used by tinygltf to re-encode the +/// final location of saved files. object_type may be used to encode buffer and +/// image URIs differently, for example. See +/// https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#uris +/// +typedef bool (*URIEncodeFunction)(const std::string &in_uri, + const std::string &object_type, + std::string *out_uri, void *user_data); + +/// +/// URIDecodeFunction type. Signature for custom URI decoding of external +/// resources such as .bin and image files. Used by tinygltf when computing +/// filenames to write resources. +/// +typedef bool (*URIDecodeFunction)(const std::string &in_uri, + std::string *out_uri, void *user_data); + +// Declaration of default uri decode function +bool URIDecode(const std::string &in_uri, std::string *out_uri, + void *user_data); + +/// +/// A structure containing URI callbacks and a pointer to their user data. +/// +struct URICallbacks { + URIEncodeFunction encode; // Optional encode method + URIDecodeFunction decode; // Required decode method + + void *user_data; // An argument that is passed to all uri callbacks +}; + +/// +/// LoadImageDataFunction type. Signature for custom image loading callbacks. +/// +typedef bool (*LoadImageDataFunction)(Image *, const int, std::string *, + std::string *, int, int, + const unsigned char *, int, + void *user_pointer); + +/// +/// WriteImageDataFunction type. Signature for custom image writing callbacks. +/// The out_uri parameter becomes the URI written to the gltf and may reference +/// a file or contain a data URI. +/// +typedef bool (*WriteImageDataFunction)(const std::string *basepath, + const std::string *filename, + const Image *image, bool embedImages, + const URICallbacks *uri_cb, + std::string *out_uri, + void *user_pointer); + +#ifndef TINYGLTF_NO_STB_IMAGE +// Declaration of default image loader callback +bool LoadImageData(Image *image, const int image_idx, std::string *err, + std::string *warn, int req_width, int req_height, + const unsigned char *bytes, int size, void *); +#endif + +#ifndef TINYGLTF_NO_STB_IMAGE_WRITE +// Declaration of default image writer callback +bool WriteImageData(const std::string *basepath, const std::string *filename, + const Image *image, bool embedImages, + const URICallbacks *uri_cb, std::string *out_uri, void *); +#endif + +/// +/// FilExistsFunction type. Signature for custom filesystem callbacks. +/// +typedef bool (*FileExistsFunction)(const std::string &abs_filename, void *); + +/// +/// ExpandFilePathFunction type. Signature for custom filesystem callbacks. +/// +typedef std::string (*ExpandFilePathFunction)(const std::string &, void *); + +/// +/// ReadWholeFileFunction type. Signature for custom filesystem callbacks. +/// +typedef bool (*ReadWholeFileFunction)(std::vector *, + std::string *, const std::string &, + void *); + +/// +/// WriteWholeFileFunction type. Signature for custom filesystem callbacks. +/// +typedef bool (*WriteWholeFileFunction)(std::string *, const std::string &, + const std::vector &, + void *); + +/// +/// GetFileSizeFunction type. Signature for custom filesystem callbacks. +/// +typedef bool (*GetFileSizeFunction)(size_t *filesize_out, std::string *err, + const std::string &abs_filename, + void *userdata); + +/// +/// A structure containing all required filesystem callbacks and a pointer to +/// their user data. +/// +struct FsCallbacks { + FileExistsFunction FileExists; + ExpandFilePathFunction ExpandFilePath; + ReadWholeFileFunction ReadWholeFile; + WriteWholeFileFunction WriteWholeFile; + GetFileSizeFunction GetFileSizeInBytes; // To avoid GetFileSize Win32 API, + // add `InBytes` suffix. + + void *user_data; // An argument that is passed to all fs callbacks +}; + +#ifndef TINYGLTF_NO_FS +// Declaration of default filesystem callbacks + +bool FileExists(const std::string &abs_filename, void *); + +/// +/// Expand file path(e.g. `~` to home directory on posix, `%APPDATA%` to +/// `C:\\Users\\tinygltf\\AppData`) +/// +/// @param[in] filepath File path string. Assume UTF-8 +/// @param[in] userdata User data. Set to `nullptr` if you don't need it. +/// +std::string ExpandFilePath(const std::string &filepath, void *userdata); + +bool ReadWholeFile(std::vector *out, std::string *err, + const std::string &filepath, void *); + +bool WriteWholeFile(std::string *err, const std::string &filepath, + const std::vector &contents, void *); + +bool GetFileSizeInBytes(size_t *filesize_out, std::string *err, + const std::string &filepath, void *); +#endif + +/// +/// glTF Parser/Serializer context. +/// +class TinyGLTF { + public: +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++98-compat" +#endif + + TinyGLTF() = default; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + + ~TinyGLTF() = default; + + /// + /// Loads glTF ASCII asset from a file. + /// Set warning message to `warn` for example it fails to load asserts. + /// Returns false and set error string to `err` if there's an error. + /// + bool LoadASCIIFromFile(Model *model, std::string *err, std::string *warn, + const std::string &filename, + unsigned int check_sections = REQUIRE_VERSION); + + /// + /// Loads glTF ASCII asset from string(memory). + /// `length` = strlen(str); + /// `base_dir` is a search path of glTF asset(e.g. images). Path Must be an + /// expanded path (e.g. no tilde(`~`), no environment variables). Set warning + /// message to `warn` for example it fails to load asserts. Returns false and + /// set error string to `err` if there's an error. + /// + bool LoadASCIIFromString(Model *model, std::string *err, std::string *warn, + const char *str, const unsigned int length, + const std::string &base_dir, + unsigned int check_sections = REQUIRE_VERSION); + + /// + /// Loads glTF binary asset from a file. + /// Set warning message to `warn` for example it fails to load asserts. + /// Returns false and set error string to `err` if there's an error. + /// + bool LoadBinaryFromFile(Model *model, std::string *err, std::string *warn, + const std::string &filename, + unsigned int check_sections = REQUIRE_VERSION); + + /// + /// Loads glTF binary asset from memory. + /// `length` = strlen(str); + /// `base_dir` is a search path of glTF asset(e.g. images). Path Must be an + /// expanded path (e.g. no tilde(`~`), no environment variables). + /// Set warning message to `warn` for example it fails to load asserts. + /// Returns false and set error string to `err` if there's an error. + /// + bool LoadBinaryFromMemory(Model *model, std::string *err, std::string *warn, + const unsigned char *bytes, + const unsigned int length, + const std::string &base_dir = "", + unsigned int check_sections = REQUIRE_VERSION); + + /// + /// Write glTF to stream, buffers and images will be embedded + /// + bool WriteGltfSceneToStream(const Model *model, std::ostream &stream, + bool prettyPrint, bool writeBinary); + + /// + /// Write glTF to file. + /// + bool WriteGltfSceneToFile(const Model *model, const std::string &filename, + bool embedImages, bool embedBuffers, + bool prettyPrint, bool writeBinary); + + /// + /// Sets the parsing strictness. + /// + void SetParseStrictness(ParseStrictness strictness); + + /// + /// Set callback to use for loading image data + /// + void SetImageLoader(LoadImageDataFunction LoadImageData, void *user_data); + + /// + /// Unset(remove) callback of loading image data + /// + void RemoveImageLoader(); + + /// + /// Set callback to use for writing image data + /// + void SetImageWriter(WriteImageDataFunction WriteImageData, void *user_data); + + /// + /// Set callbacks to use for URI encoding and decoding and their user data + /// + void SetURICallbacks(URICallbacks callbacks); + + /// + /// Set callbacks to use for filesystem (fs) access and their user data + /// + void SetFsCallbacks(FsCallbacks callbacks); + + /// + /// Set serializing default values(default = false). + /// When true, default values are force serialized to .glTF. + /// This may be helpful if you want to serialize a full description of glTF + /// data. + /// + /// TODO(LTE): Supply parsing option as function arguments to + /// `LoadASCIIFromFile()` and others, not by a class method + /// + void SetSerializeDefaultValues(const bool enabled) { + serialize_default_values_ = enabled; + } + + bool GetSerializeDefaultValues() const { return serialize_default_values_; } + + /// + /// Store original JSON string for `extras` and `extensions`. + /// This feature will be useful when the user want to reconstruct custom data + /// structure from JSON string. + /// + void SetStoreOriginalJSONForExtrasAndExtensions(const bool enabled) { + store_original_json_for_extras_and_extensions_ = enabled; + } + + bool GetStoreOriginalJSONForExtrasAndExtensions() const { + return store_original_json_for_extras_and_extensions_; + } + + /// + /// Specify whether preserve image channels when loading images or not. + /// (Not effective when the user supplies their own LoadImageData callbacks) + /// + void SetPreserveImageChannels(bool onoff) { + preserve_image_channels_ = onoff; + } + + /// + /// Set maximum allowed external file size in bytes. + /// Default: 2GB + /// Only effective for built-in ReadWholeFileFunction FS function. + /// + void SetMaxExternalFileSize(size_t max_bytes) { + max_external_file_size_ = max_bytes; + } + + size_t GetMaxExternalFileSize() const { return max_external_file_size_; } + + bool GetPreserveImageChannels() const { return preserve_image_channels_; } + + private: + /// + /// Loads glTF asset from string(memory). + /// `length` = strlen(str); + /// Set warning message to `warn` for example it fails to load asserts + /// Returns false and set error string to `err` if there's an error. + /// + bool LoadFromString(Model *model, std::string *err, std::string *warn, + const char *str, const unsigned int length, + const std::string &base_dir, unsigned int check_sections); + + const unsigned char *bin_data_ = nullptr; + size_t bin_size_ = 0; + bool is_binary_ = false; + + ParseStrictness strictness_ = ParseStrictness::Strict; + + bool serialize_default_values_ = false; ///< Serialize default values? + + bool store_original_json_for_extras_and_extensions_ = false; + + bool preserve_image_channels_ = false; /// Default false(expand channels to + /// RGBA) for backward compatibility. + + size_t max_external_file_size_{ + size_t((std::numeric_limits::max)())}; // Default 2GB + + // Warning & error messages + std::string warn_; + std::string err_; + + FsCallbacks fs = { +#ifndef TINYGLTF_NO_FS + &tinygltf::FileExists, + &tinygltf::ExpandFilePath, + &tinygltf::ReadWholeFile, + &tinygltf::WriteWholeFile, + &tinygltf::GetFileSizeInBytes, + + nullptr // Fs callback user data +#else + nullptr, nullptr, nullptr, nullptr, nullptr, + + nullptr // Fs callback user data +#endif + }; + + URICallbacks uri_cb = { + // Use paths as-is by default. This will use JSON string escaping. + nullptr, + // Decode all URIs before using them as paths as the application may have + // percent encoded them. + &tinygltf::URIDecode, + // URI callback user data + nullptr}; + + LoadImageDataFunction LoadImageData = +#ifndef TINYGLTF_NO_STB_IMAGE + &tinygltf::LoadImageData; +#else + nullptr; +#endif + void *load_image_user_data_{nullptr}; + bool user_image_loader_{false}; + + WriteImageDataFunction WriteImageData = +#ifndef TINYGLTF_NO_STB_IMAGE_WRITE + &tinygltf::WriteImageData; +#else + nullptr; +#endif + void *write_image_user_data_{nullptr}; +}; + +#ifdef __clang__ +#pragma clang diagnostic pop // -Wpadded +#endif + +} // namespace tinygltf + +#endif // TINY_GLTF_H_ + +#if defined(TINYGLTF_IMPLEMENTATION) || defined(__INTELLISENSE__) +#include +// #include +#ifndef TINYGLTF_NO_FS +#include // for is_directory check + +#include +#include +#endif +#include + +#ifdef __clang__ +// Disable some warnings for external files. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wfloat-equal" +#pragma clang diagnostic ignored "-Wexit-time-destructors" +#pragma clang diagnostic ignored "-Wconversion" +#pragma clang diagnostic ignored "-Wold-style-cast" +#pragma clang diagnostic ignored "-Wglobal-constructors" +#if __has_warning("-Wreserved-id-macro") +#pragma clang diagnostic ignored "-Wreserved-id-macro" +#endif +#pragma clang diagnostic ignored "-Wdisabled-macro-expansion" +#pragma clang diagnostic ignored "-Wpadded" +#pragma clang diagnostic ignored "-Wc++98-compat" +#pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#pragma clang diagnostic ignored "-Wswitch-enum" +#pragma clang diagnostic ignored "-Wimplicit-fallthrough" +#pragma clang diagnostic ignored "-Wweak-vtables" +#pragma clang diagnostic ignored "-Wcovered-switch-default" +#if __has_warning("-Wdouble-promotion") +#pragma clang diagnostic ignored "-Wdouble-promotion" +#endif +#if __has_warning("-Wcomma") +#pragma clang diagnostic ignored "-Wcomma" +#endif +#if __has_warning("-Wzero-as-null-pointer-constant") +#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" +#endif +#if __has_warning("-Wcast-qual") +#pragma clang diagnostic ignored "-Wcast-qual" +#endif +#if __has_warning("-Wmissing-variable-declarations") +#pragma clang diagnostic ignored "-Wmissing-variable-declarations" +#endif +#if __has_warning("-Wmissing-prototypes") +#pragma clang diagnostic ignored "-Wmissing-prototypes" +#endif +#if __has_warning("-Wcast-align") +#pragma clang diagnostic ignored "-Wcast-align" +#endif +#if __has_warning("-Wnewline-eof") +#pragma clang diagnostic ignored "-Wnewline-eof" +#endif +#if __has_warning("-Wunused-parameter") +#pragma clang diagnostic ignored "-Wunused-parameter" +#endif +#if __has_warning("-Wmismatched-tags") +#pragma clang diagnostic ignored "-Wmismatched-tags" +#endif +#if __has_warning("-Wextra-semi-stmt") +#pragma clang diagnostic ignored "-Wextra-semi-stmt" +#endif +#endif + +// Disable GCC warnings +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wtype-limits" +#endif // __GNUC__ + +#ifndef TINYGLTF_NO_INCLUDE_JSON +#ifndef TINYGLTF_USE_RAPIDJSON +#include "json.hpp" +#else +#ifndef TINYGLTF_NO_INCLUDE_RAPIDJSON +#include "document.h" +#include "prettywriter.h" +#include "rapidjson.h" +#include "stringbuffer.h" +#include "writer.h" +#endif +#endif +#endif + +#ifdef TINYGLTF_ENABLE_DRACO +#include "draco/compression/decode.h" +#include "draco/core/decoder_buffer.h" +#endif + +#ifndef TINYGLTF_NO_STB_IMAGE +#ifndef TINYGLTF_NO_INCLUDE_STB_IMAGE +#include "stb_image.h" +#endif +#endif + +#ifndef TINYGLTF_NO_STB_IMAGE_WRITE +#ifndef TINYGLTF_NO_INCLUDE_STB_IMAGE_WRITE +#include "stb_image_write.h" +#endif +#endif + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + +#ifdef _WIN32 + +// issue 143. +// Define NOMINMAX to avoid min/max defines, +// but undef it after included Windows.h +#ifndef NOMINMAX +#define TINYGLTF_INTERNAL_NOMINMAX +#define NOMINMAX +#endif + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#define TINYGLTF_INTERNAL_WIN32_LEAN_AND_MEAN +#endif +#ifndef __MINGW32__ +#include // include API for expanding a file path +#else +#include +#endif + +#ifdef TINYGLTF_INTERNAL_WIN32_LEAN_AND_MEAN +#undef WIN32_LEAN_AND_MEAN +#endif + +#if defined(TINYGLTF_INTERNAL_NOMINMAX) +#undef NOMINMAX +#endif + +#if defined(__GLIBCXX__) // mingw + +#include // _O_RDONLY + +#include // fstream (all sorts of IO stuff) + stdio_filebuf (=streambuf) + +#endif + +#elif !defined(__ANDROID__) && !defined(__OpenBSD__) +// #include +#endif + +#if defined(__sparcv9) || defined(__powerpc__) +// Big endian +#else +#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU +#define TINYGLTF_LITTLE_ENDIAN 1 +#endif +#endif + +namespace tinygltf { +namespace detail { +#ifdef TINYGLTF_USE_RAPIDJSON + +#ifdef TINYGLTF_USE_RAPIDJSON_CRTALLOCATOR +// This uses the RapidJSON CRTAllocator. It is thread safe and multiple +// documents may be active at once. +using json = + rapidjson::GenericValue, rapidjson::CrtAllocator>; +using json_iterator = json::MemberIterator; +using json_const_iterator = json::ConstMemberIterator; +using json_const_array_iterator = json const *; +using JsonDocument = + rapidjson::GenericDocument, rapidjson::CrtAllocator>; +rapidjson::CrtAllocator s_CrtAllocator; // stateless and thread safe +rapidjson::CrtAllocator &GetAllocator() { return s_CrtAllocator; } +#else +// This uses the default RapidJSON MemoryPoolAllocator. It is very fast, but +// not thread safe. Only a single JsonDocument may be active at any one time, +// meaning only a single gltf load/save can be active any one time. +using json = rapidjson::Value; +using json_iterator = json::MemberIterator; +using json_const_iterator = json::ConstMemberIterator; +using json_const_array_iterator = json const *; +rapidjson::Document *s_pActiveDocument = nullptr; +rapidjson::Document::AllocatorType &GetAllocator() { + assert(s_pActiveDocument); // Root json node must be JsonDocument type + return s_pActiveDocument->GetAllocator(); +} + +#ifdef __clang__ +#pragma clang diagnostic push +// Suppress JsonDocument(JsonDocument &&rhs) noexcept +#pragma clang diagnostic ignored "-Wunused-member-function" +#endif + +struct JsonDocument : public rapidjson::Document { + JsonDocument() { + assert(s_pActiveDocument == + nullptr); // When using default allocator, only one document can be + // active at a time, if you need multiple active at once, + // define TINYGLTF_USE_RAPIDJSON_CRTALLOCATOR + s_pActiveDocument = this; + } + JsonDocument(const JsonDocument &) = delete; + JsonDocument(JsonDocument &&rhs) noexcept + : rapidjson::Document(std::move(rhs)) { + s_pActiveDocument = this; + rhs.isNil = true; + } + ~JsonDocument() { + if (!isNil) { + s_pActiveDocument = nullptr; + } + } + + private: + bool isNil = false; +}; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#endif // TINYGLTF_USE_RAPIDJSON_CRTALLOCATOR + +#else +using nlohmann::json; +using json_iterator = json::iterator; +using json_const_iterator = json::const_iterator; +using json_const_array_iterator = json_const_iterator; +using JsonDocument = json; +#endif + +void JsonParse(JsonDocument &doc, const char *str, size_t length, + bool throwExc = false) { +#ifdef TINYGLTF_USE_RAPIDJSON + (void)throwExc; + doc.Parse(str, length); +#else + doc = detail::json::parse(str, str + length, nullptr, throwExc); +#endif +} +} // namespace detail +} // namespace tinygltf + +#ifdef __APPLE__ +#include "TargetConditionals.h" +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++98-compat" +#endif + +namespace tinygltf { + +/// +/// Internal LoadImageDataOption struct. +/// This struct is passed through `user_pointer` in LoadImageData. +/// The struct is not passed when the user supply their own LoadImageData +/// callbacks. +/// +struct LoadImageDataOption { + // true: preserve image channels(e.g. load as RGB image if the image has RGB + // channels) default `false`(channels are expanded to RGBA for backward + // compatibility). + bool preserve_channels{false}; +}; + +// Equals function for Value, for recursivity +static bool Equals(const tinygltf::Value &one, const tinygltf::Value &other) { + if (one.Type() != other.Type()) return false; + + switch (one.Type()) { + case NULL_TYPE: + return true; + case BOOL_TYPE: + return one.Get() == other.Get(); + case REAL_TYPE: + return TINYGLTF_DOUBLE_EQUAL(one.Get(), other.Get()); + case INT_TYPE: + return one.Get() == other.Get(); + case OBJECT_TYPE: { + auto oneObj = one.Get(); + auto otherObj = other.Get(); + if (oneObj.size() != otherObj.size()) return false; + for (auto &it : oneObj) { + auto otherIt = otherObj.find(it.first); + if (otherIt == otherObj.end()) return false; + + if (!Equals(it.second, otherIt->second)) return false; + } + return true; + } + case ARRAY_TYPE: { + if (one.Size() != other.Size()) return false; + for (int i = 0; i < int(one.Size()); ++i) + if (!Equals(one.Get(i), other.Get(i))) return false; + return true; + } + case STRING_TYPE: + return one.Get() == other.Get(); + case BINARY_TYPE: + return one.Get >() == + other.Get >(); + default: { + // unhandled type + return false; + } + } +} + +// Equals function for std::vector using TINYGLTF_DOUBLE_EPSILON +static bool Equals(const std::vector &one, + const std::vector &other) { + if (one.size() != other.size()) return false; + for (int i = 0; i < int(one.size()); ++i) { + if (!TINYGLTF_DOUBLE_EQUAL(one[size_t(i)], other[size_t(i)])) return false; + } + return true; +} + +bool Accessor::operator==(const Accessor &other) const { + return this->bufferView == other.bufferView && + this->byteOffset == other.byteOffset && + this->componentType == other.componentType && + this->count == other.count && this->extensions == other.extensions && + this->extras == other.extras && + Equals(this->maxValues, other.maxValues) && + Equals(this->minValues, other.minValues) && this->name == other.name && + this->normalized == other.normalized && this->type == other.type; +} +bool Animation::operator==(const Animation &other) const { + return this->channels == other.channels && + this->extensions == other.extensions && this->extras == other.extras && + this->name == other.name && this->samplers == other.samplers; +} +bool AnimationChannel::operator==(const AnimationChannel &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->target_node == other.target_node && + this->target_path == other.target_path && + this->sampler == other.sampler; +} +bool AnimationSampler::operator==(const AnimationSampler &other) const { + return this->extras == other.extras && this->extensions == other.extensions && + this->input == other.input && + this->interpolation == other.interpolation && + this->output == other.output; +} +bool Asset::operator==(const Asset &other) const { + return this->copyright == other.copyright && + this->extensions == other.extensions && this->extras == other.extras && + this->generator == other.generator && + this->minVersion == other.minVersion && this->version == other.version; +} +bool Buffer::operator==(const Buffer &other) const { + return this->data == other.data && this->extensions == other.extensions && + this->extras == other.extras && this->name == other.name && + this->uri == other.uri; +} +bool BufferView::operator==(const BufferView &other) const { + return this->buffer == other.buffer && this->byteLength == other.byteLength && + this->byteOffset == other.byteOffset && + this->byteStride == other.byteStride && this->name == other.name && + this->target == other.target && this->extensions == other.extensions && + this->extras == other.extras && + this->dracoDecoded == other.dracoDecoded; +} +bool Camera::operator==(const Camera &other) const { + return this->name == other.name && this->extensions == other.extensions && + this->extras == other.extras && + this->orthographic == other.orthographic && + this->perspective == other.perspective && this->type == other.type; +} +bool Image::operator==(const Image &other) const { + return this->bufferView == other.bufferView && + this->component == other.component && + this->extensions == other.extensions && this->extras == other.extras && + this->height == other.height && this->image == other.image && + this->mimeType == other.mimeType && this->name == other.name && + this->uri == other.uri && this->width == other.width; +} +bool Light::operator==(const Light &other) const { + return Equals(this->color, other.color) && this->name == other.name && + this->type == other.type; +} +bool AudioEmitter::operator==(const AudioEmitter &other) const { + return this->name == other.name && + TINYGLTF_DOUBLE_EQUAL(this->gain, other.gain) && + this->loop == other.loop && this->playing == other.playing && + this->type == other.type && + this->distanceModel == other.distanceModel && + this->source == other.source; +} +bool AudioSource::operator==(const AudioSource &other) const { + return this->name == other.name && this->uri == other.uri; +} +bool Material::operator==(const Material &other) const { + return (this->pbrMetallicRoughness == other.pbrMetallicRoughness) && + (this->normalTexture == other.normalTexture) && + (this->occlusionTexture == other.occlusionTexture) && + (this->emissiveTexture == other.emissiveTexture) && + Equals(this->emissiveFactor, other.emissiveFactor) && + (this->alphaMode == other.alphaMode) && + TINYGLTF_DOUBLE_EQUAL(this->alphaCutoff, other.alphaCutoff) && + (this->doubleSided == other.doubleSided) && + (this->extensions == other.extensions) && + (this->extras == other.extras) && (this->values == other.values) && + (this->additionalValues == other.additionalValues) && + (this->name == other.name); +} +bool Mesh::operator==(const Mesh &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->name == other.name && Equals(this->weights, other.weights) && + this->primitives == other.primitives; +} +bool Model::operator==(const Model &other) const { + return this->accessors == other.accessors && + this->animations == other.animations && this->asset == other.asset && + this->buffers == other.buffers && + this->bufferViews == other.bufferViews && + this->cameras == other.cameras && + this->defaultScene == other.defaultScene && + this->extensions == other.extensions && + this->extensionsRequired == other.extensionsRequired && + this->extensionsUsed == other.extensionsUsed && + this->extras == other.extras && this->images == other.images && + this->lights == other.lights && this->materials == other.materials && + this->meshes == other.meshes && this->nodes == other.nodes && + this->samplers == other.samplers && this->scenes == other.scenes && + this->skins == other.skins && this->textures == other.textures; +} +bool Node::operator==(const Node &other) const { + return this->camera == other.camera && this->children == other.children && + this->extensions == other.extensions && this->extras == other.extras && + Equals(this->matrix, other.matrix) && this->mesh == other.mesh && + (this->light == other.light) && (this->emitter == other.emitter) && + this->name == other.name && Equals(this->rotation, other.rotation) && + Equals(this->scale, other.scale) && this->skin == other.skin && + Equals(this->translation, other.translation) && + Equals(this->weights, other.weights); +} +bool SpotLight::operator==(const SpotLight &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + TINYGLTF_DOUBLE_EQUAL(this->innerConeAngle, other.innerConeAngle) && + TINYGLTF_DOUBLE_EQUAL(this->outerConeAngle, other.outerConeAngle); +} +bool PositionalEmitter::operator==(const PositionalEmitter &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + TINYGLTF_DOUBLE_EQUAL(this->coneInnerAngle, other.coneInnerAngle) && + TINYGLTF_DOUBLE_EQUAL(this->coneOuterAngle, other.coneOuterAngle) && + TINYGLTF_DOUBLE_EQUAL(this->coneOuterGain, other.coneOuterGain) && + TINYGLTF_DOUBLE_EQUAL(this->maxDistance, other.maxDistance) && + TINYGLTF_DOUBLE_EQUAL(this->refDistance, other.refDistance) && + TINYGLTF_DOUBLE_EQUAL(this->rolloffFactor, other.rolloffFactor); +} +bool OrthographicCamera::operator==(const OrthographicCamera &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + TINYGLTF_DOUBLE_EQUAL(this->xmag, other.xmag) && + TINYGLTF_DOUBLE_EQUAL(this->ymag, other.ymag) && + TINYGLTF_DOUBLE_EQUAL(this->zfar, other.zfar) && + TINYGLTF_DOUBLE_EQUAL(this->znear, other.znear); +} +bool Parameter::operator==(const Parameter &other) const { + if (this->bool_value != other.bool_value || + this->has_number_value != other.has_number_value) + return false; + + if (!TINYGLTF_DOUBLE_EQUAL(this->number_value, other.number_value)) + return false; + + if (this->json_double_value.size() != other.json_double_value.size()) + return false; + for (auto &it : this->json_double_value) { + auto otherIt = other.json_double_value.find(it.first); + if (otherIt == other.json_double_value.end()) return false; + + if (!TINYGLTF_DOUBLE_EQUAL(it.second, otherIt->second)) return false; + } + + if (!Equals(this->number_array, other.number_array)) return false; + + if (this->string_value != other.string_value) return false; + + return true; +} +bool PerspectiveCamera::operator==(const PerspectiveCamera &other) const { + return TINYGLTF_DOUBLE_EQUAL(this->aspectRatio, other.aspectRatio) && + this->extensions == other.extensions && this->extras == other.extras && + TINYGLTF_DOUBLE_EQUAL(this->yfov, other.yfov) && + TINYGLTF_DOUBLE_EQUAL(this->zfar, other.zfar) && + TINYGLTF_DOUBLE_EQUAL(this->znear, other.znear); +} +bool Primitive::operator==(const Primitive &other) const { + return this->attributes == other.attributes && this->extras == other.extras && + this->indices == other.indices && this->material == other.material && + this->mode == other.mode && this->targets == other.targets; +} +bool Sampler::operator==(const Sampler &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->magFilter == other.magFilter && + this->minFilter == other.minFilter && this->name == other.name && + this->wrapS == other.wrapS && this->wrapT == other.wrapT; + + // this->wrapR == other.wrapR +} +bool Scene::operator==(const Scene &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->name == other.name && this->nodes == other.nodes; +} +bool Skin::operator==(const Skin &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->inverseBindMatrices == other.inverseBindMatrices && + this->joints == other.joints && this->name == other.name && + this->skeleton == other.skeleton; +} +bool Texture::operator==(const Texture &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->name == other.name && this->sampler == other.sampler && + this->source == other.source; +} +bool TextureInfo::operator==(const TextureInfo &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->index == other.index && this->texCoord == other.texCoord; +} +bool NormalTextureInfo::operator==(const NormalTextureInfo &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->index == other.index && this->texCoord == other.texCoord && + TINYGLTF_DOUBLE_EQUAL(this->scale, other.scale); +} +bool OcclusionTextureInfo::operator==(const OcclusionTextureInfo &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + this->index == other.index && this->texCoord == other.texCoord && + TINYGLTF_DOUBLE_EQUAL(this->strength, other.strength); +} +bool PbrMetallicRoughness::operator==(const PbrMetallicRoughness &other) const { + return this->extensions == other.extensions && this->extras == other.extras && + (this->baseColorTexture == other.baseColorTexture) && + (this->metallicRoughnessTexture == other.metallicRoughnessTexture) && + Equals(this->baseColorFactor, other.baseColorFactor) && + TINYGLTF_DOUBLE_EQUAL(this->metallicFactor, other.metallicFactor) && + TINYGLTF_DOUBLE_EQUAL(this->roughnessFactor, other.roughnessFactor); +} +bool Value::operator==(const Value &other) const { + return Equals(*this, other); +} + +static void swap4(unsigned int *val) { +#ifdef TINYGLTF_LITTLE_ENDIAN + (void)val; +#else + unsigned int tmp = *val; + unsigned char *dst = reinterpret_cast(val); + unsigned char *src = reinterpret_cast(&tmp); + + dst[0] = src[3]; + dst[1] = src[2]; + dst[2] = src[1]; + dst[3] = src[0]; +#endif +} + +static std::string JoinPath(const std::string &path0, + const std::string &path1) { + if (path0.empty()) { + return path1; + } else { + // check '/' + char lastChar = *path0.rbegin(); + if (lastChar != '/') { + return path0 + std::string("/") + path1; + } else { + return path0 + path1; + } + } +} + +static std::string FindFile(const std::vector &paths, + const std::string &filepath, FsCallbacks *fs) { + if (fs == nullptr || fs->ExpandFilePath == nullptr || + fs->FileExists == nullptr) { + // Error, fs callback[s] missing + return std::string(); + } + + // https://github.com/syoyo/tinygltf/issues/416 + // Use strlen() since std::string's size/length reports the number of elements + // in the buffer, not the length of string(null-terminated) strip + // null-character in the middle of string. + size_t slength = strlen(filepath.c_str()); + if (slength == 0) { + return std::string(); + } + + std::string cleaned_filepath = std::string(filepath.c_str()); + + for (size_t i = 0; i < paths.size(); i++) { + std::string absPath = + fs->ExpandFilePath(JoinPath(paths[i], cleaned_filepath), fs->user_data); + if (fs->FileExists(absPath, fs->user_data)) { + return absPath; + } + } + + return std::string(); +} + +static std::string GetFilePathExtension(const std::string &FileName) { + if (FileName.find_last_of(".") != std::string::npos) + return FileName.substr(FileName.find_last_of(".") + 1); + return ""; +} + +static std::string GetBaseDir(const std::string &filepath) { + if (filepath.find_last_of("/\\") != std::string::npos) + return filepath.substr(0, filepath.find_last_of("/\\")); + return ""; +} + +static std::string GetBaseFilename(const std::string &filepath) { + auto idx = filepath.find_last_of("/\\"); + if (idx != std::string::npos) return filepath.substr(idx + 1); + return filepath; +} + +std::string base64_encode(unsigned char const *, unsigned int len); +std::string base64_decode(std::string const &s); + +/* + base64.cpp and base64.h + + Copyright (C) 2004-2008 René Nyffenegger + + This source code is provided 'as-is', without any express or implied + warranty. In no event will the author be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this source code must not be misrepresented; you must not + claim that you wrote the original source code. If you use this source code + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original source code. + + 3. This notice may not be removed or altered from any source distribution. + + René Nyffenegger rene.nyffenegger@adp-gmbh.ch + +*/ + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wsign-conversion" +#pragma clang diagnostic ignored "-Wconversion" +#endif + +static inline bool is_base64(unsigned char c) { + return (isalnum(c) || (c == '+') || (c == '/')); +} + +std::string base64_encode(unsigned char const *bytes_to_encode, + unsigned int in_len) { + std::string ret; + int i = 0; + int j = 0; + unsigned char char_array_3[3]; + unsigned char char_array_4[4]; + + const char *base64_chars = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + + while (in_len--) { + char_array_3[i++] = *(bytes_to_encode++); + if (i == 3) { + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = + ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); + char_array_4[2] = + ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); + char_array_4[3] = char_array_3[2] & 0x3f; + + for (i = 0; (i < 4); i++) ret += base64_chars[char_array_4[i]]; + i = 0; + } + } + + if (i) { + for (j = i; j < 3; j++) char_array_3[j] = '\0'; + + char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; + char_array_4[1] = + ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); + char_array_4[2] = + ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); + + for (j = 0; (j < i + 1); j++) ret += base64_chars[char_array_4[j]]; + + while ((i++ < 3)) ret += '='; + } + + return ret; +} + +std::string base64_decode(std::string const &encoded_string) { + int in_len = static_cast(encoded_string.size()); + int i = 0; + int j = 0; + int in_ = 0; + unsigned char char_array_4[4], char_array_3[3]; + std::string ret; + + const std::string base64_chars = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + + while (in_len-- && (encoded_string[in_] != '=') && + is_base64(encoded_string[in_])) { + char_array_4[i++] = encoded_string[in_]; + in_++; + if (i == 4) { + for (i = 0; i < 4; i++) + char_array_4[i] = + static_cast(base64_chars.find(char_array_4[i])); + + char_array_3[0] = + (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); + char_array_3[1] = + ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); + char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; + + for (i = 0; (i < 3); i++) ret += char_array_3[i]; + i = 0; + } + } + + if (i) { + for (j = i; j < 4; j++) char_array_4[j] = 0; + + for (j = 0; j < 4; j++) + char_array_4[j] = + static_cast(base64_chars.find(char_array_4[j])); + + char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); + char_array_3[1] = + ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); + char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; + + for (j = 0; (j < i - 1); j++) ret += char_array_3[j]; + } + + return ret; +} +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +// https://github.com/syoyo/tinygltf/issues/228 +// TODO(syoyo): Use uriparser https://uriparser.github.io/ for stricter Uri +// decoding? +// +// Uri Decoding from DLIB +// http://dlib.net/dlib/server/server_http.cpp.html +// --- dlib begin ------------------------------------------------------------ +// Copyright (C) 2003 Davis E. King (davis@dlib.net) +// License: Boost Software License +// Boost Software License - Version 1.0 - August 17th, 2003 + +// Permission is hereby granted, free of charge, to any person or organization +// obtaining a copy of the software and accompanying documentation covered by +// this license (the "Software") to use, reproduce, display, distribute, +// execute, and transmit the Software, and to prepare derivative works of the +// Software, and to permit third-parties to whom the Software is furnished to +// do so, all subject to the following: +// The copyright notices in the Software and this entire statement, including +// the above license grant, this restriction and the following disclaimer, +// must be included in all copies of the Software, in whole or in part, and +// all derivative works of the Software, unless such copies or derivative +// works are solely in the form of machine-executable object code generated by +// a source language processor. +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. +// +namespace dlib { + +inline unsigned char from_hex(unsigned char ch) { + if (ch <= '9' && ch >= '0') + ch -= '0'; + else if (ch <= 'f' && ch >= 'a') + ch -= 'a' - 10; + else if (ch <= 'F' && ch >= 'A') + ch -= 'A' - 10; + else + ch = 0; + return ch; +} + +static const std::string urldecode(const std::string &str) { + using namespace std; + string result; + string::size_type i; + for (i = 0; i < str.size(); ++i) { + if (str[i] == '+') { + result += ' '; + } else if (str[i] == '%' && str.size() > i + 2) { + const unsigned char ch1 = + from_hex(static_cast(str[i + 1])); + const unsigned char ch2 = + from_hex(static_cast(str[i + 2])); + const unsigned char ch = static_cast((ch1 << 4) | ch2); + result += static_cast(ch); + i += 2; + } else { + result += str[i]; + } + } + return result; +} + +} // namespace dlib +// --- dlib end -------------------------------------------------------------- + +bool URIDecode(const std::string &in_uri, std::string *out_uri, + void *user_data) { + (void)user_data; + *out_uri = dlib::urldecode(in_uri); + return true; +} + +static bool LoadExternalFile(std::vector *out, std::string *err, + std::string *warn, const std::string &filename, + const std::string &basedir, bool required, + size_t reqBytes, bool checkSize, + size_t maxFileSize, FsCallbacks *fs) { + if (fs == nullptr || fs->FileExists == nullptr || + fs->ExpandFilePath == nullptr || fs->ReadWholeFile == nullptr) { + // This is a developer error, assert() ? + if (err) { + (*err) += "FS callback[s] not set\n"; + } + return false; + } + + std::string *failMsgOut = required ? err : warn; + + out->clear(); + + std::vector paths; + paths.push_back(basedir); + paths.push_back("."); + + std::string filepath = FindFile(paths, filename, fs); + if (filepath.empty() || filename.empty()) { + if (failMsgOut) { + (*failMsgOut) += "File not found : " + filename + "\n"; + } + return false; + } + + // Check file size + if (fs->GetFileSizeInBytes) { + size_t file_size{0}; + std::string _err; + bool ok = + fs->GetFileSizeInBytes(&file_size, &_err, filepath, fs->user_data); + if (!ok) { + if (_err.size()) { + if (failMsgOut) { + (*failMsgOut) += "Getting file size failed : " + filename + + ", err = " + _err + "\n"; + } + } + return false; + } + + if (file_size > maxFileSize) { + if (failMsgOut) { + (*failMsgOut) += "File size " + std::to_string(file_size) + + " exceeds maximum allowed file size " + + std::to_string(maxFileSize) + " : " + filepath + "\n"; + } + return false; + } + } + + std::vector buf; + std::string fileReadErr; + bool fileRead = + fs->ReadWholeFile(&buf, &fileReadErr, filepath, fs->user_data); + if (!fileRead) { + if (failMsgOut) { + (*failMsgOut) += + "File read error : " + filepath + " : " + fileReadErr + "\n"; + } + return false; + } + + size_t sz = buf.size(); + if (sz == 0) { + if (failMsgOut) { + (*failMsgOut) += "File is empty : " + filepath + "\n"; + } + return false; + } + + if (checkSize) { + if (reqBytes == sz) { + out->swap(buf); + return true; + } else { + std::stringstream ss; + ss << "File size mismatch : " << filepath << ", requestedBytes " + << reqBytes << ", but got " << sz << std::endl; + if (failMsgOut) { + (*failMsgOut) += ss.str(); + } + return false; + } + } + + out->swap(buf); + return true; +} + +void TinyGLTF::SetParseStrictness(ParseStrictness strictness) { + strictness_ = strictness; +} + +void TinyGLTF::SetImageLoader(LoadImageDataFunction func, void *user_data) { + LoadImageData = func; + load_image_user_data_ = user_data; + user_image_loader_ = true; +} + +void TinyGLTF::RemoveImageLoader() { + LoadImageData = +#ifndef TINYGLTF_NO_STB_IMAGE + &tinygltf::LoadImageData; +#else + nullptr; +#endif + + load_image_user_data_ = nullptr; + user_image_loader_ = false; +} + +#ifndef TINYGLTF_NO_STB_IMAGE +bool LoadImageData(Image *image, const int image_idx, std::string *err, + std::string *warn, int req_width, int req_height, + const unsigned char *bytes, int size, void *user_data) { + (void)warn; + + LoadImageDataOption option; + if (user_data) { + option = *reinterpret_cast(user_data); + } + + int w = 0, h = 0, comp = 0, req_comp = 0; + + unsigned char *data = nullptr; + + // preserve_channels true: Use channels stored in the image file. + // false: force 32-bit textures for common Vulkan compatibility. It appears + // that some GPU drivers do not support 24-bit images for Vulkan + req_comp = option.preserve_channels ? 0 : 4; + int bits = 8; + int pixel_type = TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE; + + // It is possible that the image we want to load is a 16bit per channel image + // We are going to attempt to load it as 16bit per channel, and if it worked, + // set the image data accordingly. We are casting the returned pointer into + // unsigned char, because we are representing "bytes". But we are updating + // the Image metadata to signal that this image uses 2 bytes (16bits) per + // channel: + if (stbi_is_16_bit_from_memory(bytes, size)) { + data = reinterpret_cast( + stbi_load_16_from_memory(bytes, size, &w, &h, &comp, req_comp)); + if (data) { + bits = 16; + pixel_type = TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT; + } + } + + // at this point, if data is still NULL, it means that the image wasn't + // 16bit per channel, we are going to load it as a normal 8bit per channel + // image as we used to do: + // if image cannot be decoded, ignore parsing and keep it by its path + // don't break in this case + // FIXME we should only enter this function if the image is embedded. If + // image->uri references + // an image file, it should be left as it is. Image loading should not be + // mandatory (to support other formats) + if (!data) data = stbi_load_from_memory(bytes, size, &w, &h, &comp, req_comp); + if (!data) { + // NOTE: you can use `warn` instead of `err` + if (err) { + (*err) += + "Unknown image format. STB cannot decode image data for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + "\".\n"; + } + return false; + } + + if ((w < 1) || (h < 1)) { + stbi_image_free(data); + if (err) { + (*err) += "Invalid image data for image[" + std::to_string(image_idx) + + "] name = \"" + image->name + "\"\n"; + } + return false; + } + + if (req_width > 0) { + if (req_width != w) { + stbi_image_free(data); + if (err) { + (*err) += "Image width mismatch for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\"\n"; + } + return false; + } + } + + if (req_height > 0) { + if (req_height != h) { + stbi_image_free(data); + if (err) { + (*err) += "Image height mismatch. for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\"\n"; + } + return false; + } + } + + if (req_comp != 0) { + // loaded data has `req_comp` channels(components) + comp = req_comp; + } + + image->width = w; + image->height = h; + image->component = comp; + image->bits = bits; + image->pixel_type = pixel_type; + image->image.resize(static_cast(w * h * comp) * size_t(bits / 8)); + std::copy(data, data + w * h * comp * (bits / 8), image->image.begin()); + stbi_image_free(data); + + return true; +} +#endif + +void TinyGLTF::SetImageWriter(WriteImageDataFunction func, void *user_data) { + WriteImageData = func; + write_image_user_data_ = user_data; +} + +#ifndef TINYGLTF_NO_STB_IMAGE_WRITE +static void WriteToMemory_stbi(void *context, void *data, int size) { + std::vector *buffer = + reinterpret_cast *>(context); + + unsigned char *pData = reinterpret_cast(data); + + buffer->insert(buffer->end(), pData, pData + size); +} + +bool WriteImageData(const std::string *basepath, const std::string *filename, + const Image *image, bool embedImages, + const URICallbacks *uri_cb, std::string *out_uri, + void *fsPtr) { + const std::string ext = GetFilePathExtension(*filename); + + // Write image to temporary buffer + std::string header; + std::vector data; + + if (ext == "png") { + if ((image->bits != 8) || + (image->pixel_type != TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE)) { + // Unsupported pixel format + return false; + } + + if (!stbi_write_png_to_func(WriteToMemory_stbi, &data, image->width, + image->height, image->component, + &image->image[0], 0)) { + return false; + } + header = "data:image/png;base64,"; + } else if (ext == "jpg") { + if (!stbi_write_jpg_to_func(WriteToMemory_stbi, &data, image->width, + image->height, image->component, + &image->image[0], 100)) { + return false; + } + header = "data:image/jpeg;base64,"; + } else if (ext == "bmp") { + if (!stbi_write_bmp_to_func(WriteToMemory_stbi, &data, image->width, + image->height, image->component, + &image->image[0])) { + return false; + } + header = "data:image/bmp;base64,"; + } else if (!embedImages) { + // Error: can't output requested format to file + return false; + } + + if (embedImages) { + // Embed base64-encoded image into URI + if (data.size()) { + *out_uri = header + base64_encode(&data[0], + static_cast(data.size())); + } else { + // Throw error? + } + } else { + // Write image to disc + FsCallbacks *fs = reinterpret_cast(fsPtr); + if ((fs != nullptr) && (fs->WriteWholeFile != nullptr)) { + const std::string imagefilepath = JoinPath(*basepath, *filename); + std::string writeError; + if (!fs->WriteWholeFile(&writeError, imagefilepath, data, + fs->user_data)) { + // Could not write image file to disc; Throw error ? + return false; + } + } else { + // Throw error? + } + if (uri_cb->encode) { + if (!uri_cb->encode(*filename, "image", out_uri, uri_cb->user_data)) { + return false; + } + } else { + *out_uri = *filename; + } + } + + return true; +} +#endif + +void TinyGLTF::SetURICallbacks(URICallbacks callbacks) { + assert(callbacks.decode); + if (callbacks.decode) { + uri_cb = callbacks; + } +} + +void TinyGLTF::SetFsCallbacks(FsCallbacks callbacks) { fs = callbacks; } + +#ifdef _WIN32 +static inline std::wstring UTF8ToWchar(const std::string &str) { + int wstr_size = + MultiByteToWideChar(CP_UTF8, 0, str.data(), (int)str.size(), nullptr, 0); + std::wstring wstr((size_t)wstr_size, 0); + MultiByteToWideChar(CP_UTF8, 0, str.data(), (int)str.size(), &wstr[0], + (int)wstr.size()); + return wstr; +} + +static inline std::string WcharToUTF8(const std::wstring &wstr) { + int str_size = WideCharToMultiByte(CP_UTF8, 0, wstr.data(), (int)wstr.size(), + nullptr, 0, nullptr, nullptr); + std::string str((size_t)str_size, 0); + WideCharToMultiByte(CP_UTF8, 0, wstr.data(), (int)wstr.size(), &str[0], + (int)str.size(), nullptr, nullptr); + return str; +} +#endif + +#ifndef TINYGLTF_NO_FS +// Default implementations of filesystem functions + +bool FileExists(const std::string &abs_filename, void *) { + bool ret; +#ifdef TINYGLTF_ANDROID_LOAD_FROM_ASSETS + if (asset_manager) { + AAsset *asset = AAssetManager_open(asset_manager, abs_filename.c_str(), + AASSET_MODE_STREAMING); + if (!asset) { + return false; + } + AAsset_close(asset); + ret = true; + } else { + return false; + } +#else +#ifdef _WIN32 +#if defined(_MSC_VER) || defined(_LIBCPP_VERSION) + + // First check if a file is a directory. + DWORD result = GetFileAttributesW(UTF8ToWchar(abs_filename).c_str()); + if (result == INVALID_FILE_ATTRIBUTES) { + return false; + } + if (result & FILE_ATTRIBUTE_DIRECTORY) { + return false; + } + + FILE *fp = nullptr; + errno_t err = _wfopen_s(&fp, UTF8ToWchar(abs_filename).c_str(), L"rb"); + if (err != 0) { + return false; + } +#elif defined(__GLIBCXX__) + FILE *fp = fopen(abs_filename.c_str(), "rb"); + if (!fp) { + return false; + } +#else + // TODO: is_directory check + FILE *fp = nullptr; + errno_t err = fopen_s(&fp, abs_filename.c_str(), "rb"); + if (err != 0) { + return false; + } +#endif + +#else + struct stat sb; + if (stat(abs_filename.c_str(), &sb)) { + return false; + } + if (S_ISDIR(sb.st_mode)) { + return false; + } + + FILE *fp = fopen(abs_filename.c_str(), "rb"); +#endif + if (fp) { + ret = true; + fclose(fp); + } else { + ret = false; + } +#endif + + return ret; +} + +std::string ExpandFilePath(const std::string &filepath, void *) { + // https://github.com/syoyo/tinygltf/issues/368 + // + // No file path expansion in built-in FS function anymore, since glTF URI + // should not contain tilde('~') and environment variables, and for security + // reason(`wordexp`). + // + // Users need to supply `base_dir`(in `LoadASCIIFromString`, + // `LoadBinaryFromMemory`) in expanded absolute path. + + return filepath; + +#if 0 +#ifdef _WIN32 + // Assume input `filepath` is encoded in UTF-8 + std::wstring wfilepath = UTF8ToWchar(filepath); + DWORD wlen = ExpandEnvironmentStringsW(wfilepath.c_str(), nullptr, 0); + wchar_t *wstr = new wchar_t[wlen]; + ExpandEnvironmentStringsW(wfilepath.c_str(), wstr, wlen); + + std::wstring ws(wstr); + delete[] wstr; + return WcharToUTF8(ws); + +#else + +#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR) || \ + defined(__ANDROID__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__) + // no expansion + std::string s = filepath; +#else + std::string s; + wordexp_t p; + + if (filepath.empty()) { + return ""; + } + + // Quote the string to keep any spaces in filepath intact. + std::string quoted_path = "\"" + filepath + "\""; + // char** w; + int ret = wordexp(quoted_path.c_str(), &p, 0); + if (ret) { + // err + s = filepath; + return s; + } + + // Use first element only. + if (p.we_wordv) { + s = std::string(p.we_wordv[0]); + wordfree(&p); + } else { + s = filepath; + } + +#endif + + return s; +#endif +#endif +} + +bool GetFileSizeInBytes(size_t *filesize_out, std::string *err, + const std::string &filepath, void *userdata) { + (void)userdata; + +#ifdef TINYGLTF_ANDROID_LOAD_FROM_ASSETS + if (asset_manager) { + AAsset *asset = AAssetManager_open(asset_manager, filepath.c_str(), + AASSET_MODE_STREAMING); + if (!asset) { + if (err) { + (*err) += "File open error : " + filepath + "\n"; + } + return false; + } + size_t size = AAsset_getLength(asset); + + if (size == 0) { + if (err) { + (*err) += "Invalid file size : " + filepath + + " (does the path point to a directory?)"; + } + return false; + } + + return true; + } else { + if (err) { + (*err) += "No asset manager specified : " + filepath + "\n"; + } + return false; + } +#else +#ifdef _WIN32 +#if defined(__GLIBCXX__) // mingw + int file_descriptor = + _wopen(UTF8ToWchar(filepath).c_str(), _O_RDONLY | _O_BINARY); + __gnu_cxx::stdio_filebuf wfile_buf(file_descriptor, std::ios_base::in); + std::istream f(&wfile_buf); +#elif defined(_MSC_VER) || defined(_LIBCPP_VERSION) + // For libcxx, assume _LIBCPP_HAS_OPEN_WITH_WCHAR is defined to accept + // `wchar_t *` + std::ifstream f(UTF8ToWchar(filepath).c_str(), std::ifstream::binary); +#else + // Unknown compiler/runtime + std::ifstream f(filepath.c_str(), std::ifstream::binary); +#endif +#else + std::ifstream f(filepath.c_str(), std::ifstream::binary); +#endif + if (!f) { + if (err) { + (*err) += "File open error : " + filepath + "\n"; + } + return false; + } + + // For directory(and pipe?), peek() will fail(Posix gnustl/libc++ only) + f.peek(); + if (!f) { + if (err) { + (*err) += + "File read error. Maybe empty file or invalid file : " + filepath + + "\n"; + } + return false; + } + + f.seekg(0, f.end); + size_t sz = static_cast(f.tellg()); + + // std::cout << "sz = " << sz << "\n"; + f.seekg(0, f.beg); + + if (int64_t(sz) < 0) { + if (err) { + (*err) += "Invalid file size : " + filepath + + " (does the path point to a directory?)"; + } + return false; + } else if (sz == 0) { + if (err) { + (*err) += "File is empty : " + filepath + "\n"; + } + return false; + } else if (sz >= (std::numeric_limits::max)()) { + if (err) { + (*err) += "Invalid file size : " + filepath + "\n"; + } + return false; + } + + (*filesize_out) = sz; + return true; +#endif +} + +bool ReadWholeFile(std::vector *out, std::string *err, + const std::string &filepath, void *) { +#ifdef TINYGLTF_ANDROID_LOAD_FROM_ASSETS + if (asset_manager) { + AAsset *asset = AAssetManager_open(asset_manager, filepath.c_str(), + AASSET_MODE_STREAMING); + if (!asset) { + if (err) { + (*err) += "File open error : " + filepath + "\n"; + } + return false; + } + size_t size = AAsset_getLength(asset); + if (size == 0) { + if (err) { + (*err) += "Invalid file size : " + filepath + + " (does the path point to a directory?)"; + } + return false; + } + out->resize(size); + AAsset_read(asset, reinterpret_cast(&out->at(0)), size); + AAsset_close(asset); + return true; + } else { + if (err) { + (*err) += "No asset manager specified : " + filepath + "\n"; + } + return false; + } +#else +#ifdef _WIN32 +#if defined(__GLIBCXX__) // mingw + int file_descriptor = + _wopen(UTF8ToWchar(filepath).c_str(), _O_RDONLY | _O_BINARY); + __gnu_cxx::stdio_filebuf wfile_buf(file_descriptor, std::ios_base::in); + std::istream f(&wfile_buf); +#elif defined(_MSC_VER) || defined(_LIBCPP_VERSION) + // For libcxx, assume _LIBCPP_HAS_OPEN_WITH_WCHAR is defined to accept + // `wchar_t *` + std::ifstream f(UTF8ToWchar(filepath).c_str(), std::ifstream::binary); +#else + // Unknown compiler/runtime + std::ifstream f(filepath.c_str(), std::ifstream::binary); +#endif +#else + std::ifstream f(filepath.c_str(), std::ifstream::binary); +#endif + if (!f) { + if (err) { + (*err) += "File open error : " + filepath + "\n"; + } + return false; + } + + // For directory(and pipe?), peek() will fail(Posix gnustl/libc++ only) + f.peek(); + if (!f) { + if (err) { + (*err) += + "File read error. Maybe empty file or invalid file : " + filepath + + "\n"; + } + return false; + } + + f.seekg(0, f.end); + size_t sz = static_cast(f.tellg()); + + // std::cout << "sz = " << sz << "\n"; + f.seekg(0, f.beg); + + if (int64_t(sz) < 0) { + if (err) { + (*err) += "Invalid file size : " + filepath + + " (does the path point to a directory?)"; + } + return false; + } else if (sz == 0) { + if (err) { + (*err) += "File is empty : " + filepath + "\n"; + } + return false; + } else if (sz >= (std::numeric_limits::max)()) { + if (err) { + (*err) += "Invalid file size : " + filepath + "\n"; + } + return false; + } + + out->resize(sz); + f.read(reinterpret_cast(&out->at(0)), + static_cast(sz)); + + return true; +#endif +} + +bool WriteWholeFile(std::string *err, const std::string &filepath, + const std::vector &contents, void *) { +#ifdef _WIN32 +#if defined(__GLIBCXX__) // mingw + int file_descriptor = _wopen(UTF8ToWchar(filepath).c_str(), + _O_CREAT | _O_WRONLY | _O_TRUNC | _O_BINARY); + __gnu_cxx::stdio_filebuf wfile_buf( + file_descriptor, std::ios_base::out | std::ios_base::binary); + std::ostream f(&wfile_buf); +#elif defined(_MSC_VER) + std::ofstream f(UTF8ToWchar(filepath).c_str(), std::ofstream::binary); +#else // clang? + std::ofstream f(filepath.c_str(), std::ofstream::binary); +#endif +#else + std::ofstream f(filepath.c_str(), std::ofstream::binary); +#endif + if (!f) { + if (err) { + (*err) += "File open error for writing : " + filepath + "\n"; + } + return false; + } + + f.write(reinterpret_cast(&contents.at(0)), + static_cast(contents.size())); + if (!f) { + if (err) { + (*err) += "File write error: " + filepath + "\n"; + } + return false; + } + + return true; +} + +#endif // TINYGLTF_NO_FS + +static std::string MimeToExt(const std::string &mimeType) { + if (mimeType == "image/jpeg") { + return "jpg"; + } else if (mimeType == "image/png") { + return "png"; + } else if (mimeType == "image/bmp") { + return "bmp"; + } else if (mimeType == "image/gif") { + return "gif"; + } + + return ""; +} + +static bool UpdateImageObject(const Image &image, std::string &baseDir, + int index, bool embedImages, + const URICallbacks *uri_cb, + WriteImageDataFunction *WriteImageData, + void *user_data, std::string *out_uri) { + std::string filename; + std::string ext; + // If image has uri, use it as a filename + if (image.uri.size()) { + std::string decoded_uri; + if (!uri_cb->decode(image.uri, &decoded_uri, uri_cb->user_data)) { + // A decode failure results in a failure to write the gltf. + return false; + } + filename = GetBaseFilename(decoded_uri); + ext = GetFilePathExtension(filename); + } else if (image.bufferView != -1) { + // If there's no URI and the data exists in a buffer, + // don't change properties or write images + } else if (image.name.size()) { + ext = MimeToExt(image.mimeType); + // Otherwise use name as filename + filename = image.name + "." + ext; + } else { + ext = MimeToExt(image.mimeType); + // Fallback to index of image as filename + filename = std::to_string(index) + "." + ext; + } + + // If callback is set and image data exists, modify image data object. If + // image data does not exist, this is not considered a failure and the + // original uri should be maintained. + bool imageWritten = false; + if (*WriteImageData != nullptr && !filename.empty() && !image.image.empty()) { + imageWritten = (*WriteImageData)(&baseDir, &filename, &image, embedImages, + uri_cb, out_uri, user_data); + if (!imageWritten) { + return false; + } + } + + // Use the original uri if the image was not written. + if (!imageWritten) { + *out_uri = image.uri; + } + + return true; +} + +bool IsDataURI(const std::string &in) { + std::string header = "data:application/octet-stream;base64,"; + if (in.find(header) == 0) { + return true; + } + + header = "data:image/jpeg;base64,"; + if (in.find(header) == 0) { + return true; + } + + header = "data:image/png;base64,"; + if (in.find(header) == 0) { + return true; + } + + header = "data:image/bmp;base64,"; + if (in.find(header) == 0) { + return true; + } + + header = "data:image/gif;base64,"; + if (in.find(header) == 0) { + return true; + } + + header = "data:text/plain;base64,"; + if (in.find(header) == 0) { + return true; + } + + header = "data:application/gltf-buffer;base64,"; + if (in.find(header) == 0) { + return true; + } + + return false; +} + +bool DecodeDataURI(std::vector *out, std::string &mime_type, + const std::string &in, size_t reqBytes, bool checkSize) { + std::string header = "data:application/octet-stream;base64,"; + std::string data; + if (in.find(header) == 0) { + data = base64_decode(in.substr(header.size())); // cut mime string. + } + + if (data.empty()) { + header = "data:image/jpeg;base64,"; + if (in.find(header) == 0) { + mime_type = "image/jpeg"; + data = base64_decode(in.substr(header.size())); // cut mime string. + } + } + + if (data.empty()) { + header = "data:image/png;base64,"; + if (in.find(header) == 0) { + mime_type = "image/png"; + data = base64_decode(in.substr(header.size())); // cut mime string. + } + } + + if (data.empty()) { + header = "data:image/bmp;base64,"; + if (in.find(header) == 0) { + mime_type = "image/bmp"; + data = base64_decode(in.substr(header.size())); // cut mime string. + } + } + + if (data.empty()) { + header = "data:image/gif;base64,"; + if (in.find(header) == 0) { + mime_type = "image/gif"; + data = base64_decode(in.substr(header.size())); // cut mime string. + } + } + + if (data.empty()) { + header = "data:text/plain;base64,"; + if (in.find(header) == 0) { + mime_type = "text/plain"; + data = base64_decode(in.substr(header.size())); + } + } + + if (data.empty()) { + header = "data:application/gltf-buffer;base64,"; + if (in.find(header) == 0) { + data = base64_decode(in.substr(header.size())); + } + } + + // TODO(syoyo): Allow empty buffer? #229 + if (data.empty()) { + return false; + } + + if (checkSize) { + if (data.size() != reqBytes) { + return false; + } + out->resize(reqBytes); + } else { + out->resize(data.size()); + } + std::copy(data.begin(), data.end(), out->begin()); + return true; +} + +namespace detail { +bool GetInt(const detail::json &o, int &val) { +#ifdef TINYGLTF_USE_RAPIDJSON + if (!o.IsDouble()) { + if (o.IsInt()) { + val = o.GetInt(); + return true; + } else if (o.IsUint()) { + val = static_cast(o.GetUint()); + return true; + } else if (o.IsInt64()) { + val = static_cast(o.GetInt64()); + return true; + } else if (o.IsUint64()) { + val = static_cast(o.GetUint64()); + return true; + } + } + + return false; +#else + auto type = o.type(); + + if ((type == detail::json::value_t::number_integer) || + (type == detail::json::value_t::number_unsigned)) { + val = static_cast(o.get()); + return true; + } + + return false; +#endif +} + +#ifdef TINYGLTF_USE_RAPIDJSON +bool GetDouble(const detail::json &o, double &val) { + if (o.IsDouble()) { + val = o.GetDouble(); + return true; + } + + return false; +} +#endif + +bool GetNumber(const detail::json &o, double &val) { +#ifdef TINYGLTF_USE_RAPIDJSON + if (o.IsNumber()) { + val = o.GetDouble(); + return true; + } + + return false; +#else + if (o.is_number()) { + val = o.get(); + return true; + } + + return false; +#endif +} + +bool GetString(const detail::json &o, std::string &val) { +#ifdef TINYGLTF_USE_RAPIDJSON + if (o.IsString()) { + val = o.GetString(); + return true; + } + + return false; +#else + if (o.type() == detail::json::value_t::string) { + val = o.get(); + return true; + } + + return false; +#endif +} + +bool IsArray(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.IsArray(); +#else + return o.is_array(); +#endif +} + +detail::json_const_array_iterator ArrayBegin(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.Begin(); +#else + return o.begin(); +#endif +} + +detail::json_const_array_iterator ArrayEnd(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.End(); +#else + return o.end(); +#endif +} + +bool IsObject(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.IsObject(); +#else + return o.is_object(); +#endif +} + +detail::json_const_iterator ObjectBegin(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.MemberBegin(); +#else + return o.begin(); +#endif +} + +detail::json_const_iterator ObjectEnd(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.MemberEnd(); +#else + return o.end(); +#endif +} + +// Making this a const char* results in a pointer to a temporary when +// TINYGLTF_USE_RAPIDJSON is off. +std::string GetKey(detail::json_const_iterator &it) { +#ifdef TINYGLTF_USE_RAPIDJSON + return it->name.GetString(); +#else + return it.key().c_str(); +#endif +} + +bool FindMember(const detail::json &o, const char *member, + detail::json_const_iterator &it) { +#ifdef TINYGLTF_USE_RAPIDJSON + if (!o.IsObject()) { + return false; + } + it = o.FindMember(member); + return it != o.MemberEnd(); +#else + it = o.find(member); + return it != o.end(); +#endif +} + +bool FindMember(detail::json &o, const char *member, + detail::json_iterator &it) { +#ifdef TINYGLTF_USE_RAPIDJSON + if (!o.IsObject()) { + return false; + } + it = o.FindMember(member); + return it != o.MemberEnd(); +#else + it = o.find(member); + return it != o.end(); +#endif +} + +void Erase(detail::json &o, detail::json_iterator &it) { +#ifdef TINYGLTF_USE_RAPIDJSON + o.EraseMember(it); +#else + o.erase(it); +#endif +} + +bool IsEmpty(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.ObjectEmpty(); +#else + return o.empty(); +#endif +} + +const detail::json &GetValue(detail::json_const_iterator &it) { +#ifdef TINYGLTF_USE_RAPIDJSON + return it->value; +#else + return it.value(); +#endif +} + +detail::json &GetValue(detail::json_iterator &it) { +#ifdef TINYGLTF_USE_RAPIDJSON + return it->value; +#else + return it.value(); +#endif +} + +std::string JsonToString(const detail::json &o, int spacing = -1) { +#ifdef TINYGLTF_USE_RAPIDJSON + using namespace rapidjson; + StringBuffer buffer; + if (spacing == -1) { + Writer writer(buffer); + // TODO: Better error handling. + // https://github.com/syoyo/tinygltf/issues/332 + if (!o.Accept(writer)) { + return "tiny_gltf::JsonToString() failed rapidjson conversion"; + } + } else { + PrettyWriter writer(buffer); + writer.SetIndent(' ', uint32_t(spacing)); + if (!o.Accept(writer)) { + return "tiny_gltf::JsonToString() failed rapidjson conversion"; + } + } + return buffer.GetString(); +#else + return o.dump(spacing); +#endif +} + +} // namespace detail + +static bool ParseJsonAsValue(Value *ret, const detail::json &o) { + Value val{}; +#ifdef TINYGLTF_USE_RAPIDJSON + using rapidjson::Type; + switch (o.GetType()) { + case Type::kObjectType: { + Value::Object value_object; + for (auto it = o.MemberBegin(); it != o.MemberEnd(); ++it) { + Value entry; + ParseJsonAsValue(&entry, it->value); + if (entry.Type() != NULL_TYPE) + value_object.emplace(detail::GetKey(it), std::move(entry)); + } + if (value_object.size() > 0) val = Value(std::move(value_object)); + } break; + case Type::kArrayType: { + Value::Array value_array; + value_array.reserve(o.Size()); + for (auto it = o.Begin(); it != o.End(); ++it) { + Value entry; + ParseJsonAsValue(&entry, *it); + if (entry.Type() != NULL_TYPE) + value_array.emplace_back(std::move(entry)); + } + if (value_array.size() > 0) val = Value(std::move(value_array)); + } break; + case Type::kStringType: + val = Value(std::string(o.GetString())); + break; + case Type::kFalseType: + case Type::kTrueType: + val = Value(o.GetBool()); + break; + case Type::kNumberType: + if (!o.IsDouble()) { + int i = 0; + detail::GetInt(o, i); + val = Value(i); + } else { + double d = 0.0; + detail::GetDouble(o, d); + val = Value(d); + } + break; + case Type::kNullType: + break; + // all types are covered, so no `case default` + } +#else + switch (o.type()) { + case detail::json::value_t::object: { + Value::Object value_object; + for (auto it = o.begin(); it != o.end(); it++) { + Value entry; + ParseJsonAsValue(&entry, it.value()); + if (entry.Type() != NULL_TYPE) + value_object.emplace(it.key(), std::move(entry)); + } + if (value_object.size() > 0) val = Value(std::move(value_object)); + } break; + case detail::json::value_t::array: { + Value::Array value_array; + value_array.reserve(o.size()); + for (auto it = o.begin(); it != o.end(); it++) { + Value entry; + ParseJsonAsValue(&entry, it.value()); + if (entry.Type() != NULL_TYPE) + value_array.emplace_back(std::move(entry)); + } + if (value_array.size() > 0) val = Value(std::move(value_array)); + } break; + case detail::json::value_t::string: + val = Value(o.get()); + break; + case detail::json::value_t::boolean: + val = Value(o.get()); + break; + case detail::json::value_t::number_integer: + case detail::json::value_t::number_unsigned: + val = Value(static_cast(o.get())); + break; + case detail::json::value_t::number_float: + val = Value(o.get()); + break; + case detail::json::value_t::null: + case detail::json::value_t::discarded: + case detail::json::value_t::binary: + // default: + break; + } +#endif + const bool isNotNull = val.Type() != NULL_TYPE; + + if (ret) *ret = std::move(val); + + return isNotNull; +} + +static bool ParseExtrasProperty(Value *ret, const detail::json &o) { + detail::json_const_iterator it; + if (!detail::FindMember(o, "extras", it)) { + return false; + } + + return ParseJsonAsValue(ret, detail::GetValue(it)); +} + +static bool ParseBooleanProperty(bool *ret, std::string *err, + const detail::json &o, + const std::string &property, + const bool required, + const std::string &parent_node = "") { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + auto &value = detail::GetValue(it); + + bool isBoolean; + bool boolValue = false; +#ifdef TINYGLTF_USE_RAPIDJSON + isBoolean = value.IsBool(); + if (isBoolean) { + boolValue = value.GetBool(); + } +#else + isBoolean = value.is_boolean(); + if (isBoolean) { + boolValue = value.get(); + } +#endif + if (!isBoolean) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not a bool type.\n"; + } + } + return false; + } + + if (ret) { + (*ret) = boolValue; + } + + return true; +} + +static bool ParseIntegerProperty(int *ret, std::string *err, + const detail::json &o, + const std::string &property, + const bool required, + const std::string &parent_node = "") { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + int intValue; + bool isInt = detail::GetInt(detail::GetValue(it), intValue); + if (!isInt) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not an integer type.\n"; + } + } + return false; + } + + if (ret) { + (*ret) = intValue; + } + + return true; +} + +static bool ParseUnsignedProperty(size_t *ret, std::string *err, + const detail::json &o, + const std::string &property, + const bool required, + const std::string &parent_node = "") { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + auto &value = detail::GetValue(it); + + size_t uValue = 0; + bool isUValue; +#ifdef TINYGLTF_USE_RAPIDJSON + isUValue = false; + if (value.IsUint()) { + uValue = value.GetUint(); + isUValue = true; + } else if (value.IsUint64()) { + uValue = value.GetUint64(); + isUValue = true; + } +#else + isUValue = value.is_number_unsigned(); + if (isUValue) { + uValue = value.get(); + } +#endif + if (!isUValue) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not a positive integer.\n"; + } + } + return false; + } + + if (ret) { + (*ret) = uValue; + } + + return true; +} + +static bool ParseNumberProperty(double *ret, std::string *err, + const detail::json &o, + const std::string &property, + const bool required, + const std::string &parent_node = "") { + detail::json_const_iterator it; + + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + double numberValue; + bool isNumber = detail::GetNumber(detail::GetValue(it), numberValue); + + if (!isNumber) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not a number type.\n"; + } + } + return false; + } + + if (ret) { + (*ret) = numberValue; + } + + return true; +} + +static bool ParseNumberArrayProperty(std::vector *ret, std::string *err, + const detail::json &o, + const std::string &property, bool required, + const std::string &parent_node = "") { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + if (!detail::IsArray(detail::GetValue(it))) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not an array"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + ret->clear(); + auto end = detail::ArrayEnd(detail::GetValue(it)); + for (auto i = detail::ArrayBegin(detail::GetValue(it)); i != end; ++i) { + double numberValue; + const bool isNumber = detail::GetNumber(*i, numberValue); + if (!isNumber) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not a number.\n"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + ret->push_back(numberValue); + } + + return true; +} + +static bool ParseIntegerArrayProperty(std::vector *ret, std::string *err, + const detail::json &o, + const std::string &property, + bool required, + const std::string &parent_node = "") { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + if (!detail::IsArray(detail::GetValue(it))) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not an array"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + + ret->clear(); + auto end = detail::ArrayEnd(detail::GetValue(it)); + for (auto i = detail::ArrayBegin(detail::GetValue(it)); i != end; ++i) { + int numberValue; + bool isNumber = detail::GetInt(*i, numberValue); + if (!isNumber) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not an integer type.\n"; + if (!parent_node.empty()) { + (*err) += " in " + parent_node; + } + (*err) += ".\n"; + } + } + return false; + } + ret->push_back(numberValue); + } + + return true; +} + +static bool ParseStringProperty( + std::string *ret, std::string *err, const detail::json &o, + const std::string &property, bool required, + const std::string &parent_node = std::string()) { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing"; + if (parent_node.empty()) { + (*err) += ".\n"; + } else { + (*err) += " in `" + parent_node + "'.\n"; + } + } + } + return false; + } + + std::string strValue; + if (!detail::GetString(detail::GetValue(it), strValue)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not a string type.\n"; + } + } + return false; + } + + if (ret) { + (*ret) = std::move(strValue); + } + + return true; +} + +static bool ParseStringIntegerProperty(std::map *ret, + std::string *err, const detail::json &o, + const std::string &property, + bool required, + const std::string &parent = "") { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + if (!parent.empty()) { + (*err) += + "'" + property + "' property is missing in " + parent + ".\n"; + } else { + (*err) += "'" + property + "' property is missing.\n"; + } + } + } + return false; + } + + const detail::json &dict = detail::GetValue(it); + + // Make sure we are dealing with an object / dictionary. + if (!detail::IsObject(dict)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not an object.\n"; + } + } + return false; + } + + ret->clear(); + + detail::json_const_iterator dictIt(detail::ObjectBegin(dict)); + detail::json_const_iterator dictItEnd(detail::ObjectEnd(dict)); + + for (; dictIt != dictItEnd; ++dictIt) { + int intVal; + if (!detail::GetInt(detail::GetValue(dictIt), intVal)) { + if (required) { + if (err) { + (*err) += "'" + property + "' value is not an integer type.\n"; + } + } + return false; + } + + // Insert into the list. + (*ret)[detail::GetKey(dictIt)] = intVal; + } + return true; +} + +static bool ParseJSONProperty(std::map *ret, + std::string *err, const detail::json &o, + const std::string &property, bool required) { + detail::json_const_iterator it; + if (!detail::FindMember(o, property.c_str(), it)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is missing. \n'"; + } + } + return false; + } + + const detail::json &obj = detail::GetValue(it); + + if (!detail::IsObject(obj)) { + if (required) { + if (err) { + (*err) += "'" + property + "' property is not a JSON object.\n"; + } + } + return false; + } + + ret->clear(); + + detail::json_const_iterator it2(detail::ObjectBegin(obj)); + detail::json_const_iterator itEnd(detail::ObjectEnd(obj)); + for (; it2 != itEnd; ++it2) { + double numVal; + if (detail::GetNumber(detail::GetValue(it2), numVal)) + ret->emplace(std::string(detail::GetKey(it2)), numVal); + } + + return true; +} + +static bool ParseParameterProperty(Parameter *param, std::string *err, + const detail::json &o, + const std::string &prop, bool required) { + // A parameter value can either be a string or an array of either a boolean or + // a number. Booleans of any kind aren't supported here. Granted, it + // complicates the Parameter structure and breaks it semantically in the sense + // that the client probably works off the assumption that if the string is + // empty the vector is used, etc. Would a tagged union work? + if (ParseStringProperty(¶m->string_value, err, o, prop, false)) { + // Found string property. + return true; + } else if (ParseNumberArrayProperty(¶m->number_array, err, o, prop, + false)) { + // Found a number array. + return true; + } else if (ParseNumberProperty(¶m->number_value, err, o, prop, false)) { + param->has_number_value = true; + return true; + } else if (ParseJSONProperty(¶m->json_double_value, err, o, prop, + false)) { + return true; + } else if (ParseBooleanProperty(¶m->bool_value, err, o, prop, false)) { + return true; + } else { + if (required) { + if (err) { + (*err) += "parameter must be a string or number / number array.\n"; + } + } + return false; + } +} + +static bool ParseExtensionsProperty(ExtensionMap *ret, std::string *err, + const detail::json &o) { + (void)err; + + detail::json_const_iterator it; + if (!detail::FindMember(o, "extensions", it)) { + return false; + } + + auto &obj = detail::GetValue(it); + if (!detail::IsObject(obj)) { + return false; + } + ExtensionMap extensions; + detail::json_const_iterator extIt = + detail::ObjectBegin(obj); // it.value().begin(); + detail::json_const_iterator extEnd = detail::ObjectEnd(obj); + for (; extIt != extEnd; ++extIt) { + auto &itObj = detail::GetValue(extIt); + if (!detail::IsObject(itObj)) continue; + std::string key(detail::GetKey(extIt)); + if (!ParseJsonAsValue(&extensions[key], itObj)) { + if (!key.empty()) { + // create empty object so that an extension object is still of type + // object + extensions[key] = Value{Value::Object{}}; + } + } + } + if (ret) { + (*ret) = std::move(extensions); + } + return true; +} + +template +static bool ParseExtrasAndExtensions(GltfType *target, std::string *err, + const detail::json &o, + bool store_json_strings) { + ParseExtensionsProperty(&target->extensions, err, o); + ParseExtrasProperty(&target->extras, o); + + if (store_json_strings) { + { + detail::json_const_iterator it; + if (detail::FindMember(o, "extensions", it)) { + target->extensions_json_string = + detail::JsonToString(detail::GetValue(it)); + } + } + { + detail::json_const_iterator it; + if (detail::FindMember(o, "extras", it)) { + target->extras_json_string = detail::JsonToString(detail::GetValue(it)); + } + } + } + return true; +} + +static bool ParseAsset(Asset *asset, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseStringProperty(&asset->version, err, o, "version", true, "Asset"); + ParseStringProperty(&asset->generator, err, o, "generator", false, "Asset"); + ParseStringProperty(&asset->minVersion, err, o, "minVersion", false, "Asset"); + ParseStringProperty(&asset->copyright, err, o, "copyright", false, "Asset"); + + ParseExtrasAndExtensions(asset, err, o, + store_original_json_for_extras_and_extensions); + return true; +} + +static bool ParseImage(Image *image, const int image_idx, std::string *err, + std::string *warn, const detail::json &o, + bool store_original_json_for_extras_and_extensions, + const std::string &basedir, const size_t max_file_size, + FsCallbacks *fs, const URICallbacks *uri_cb, + LoadImageDataFunction *LoadImageData = nullptr, + void *load_image_user_data = nullptr) { + // A glTF image must either reference a bufferView or an image uri + + // schema says oneOf [`bufferView`, `uri`] + // TODO(syoyo): Check the type of each parameters. + detail::json_const_iterator it; + bool hasBufferView = detail::FindMember(o, "bufferView", it); + bool hasURI = detail::FindMember(o, "uri", it); + + ParseStringProperty(&image->name, err, o, "name", false); + + if (hasBufferView && hasURI) { + // Should not both defined. + if (err) { + (*err) += + "Only one of `bufferView` or `uri` should be defined, but both are " + "defined for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + "\"\n"; + } + return false; + } + + if (!hasBufferView && !hasURI) { + if (err) { + (*err) += "Neither required `bufferView` nor `uri` defined for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\"\n"; + } + return false; + } + + ParseExtrasAndExtensions(image, err, o, + store_original_json_for_extras_and_extensions); + + if (hasBufferView) { + int bufferView = -1; + if (!ParseIntegerProperty(&bufferView, err, o, "bufferView", true)) { + if (err) { + (*err) += "Failed to parse `bufferView` for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\"\n"; + } + return false; + } + + std::string mime_type; + ParseStringProperty(&mime_type, err, o, "mimeType", false); + + int width = 0; + ParseIntegerProperty(&width, err, o, "width", false); + + int height = 0; + ParseIntegerProperty(&height, err, o, "height", false); + + // Just only save some information here. Loading actual image data from + // bufferView is done after this `ParseImage` function. + image->bufferView = bufferView; + image->mimeType = mime_type; + image->width = width; + image->height = height; + + return true; + } + + // Parse URI & Load image data. + + std::string uri; + std::string tmp_err; + if (!ParseStringProperty(&uri, &tmp_err, o, "uri", true)) { + if (err) { + (*err) += "Failed to parse `uri` for image[" + std::to_string(image_idx) + + "] name = \"" + image->name + "\".\n"; + } + return false; + } + + std::vector img; + + if (IsDataURI(uri)) { + if (!DecodeDataURI(&img, image->mimeType, uri, 0, false)) { + if (err) { + (*err) += "Failed to decode 'uri' for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\"\n"; + } + return false; + } + } else { + // Assume external file + // Keep texture path (for textures that cannot be decoded) + image->uri = uri; +#ifdef TINYGLTF_NO_EXTERNAL_IMAGE + return true; +#else + std::string decoded_uri; + if (!uri_cb->decode(uri, &decoded_uri, uri_cb->user_data)) { + if (warn) { + (*warn) += "Failed to decode 'uri' for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\"\n"; + } + + // Image loading failure is not critical to overall gltf loading. + return true; + } + + if (!LoadExternalFile(&img, err, warn, decoded_uri, basedir, + /* required */ false, /* required bytes */ 0, + /* checksize */ false, + /* max file size */ max_file_size, fs)) { + if (warn) { + (*warn) += "Failed to load external 'uri' for image[" + + std::to_string(image_idx) + "] name = \"" + decoded_uri + + "\"\n"; + } + // If the image cannot be loaded, keep uri as image->uri. + return true; + } + + if (img.empty()) { + if (warn) { + (*warn) += "Image data is empty for image[" + + std::to_string(image_idx) + "] name = \"" + image->name + + "\" \n"; + } + return false; + } +#endif + } + + if (*LoadImageData == nullptr) { + if (err) { + (*err) += "No LoadImageData callback specified.\n"; + } + return false; + } + return (*LoadImageData)(image, image_idx, err, warn, 0, 0, &img.at(0), + static_cast(img.size()), load_image_user_data); +} + +static bool ParseTexture(Texture *texture, std::string *err, + const detail::json &o, + bool store_original_json_for_extras_and_extensions, + const std::string &basedir) { + (void)basedir; + int sampler = -1; + int source = -1; + ParseIntegerProperty(&sampler, err, o, "sampler", false); + + ParseIntegerProperty(&source, err, o, "source", false); + + texture->sampler = sampler; + texture->source = source; + + ParseExtrasAndExtensions(texture, err, o, + store_original_json_for_extras_and_extensions); + + ParseStringProperty(&texture->name, err, o, "name", false); + + return true; +} + +static bool ParseTextureInfo( + TextureInfo *texinfo, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (texinfo == nullptr) { + return false; + } + + if (!ParseIntegerProperty(&texinfo->index, err, o, "index", + /* required */ true, "TextureInfo")) { + return false; + } + + ParseIntegerProperty(&texinfo->texCoord, err, o, "texCoord", false); + + ParseExtrasAndExtensions(texinfo, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseNormalTextureInfo( + NormalTextureInfo *texinfo, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (texinfo == nullptr) { + return false; + } + + if (!ParseIntegerProperty(&texinfo->index, err, o, "index", + /* required */ true, "NormalTextureInfo")) { + return false; + } + + ParseIntegerProperty(&texinfo->texCoord, err, o, "texCoord", false); + ParseNumberProperty(&texinfo->scale, err, o, "scale", false); + + ParseExtrasAndExtensions(texinfo, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseOcclusionTextureInfo( + OcclusionTextureInfo *texinfo, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (texinfo == nullptr) { + return false; + } + + if (!ParseIntegerProperty(&texinfo->index, err, o, "index", + /* required */ true, "NormalTextureInfo")) { + return false; + } + + ParseIntegerProperty(&texinfo->texCoord, err, o, "texCoord", false); + ParseNumberProperty(&texinfo->strength, err, o, "strength", false); + + ParseExtrasAndExtensions(texinfo, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseBuffer(Buffer *buffer, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions, + FsCallbacks *fs, const URICallbacks *uri_cb, + const std::string &basedir, + const size_t max_buffer_size, bool is_binary = false, + const unsigned char *bin_data = nullptr, + size_t bin_size = 0) { + size_t byteLength; + if (!ParseUnsignedProperty(&byteLength, err, o, "byteLength", true, + "Buffer")) { + return false; + } + + // In glTF 2.0, uri is not mandatory anymore + buffer->uri.clear(); + ParseStringProperty(&buffer->uri, err, o, "uri", false, "Buffer"); + + // having an empty uri for a non embedded image should not be valid + if (!is_binary && buffer->uri.empty()) { + if (err) { + (*err) += "'uri' is missing from non binary glTF file buffer.\n"; + } + } + + detail::json_const_iterator type; + if (detail::FindMember(o, "type", type)) { + std::string typeStr; + if (detail::GetString(detail::GetValue(type), typeStr)) { + if (typeStr.compare("arraybuffer") == 0) { + // buffer.type = "arraybuffer"; + } + } + } + + if (is_binary) { + // Still binary glTF accepts external dataURI. + if (!buffer->uri.empty()) { + // First try embedded data URI. + if (IsDataURI(buffer->uri)) { + std::string mime_type; + if (!DecodeDataURI(&buffer->data, mime_type, buffer->uri, byteLength, + true)) { + if (err) { + (*err) += + "Failed to decode 'uri' : " + buffer->uri + " in Buffer\n"; + } + return false; + } + } else { + // External .bin file. + std::string decoded_uri; + if (!uri_cb->decode(buffer->uri, &decoded_uri, uri_cb->user_data)) { + return false; + } + if (!LoadExternalFile(&buffer->data, err, /* warn */ nullptr, + decoded_uri, basedir, /* required */ true, + byteLength, /* checkSize */ true, + /* max_file_size */ max_buffer_size, fs)) { + return false; + } + } + } else { + // load data from (embedded) binary data + + if ((bin_size == 0) || (bin_data == nullptr)) { + if (err) { + (*err) += + "Invalid binary data in `Buffer', or GLB with empty BIN chunk.\n"; + } + return false; + } + + if (byteLength > bin_size) { + if (err) { + std::stringstream ss; + ss << "Invalid `byteLength'. Must be equal or less than binary size: " + "`byteLength' = " + << byteLength << ", binary size = " << bin_size << std::endl; + (*err) += ss.str(); + } + return false; + } + + // Read buffer data + buffer->data.resize(static_cast(byteLength)); + memcpy(&(buffer->data.at(0)), bin_data, static_cast(byteLength)); + } + + } else { + if (IsDataURI(buffer->uri)) { + std::string mime_type; + if (!DecodeDataURI(&buffer->data, mime_type, buffer->uri, byteLength, + true)) { + if (err) { + (*err) += "Failed to decode 'uri' : " + buffer->uri + " in Buffer\n"; + } + return false; + } + } else { + // Assume external .bin file. + std::string decoded_uri; + if (!uri_cb->decode(buffer->uri, &decoded_uri, uri_cb->user_data)) { + return false; + } + if (!LoadExternalFile(&buffer->data, err, /* warn */ nullptr, decoded_uri, + basedir, /* required */ true, byteLength, + /* checkSize */ true, + /* max file size */ max_buffer_size, fs)) { + return false; + } + } + } + + ParseStringProperty(&buffer->name, err, o, "name", false); + + ParseExtrasAndExtensions(buffer, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseBufferView( + BufferView *bufferView, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + int buffer = -1; + if (!ParseIntegerProperty(&buffer, err, o, "buffer", true, "BufferView")) { + return false; + } + + size_t byteOffset = 0; + ParseUnsignedProperty(&byteOffset, err, o, "byteOffset", false); + + size_t byteLength = 1; + if (!ParseUnsignedProperty(&byteLength, err, o, "byteLength", true, + "BufferView")) { + return false; + } + + size_t byteStride = 0; + if (!ParseUnsignedProperty(&byteStride, err, o, "byteStride", false)) { + // Spec says: When byteStride of referenced bufferView is not defined, it + // means that accessor elements are tightly packed, i.e., effective stride + // equals the size of the element. + // We cannot determine the actual byteStride until Accessor are parsed, thus + // set 0(= tightly packed) here(as done in OpenGL's VertexAttribPoiner) + byteStride = 0; + } + + if ((byteStride > 252) || ((byteStride % 4) != 0)) { + if (err) { + std::stringstream ss; + ss << "Invalid `byteStride' value. `byteStride' must be the multiple of " + "4 : " + << byteStride << std::endl; + + (*err) += ss.str(); + } + return false; + } + + int target = 0; + ParseIntegerProperty(&target, err, o, "target", false); + if ((target == TINYGLTF_TARGET_ARRAY_BUFFER) || + (target == TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER)) { + // OK + } else { + target = 0; + } + bufferView->target = target; + + ParseStringProperty(&bufferView->name, err, o, "name", false); + + ParseExtrasAndExtensions(bufferView, err, o, + store_original_json_for_extras_and_extensions); + + bufferView->buffer = buffer; + bufferView->byteOffset = byteOffset; + bufferView->byteLength = byteLength; + bufferView->byteStride = byteStride; + return true; +} + +static bool ParseSparseAccessor( + Accessor::Sparse *sparse, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + sparse->isSparse = true; + + int count = 0; + if (!ParseIntegerProperty(&count, err, o, "count", true, "SparseAccessor")) { + return false; + } + + ParseExtrasAndExtensions(sparse, err, o, + store_original_json_for_extras_and_extensions); + + detail::json_const_iterator indices_iterator; + detail::json_const_iterator values_iterator; + if (!detail::FindMember(o, "indices", indices_iterator)) { + (*err) = "the sparse object of this accessor doesn't have indices"; + return false; + } + + if (!detail::FindMember(o, "values", values_iterator)) { + (*err) = "the sparse object of this accessor doesn't have values"; + return false; + } + + const detail::json &indices_obj = detail::GetValue(indices_iterator); + const detail::json &values_obj = detail::GetValue(values_iterator); + + int indices_buffer_view = 0, component_type = 0; + size_t indices_byte_offset = 0; + if (!ParseIntegerProperty(&indices_buffer_view, err, indices_obj, + "bufferView", true, "SparseAccessor")) { + return false; + } + ParseUnsignedProperty(&indices_byte_offset, err, indices_obj, "byteOffset", + false); + if (!ParseIntegerProperty(&component_type, err, indices_obj, "componentType", + true, "SparseAccessor")) { + return false; + } + + int values_buffer_view = 0; + size_t values_byte_offset = 0; + if (!ParseIntegerProperty(&values_buffer_view, err, values_obj, "bufferView", + true, "SparseAccessor")) { + return false; + } + ParseUnsignedProperty(&values_byte_offset, err, values_obj, "byteOffset", + false); + + sparse->count = count; + sparse->indices.bufferView = indices_buffer_view; + sparse->indices.byteOffset = indices_byte_offset; + sparse->indices.componentType = component_type; + ParseExtrasAndExtensions(&sparse->indices, err, indices_obj, + store_original_json_for_extras_and_extensions); + + sparse->values.bufferView = values_buffer_view; + sparse->values.byteOffset = values_byte_offset; + ParseExtrasAndExtensions(&sparse->values, err, values_obj, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseAccessor(Accessor *accessor, std::string *err, + const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + int bufferView = -1; + ParseIntegerProperty(&bufferView, err, o, "bufferView", false, "Accessor"); + + size_t byteOffset = 0; + ParseUnsignedProperty(&byteOffset, err, o, "byteOffset", false, "Accessor"); + + bool normalized = false; + ParseBooleanProperty(&normalized, err, o, "normalized", false, "Accessor"); + + size_t componentType = 0; + if (!ParseUnsignedProperty(&componentType, err, o, "componentType", true, + "Accessor")) { + return false; + } + + size_t count = 0; + if (!ParseUnsignedProperty(&count, err, o, "count", true, "Accessor")) { + return false; + } + + std::string type; + if (!ParseStringProperty(&type, err, o, "type", true, "Accessor")) { + return false; + } + + if (type.compare("SCALAR") == 0) { + accessor->type = TINYGLTF_TYPE_SCALAR; + } else if (type.compare("VEC2") == 0) { + accessor->type = TINYGLTF_TYPE_VEC2; + } else if (type.compare("VEC3") == 0) { + accessor->type = TINYGLTF_TYPE_VEC3; + } else if (type.compare("VEC4") == 0) { + accessor->type = TINYGLTF_TYPE_VEC4; + } else if (type.compare("MAT2") == 0) { + accessor->type = TINYGLTF_TYPE_MAT2; + } else if (type.compare("MAT3") == 0) { + accessor->type = TINYGLTF_TYPE_MAT3; + } else if (type.compare("MAT4") == 0) { + accessor->type = TINYGLTF_TYPE_MAT4; + } else { + std::stringstream ss; + ss << "Unsupported `type` for accessor object. Got \"" << type << "\"\n"; + if (err) { + (*err) += ss.str(); + } + return false; + } + + ParseStringProperty(&accessor->name, err, o, "name", false); + + accessor->minValues.clear(); + accessor->maxValues.clear(); + ParseNumberArrayProperty(&accessor->minValues, err, o, "min", false, + "Accessor"); + + ParseNumberArrayProperty(&accessor->maxValues, err, o, "max", false, + "Accessor"); + + accessor->count = count; + accessor->bufferView = bufferView; + accessor->byteOffset = byteOffset; + accessor->normalized = normalized; + { + if (componentType >= TINYGLTF_COMPONENT_TYPE_BYTE && + componentType <= TINYGLTF_COMPONENT_TYPE_DOUBLE) { + // OK + accessor->componentType = int(componentType); + } else { + std::stringstream ss; + ss << "Invalid `componentType` in accessor. Got " << componentType + << "\n"; + if (err) { + (*err) += ss.str(); + } + return false; + } + } + + ParseExtrasAndExtensions(accessor, err, o, + store_original_json_for_extras_and_extensions); + + // check if accessor has a "sparse" object: + detail::json_const_iterator iterator; + if (detail::FindMember(o, "sparse", iterator)) { + // here this accessor has a "sparse" subobject + return ParseSparseAccessor(&accessor->sparse, err, + detail::GetValue(iterator), + store_original_json_for_extras_and_extensions); + } + + return true; +} + +#ifdef TINYGLTF_ENABLE_DRACO + +static void DecodeIndexBuffer(draco::Mesh *mesh, size_t componentSize, + std::vector &outBuffer) { + if (componentSize == 4) { + assert(sizeof(mesh->face(draco::FaceIndex(0))[0]) == componentSize); + memcpy(outBuffer.data(), &mesh->face(draco::FaceIndex(0))[0], + outBuffer.size()); + } else { + size_t faceStride = componentSize * 3; + for (draco::FaceIndex f(0); f < mesh->num_faces(); ++f) { + const draco::Mesh::Face &face = mesh->face(f); + if (componentSize == 2) { + uint16_t indices[3] = {(uint16_t)face[0].value(), + (uint16_t)face[1].value(), + (uint16_t)face[2].value()}; + memcpy(outBuffer.data() + f.value() * faceStride, &indices[0], + faceStride); + } else { + uint8_t indices[3] = {(uint8_t)face[0].value(), + (uint8_t)face[1].value(), + (uint8_t)face[2].value()}; + memcpy(outBuffer.data() + f.value() * faceStride, &indices[0], + faceStride); + } + } + } +} + +template +static bool GetAttributeForAllPoints(draco::Mesh *mesh, + const draco::PointAttribute *pAttribute, + std::vector &outBuffer) { + size_t byteOffset = 0; + T values[4] = {0, 0, 0, 0}; + for (draco::PointIndex i(0); i < mesh->num_points(); ++i) { + const draco::AttributeValueIndex val_index = pAttribute->mapped_index(i); + if (!pAttribute->ConvertValue(val_index, pAttribute->num_components(), + values)) + return false; + + memcpy(outBuffer.data() + byteOffset, &values[0], + sizeof(T) * pAttribute->num_components()); + byteOffset += sizeof(T) * pAttribute->num_components(); + } + + return true; +} + +static bool GetAttributeForAllPoints(uint32_t componentType, draco::Mesh *mesh, + const draco::PointAttribute *pAttribute, + std::vector &outBuffer) { + bool decodeResult = false; + switch (componentType) { + case TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_BYTE: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_SHORT: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_INT: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_FLOAT: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + case TINYGLTF_COMPONENT_TYPE_DOUBLE: + decodeResult = + GetAttributeForAllPoints(mesh, pAttribute, outBuffer); + break; + default: + return false; + } + + return decodeResult; +} + +static bool ParseDracoExtension(Primitive *primitive, Model *model, + std::string *err, std::string *warn, + const Value &dracoExtensionValue, + ParseStrictness strictness) { + (void)err; + auto bufferViewValue = dracoExtensionValue.Get("bufferView"); + if (!bufferViewValue.IsInt()) return false; + auto attributesValue = dracoExtensionValue.Get("attributes"); + if (!attributesValue.IsObject()) return false; + + auto attributesObject = attributesValue.Get(); + int bufferView = bufferViewValue.Get(); + + BufferView &view = model->bufferViews[bufferView]; + Buffer &buffer = model->buffers[view.buffer]; + // BufferView has already been decoded + if (view.dracoDecoded) return true; + view.dracoDecoded = true; + + const char *bufferViewData = + reinterpret_cast(buffer.data.data() + view.byteOffset); + size_t bufferViewSize = view.byteLength; + + // decode draco + draco::DecoderBuffer decoderBuffer; + decoderBuffer.Init(bufferViewData, bufferViewSize); + draco::Decoder decoder; + auto decodeResult = decoder.DecodeMeshFromBuffer(&decoderBuffer); + if (!decodeResult.ok()) { + return false; + } + const std::unique_ptr &mesh = decodeResult.value(); + + // create new bufferView for indices + if (primitive->indices >= 0) { + if (strictness == ParseStrictness::Permissive) { + const draco::PointIndex::ValueType numPoint = mesh->num_points(); + // handle the situation where the stored component type does not match the + // required type for the actual number of stored points + int supposedComponentType = TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE; + if (numPoint < static_cast( + std::numeric_limits::max())) { + supposedComponentType = TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE; + } else if ( + numPoint < static_cast( + std::numeric_limits::max())) { + supposedComponentType = TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT; + } else { + supposedComponentType = TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT; + } + + if (supposedComponentType > model->accessors[primitive->indices].componentType) { + if (warn) { + (*warn) += + "GLTF component type " + std::to_string(model->accessors[primitive->indices].componentType) + + " is not sufficient for number of stored points," + " treating as " + std::to_string(supposedComponentType) + "\n"; + } + model->accessors[primitive->indices].componentType = supposedComponentType; + } + } + + int32_t componentSize = GetComponentSizeInBytes( + model->accessors[primitive->indices].componentType); + Buffer decodedIndexBuffer; + decodedIndexBuffer.data.resize(mesh->num_faces() * 3 * componentSize); + + DecodeIndexBuffer(mesh.get(), componentSize, decodedIndexBuffer.data); + + model->buffers.emplace_back(std::move(decodedIndexBuffer)); + + BufferView decodedIndexBufferView; + decodedIndexBufferView.buffer = int(model->buffers.size() - 1); + decodedIndexBufferView.byteLength = + int(mesh->num_faces() * 3 * componentSize); + decodedIndexBufferView.byteOffset = 0; + decodedIndexBufferView.byteStride = 0; + decodedIndexBufferView.target = TINYGLTF_TARGET_ARRAY_BUFFER; + model->bufferViews.emplace_back(std::move(decodedIndexBufferView)); + + model->accessors[primitive->indices].bufferView = + int(model->bufferViews.size() - 1); + model->accessors[primitive->indices].count = int(mesh->num_faces() * 3); + } + + for (const auto &attribute : attributesObject) { + if (!attribute.second.IsInt()) return false; + auto primitiveAttribute = primitive->attributes.find(attribute.first); + if (primitiveAttribute == primitive->attributes.end()) return false; + + int dracoAttributeIndex = attribute.second.Get(); + const auto pAttribute = mesh->GetAttributeByUniqueId(dracoAttributeIndex); + const auto componentType = + model->accessors[primitiveAttribute->second].componentType; + + // Create a new buffer for this decoded buffer + Buffer decodedBuffer; + size_t bufferSize = mesh->num_points() * pAttribute->num_components() * + GetComponentSizeInBytes(componentType); + decodedBuffer.data.resize(bufferSize); + + if (!GetAttributeForAllPoints(componentType, mesh.get(), pAttribute, + decodedBuffer.data)) + return false; + + model->buffers.emplace_back(std::move(decodedBuffer)); + + BufferView decodedBufferView; + decodedBufferView.buffer = int(model->buffers.size() - 1); + decodedBufferView.byteLength = bufferSize; + decodedBufferView.byteOffset = pAttribute->byte_offset(); + decodedBufferView.byteStride = pAttribute->byte_stride(); + decodedBufferView.target = primitive->indices >= 0 + ? TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER + : TINYGLTF_TARGET_ARRAY_BUFFER; + model->bufferViews.emplace_back(std::move(decodedBufferView)); + + model->accessors[primitiveAttribute->second].bufferView = + int(model->bufferViews.size() - 1); + model->accessors[primitiveAttribute->second].count = + int(mesh->num_points()); + } + + return true; +} +#endif + +static bool ParsePrimitive(Primitive *primitive, Model *model, + std::string *err, std::string *warn, + const detail::json &o, + bool store_original_json_for_extras_and_extensions, + ParseStrictness strictness) { + int material = -1; + ParseIntegerProperty(&material, err, o, "material", false); + primitive->material = material; + + int mode = TINYGLTF_MODE_TRIANGLES; + ParseIntegerProperty(&mode, err, o, "mode", false); + primitive->mode = mode; // Why only triangles were supported ? + + int indices = -1; + ParseIntegerProperty(&indices, err, o, "indices", false); + primitive->indices = indices; + if (!ParseStringIntegerProperty(&primitive->attributes, err, o, "attributes", + true, "Primitive")) { + return false; + } + + // Look for morph targets + detail::json_const_iterator targetsObject; + if (detail::FindMember(o, "targets", targetsObject) && + detail::IsArray(detail::GetValue(targetsObject))) { + auto targetsObjectEnd = detail::ArrayEnd(detail::GetValue(targetsObject)); + for (detail::json_const_array_iterator i = + detail::ArrayBegin(detail::GetValue(targetsObject)); + i != targetsObjectEnd; ++i) { + std::map targetAttribues; + + const detail::json &dict = *i; + if (detail::IsObject(dict)) { + detail::json_const_iterator dictIt(detail::ObjectBegin(dict)); + detail::json_const_iterator dictItEnd(detail::ObjectEnd(dict)); + + for (; dictIt != dictItEnd; ++dictIt) { + int iVal; + if (detail::GetInt(detail::GetValue(dictIt), iVal)) + targetAttribues[detail::GetKey(dictIt)] = iVal; + } + primitive->targets.emplace_back(std::move(targetAttribues)); + } + } + } + + ParseExtrasAndExtensions(primitive, err, o, + store_original_json_for_extras_and_extensions); + +#ifdef TINYGLTF_ENABLE_DRACO + auto dracoExtension = + primitive->extensions.find("KHR_draco_mesh_compression"); + if (dracoExtension != primitive->extensions.end()) { + ParseDracoExtension(primitive, model, err, warn, dracoExtension->second, strictness); + } +#else + (void)model; + (void)warn; + (void)strictness; +#endif + + return true; +} + +static bool ParseMesh(Mesh *mesh, Model *model, + std::string *err, std::string *warn, + const detail::json &o, + bool store_original_json_for_extras_and_extensions, + ParseStrictness strictness) { + ParseStringProperty(&mesh->name, err, o, "name", false); + + mesh->primitives.clear(); + detail::json_const_iterator primObject; + if (detail::FindMember(o, "primitives", primObject) && + detail::IsArray(detail::GetValue(primObject))) { + detail::json_const_array_iterator primEnd = + detail::ArrayEnd(detail::GetValue(primObject)); + for (detail::json_const_array_iterator i = + detail::ArrayBegin(detail::GetValue(primObject)); + i != primEnd; ++i) { + Primitive primitive; + if (ParsePrimitive(&primitive, model, err, warn, *i, + store_original_json_for_extras_and_extensions, + strictness)) { + // Only add the primitive if the parsing succeeds. + mesh->primitives.emplace_back(std::move(primitive)); + } + } + } + + // Should probably check if has targets and if dimensions fit + ParseNumberArrayProperty(&mesh->weights, err, o, "weights", false); + + ParseExtrasAndExtensions(mesh, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseNode(Node *node, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseStringProperty(&node->name, err, o, "name", false); + + int skin = -1; + ParseIntegerProperty(&skin, err, o, "skin", false); + node->skin = skin; + + // Matrix and T/R/S are exclusive + if (!ParseNumberArrayProperty(&node->matrix, err, o, "matrix", false)) { + ParseNumberArrayProperty(&node->rotation, err, o, "rotation", false); + ParseNumberArrayProperty(&node->scale, err, o, "scale", false); + ParseNumberArrayProperty(&node->translation, err, o, "translation", false); + } + + int camera = -1; + ParseIntegerProperty(&camera, err, o, "camera", false); + node->camera = camera; + + int mesh = -1; + ParseIntegerProperty(&mesh, err, o, "mesh", false); + node->mesh = mesh; + + node->children.clear(); + ParseIntegerArrayProperty(&node->children, err, o, "children", false); + + ParseNumberArrayProperty(&node->weights, err, o, "weights", false); + + ParseExtrasAndExtensions(node, err, o, + store_original_json_for_extras_and_extensions); + + // KHR_lights_punctual: parse light source reference + int light = -1; + if (node->extensions.count("KHR_lights_punctual") != 0) { + auto const &light_ext = node->extensions["KHR_lights_punctual"]; + if (light_ext.Has("light")) { + light = light_ext.Get("light").GetNumberAsInt(); + } else { + if (err) { + *err += + "Node has extension KHR_lights_punctual, but does not reference " + "a light source.\n"; + } + return false; + } + } + node->light = light; + + // KHR_audio: parse audio source reference + int emitter = -1; + if (node->extensions.count("KHR_audio") != 0) { + auto const &audio_ext = node->extensions["KHR_audio"]; + if (audio_ext.Has("emitter")) { + emitter = audio_ext.Get("emitter").GetNumberAsInt(); + } else { + if (err) { + *err += + "Node has extension KHR_audio, but does not reference " + "a audio emitter.\n"; + } + return false; + } + } + node->emitter = emitter; + + return true; +} + +static bool ParseScene(Scene *scene, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseStringProperty(&scene->name, err, o, "name", false); + ParseIntegerArrayProperty(&scene->nodes, err, o, "nodes", false); + + ParseExtrasAndExtensions(scene, err, o, + store_original_json_for_extras_and_extensions); + + // Parse KHR_audio global emitters + if (scene->extensions.count("KHR_audio") != 0) { + auto const &audio_ext = scene->extensions["KHR_audio"]; + if (audio_ext.Has("emitters")) { + auto emittersArr = audio_ext.Get("emitters"); + for (size_t i = 0; i < emittersArr.ArrayLen(); ++i) { + scene->audioEmitters.emplace_back(emittersArr.Get(i).GetNumberAsInt()); + } + } else { + if (err) { + *err += + "Node has extension KHR_audio, but does not reference " + "a audio emitter.\n"; + } + return false; + } + } + + return true; +} + +static bool ParsePbrMetallicRoughness( + PbrMetallicRoughness *pbr, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (pbr == nullptr) { + return false; + } + + std::vector baseColorFactor; + if (ParseNumberArrayProperty(&baseColorFactor, err, o, "baseColorFactor", + /* required */ false)) { + if (baseColorFactor.size() != 4) { + if (err) { + (*err) += + "Array length of `baseColorFactor` parameter in " + "pbrMetallicRoughness must be 4, but got " + + std::to_string(baseColorFactor.size()) + "\n"; + } + return false; + } + pbr->baseColorFactor = baseColorFactor; + } + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "baseColorTexture", it)) { + ParseTextureInfo(&pbr->baseColorTexture, err, detail::GetValue(it), + store_original_json_for_extras_and_extensions); + } + } + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "metallicRoughnessTexture", it)) { + ParseTextureInfo(&pbr->metallicRoughnessTexture, err, + detail::GetValue(it), + store_original_json_for_extras_and_extensions); + } + } + + ParseNumberProperty(&pbr->metallicFactor, err, o, "metallicFactor", false); + ParseNumberProperty(&pbr->roughnessFactor, err, o, "roughnessFactor", false); + + ParseExtrasAndExtensions(pbr, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseMaterial(Material *material, std::string *err, std::string *warn, + const detail::json &o, + bool store_original_json_for_extras_and_extensions, + ParseStrictness strictness) { + ParseStringProperty(&material->name, err, o, "name", /* required */ false); + + if (ParseNumberArrayProperty(&material->emissiveFactor, err, o, + "emissiveFactor", + /* required */ false)) { + if (strictness==ParseStrictness::Permissive && material->emissiveFactor.size() == 4) { + if (warn) { + (*warn) += + "Array length of `emissiveFactor` parameter in " + "material must be 3, but got 4\n"; + } + material->emissiveFactor.resize(3); + } + else if (material->emissiveFactor.size() != 3) { + if (err) { + (*err) += + "Array length of `emissiveFactor` parameter in " + "material must be 3, but got " + + std::to_string(material->emissiveFactor.size()) + "\n"; + } + return false; + } + } else { + // fill with default values + material->emissiveFactor = {0.0, 0.0, 0.0}; + } + + ParseStringProperty(&material->alphaMode, err, o, "alphaMode", + /* required */ false); + ParseNumberProperty(&material->alphaCutoff, err, o, "alphaCutoff", + /* required */ false); + ParseBooleanProperty(&material->doubleSided, err, o, "doubleSided", + /* required */ false); + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "pbrMetallicRoughness", it)) { + ParsePbrMetallicRoughness(&material->pbrMetallicRoughness, err, + detail::GetValue(it), + store_original_json_for_extras_and_extensions); + } + } + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "normalTexture", it)) { + ParseNormalTextureInfo(&material->normalTexture, err, + detail::GetValue(it), + store_original_json_for_extras_and_extensions); + } + } + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "occlusionTexture", it)) { + ParseOcclusionTextureInfo(&material->occlusionTexture, err, + detail::GetValue(it), + store_original_json_for_extras_and_extensions); + } + } + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "emissiveTexture", it)) { + ParseTextureInfo(&material->emissiveTexture, err, detail::GetValue(it), + store_original_json_for_extras_and_extensions); + } + } + + // Old code path. For backward compatibility, we still store material values + // as Parameter. This will create duplicated information for + // example(pbrMetallicRoughness), but should be negligible in terms of memory + // consumption. + // TODO(syoyo): Remove in the next major release. + material->values.clear(); + material->additionalValues.clear(); + + detail::json_const_iterator it(detail::ObjectBegin(o)); + detail::json_const_iterator itEnd(detail::ObjectEnd(o)); + + for (; it != itEnd; ++it) { + std::string key(detail::GetKey(it)); + if (key == "pbrMetallicRoughness") { + if (detail::IsObject(detail::GetValue(it))) { + const detail::json &values_object = detail::GetValue(it); + + detail::json_const_iterator itVal(detail::ObjectBegin(values_object)); + detail::json_const_iterator itValEnd(detail::ObjectEnd(values_object)); + + for (; itVal != itValEnd; ++itVal) { + Parameter param; + if (ParseParameterProperty(¶m, err, values_object, + detail::GetKey(itVal), false)) { + material->values.emplace(detail::GetKey(itVal), std::move(param)); + } + } + } + } else if (key == "extensions" || key == "extras") { + // done later, skip, otherwise poorly parsed contents will be saved in the + // parametermap and serialized again later + } else { + Parameter param; + if (ParseParameterProperty(¶m, err, o, key, false)) { + // names of materials have already been parsed. Putting it in this map + // doesn't correctly reflect the glTF specification + if (key != "name") + material->additionalValues.emplace(std::move(key), std::move(param)); + } + } + } + + material->extensions.clear(); // Note(agnat): Why? + ParseExtrasAndExtensions(material, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseAnimationChannel( + AnimationChannel *channel, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + int samplerIndex = -1; + int targetIndex = -1; + if (!ParseIntegerProperty(&samplerIndex, err, o, "sampler", true, + "AnimationChannel")) { + if (err) { + (*err) += "`sampler` field is missing in animation channels\n"; + } + return false; + } + + detail::json_const_iterator targetIt; + if (detail::FindMember(o, "target", targetIt) && + detail::IsObject(detail::GetValue(targetIt))) { + const detail::json &target_object = detail::GetValue(targetIt); + + ParseIntegerProperty(&targetIndex, err, target_object, "node", false); + + if (!ParseStringProperty(&channel->target_path, err, target_object, "path", + true)) { + if (err) { + (*err) += "`path` field is missing in animation.channels.target\n"; + } + return false; + } + ParseExtensionsProperty(&channel->target_extensions, err, target_object); + ParseExtrasProperty(&channel->target_extras, target_object); + if (store_original_json_for_extras_and_extensions) { + { + detail::json_const_iterator it; + if (detail::FindMember(target_object, "extensions", it)) { + channel->target_extensions_json_string = + detail::JsonToString(detail::GetValue(it)); + } + } + { + detail::json_const_iterator it; + if (detail::FindMember(target_object, "extras", it)) { + channel->target_extras_json_string = + detail::JsonToString(detail::GetValue(it)); + } + } + } + } + + channel->sampler = samplerIndex; + channel->target_node = targetIndex; + + ParseExtrasAndExtensions(channel, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseAnimation(Animation *animation, std::string *err, + const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + { + detail::json_const_iterator channelsIt; + if (detail::FindMember(o, "channels", channelsIt) && + detail::IsArray(detail::GetValue(channelsIt))) { + detail::json_const_array_iterator channelEnd = + detail::ArrayEnd(detail::GetValue(channelsIt)); + for (detail::json_const_array_iterator i = + detail::ArrayBegin(detail::GetValue(channelsIt)); + i != channelEnd; ++i) { + AnimationChannel channel; + if (ParseAnimationChannel( + &channel, err, *i, + store_original_json_for_extras_and_extensions)) { + // Only add the channel if the parsing succeeds. + animation->channels.emplace_back(std::move(channel)); + } + } + } + } + + { + detail::json_const_iterator samplerIt; + if (detail::FindMember(o, "samplers", samplerIt) && + detail::IsArray(detail::GetValue(samplerIt))) { + const detail::json &sampler_array = detail::GetValue(samplerIt); + + detail::json_const_array_iterator it = detail::ArrayBegin(sampler_array); + detail::json_const_array_iterator itEnd = detail::ArrayEnd(sampler_array); + + for (; it != itEnd; ++it) { + const detail::json &s = *it; + + AnimationSampler sampler; + int inputIndex = -1; + int outputIndex = -1; + if (!ParseIntegerProperty(&inputIndex, err, s, "input", true)) { + if (err) { + (*err) += "`input` field is missing in animation.sampler\n"; + } + return false; + } + ParseStringProperty(&sampler.interpolation, err, s, "interpolation", + false); + if (!ParseIntegerProperty(&outputIndex, err, s, "output", true)) { + if (err) { + (*err) += "`output` field is missing in animation.sampler\n"; + } + return false; + } + sampler.input = inputIndex; + sampler.output = outputIndex; + ParseExtrasAndExtensions(&sampler, err, o, + store_original_json_for_extras_and_extensions); + + animation->samplers.emplace_back(std::move(sampler)); + } + } + } + + ParseStringProperty(&animation->name, err, o, "name", false); + + ParseExtrasAndExtensions(animation, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseSampler(Sampler *sampler, std::string *err, + const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseStringProperty(&sampler->name, err, o, "name", false); + + int minFilter = -1; + int magFilter = -1; + int wrapS = TINYGLTF_TEXTURE_WRAP_REPEAT; + int wrapT = TINYGLTF_TEXTURE_WRAP_REPEAT; + // int wrapR = TINYGLTF_TEXTURE_WRAP_REPEAT; + ParseIntegerProperty(&minFilter, err, o, "minFilter", false); + ParseIntegerProperty(&magFilter, err, o, "magFilter", false); + ParseIntegerProperty(&wrapS, err, o, "wrapS", false); + ParseIntegerProperty(&wrapT, err, o, "wrapT", false); + // ParseIntegerProperty(&wrapR, err, o, "wrapR", false); // tinygltf + // extension + + // TODO(syoyo): Check the value is allowed one. + // (e.g. we allow 9728(NEAREST), but don't allow 9727) + + sampler->minFilter = minFilter; + sampler->magFilter = magFilter; + sampler->wrapS = wrapS; + sampler->wrapT = wrapT; + // sampler->wrapR = wrapR; + + ParseExtrasAndExtensions(sampler, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseSkin(Skin *skin, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseStringProperty(&skin->name, err, o, "name", false, "Skin"); + + std::vector joints; + if (!ParseIntegerArrayProperty(&joints, err, o, "joints", false, "Skin")) { + return false; + } + skin->joints = std::move(joints); + + int skeleton = -1; + ParseIntegerProperty(&skeleton, err, o, "skeleton", false, "Skin"); + skin->skeleton = skeleton; + + int invBind = -1; + ParseIntegerProperty(&invBind, err, o, "inverseBindMatrices", true, "Skin"); + skin->inverseBindMatrices = invBind; + + ParseExtrasAndExtensions(skin, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParsePerspectiveCamera( + PerspectiveCamera *camera, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + double yfov = 0.0; + if (!ParseNumberProperty(&yfov, err, o, "yfov", true, "OrthographicCamera")) { + return false; + } + + double znear = 0.0; + if (!ParseNumberProperty(&znear, err, o, "znear", true, + "PerspectiveCamera")) { + return false; + } + + double aspectRatio = 0.0; // = invalid + ParseNumberProperty(&aspectRatio, err, o, "aspectRatio", false, + "PerspectiveCamera"); + + double zfar = 0.0; // = invalid + ParseNumberProperty(&zfar, err, o, "zfar", false, "PerspectiveCamera"); + + camera->aspectRatio = aspectRatio; + camera->zfar = zfar; + camera->yfov = yfov; + camera->znear = znear; + + ParseExtrasAndExtensions(camera, err, o, + store_original_json_for_extras_and_extensions); + + // TODO(syoyo): Validate parameter values. + + return true; +} + +static bool ParseSpotLight(SpotLight *light, std::string *err, + const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseNumberProperty(&light->innerConeAngle, err, o, "innerConeAngle", false); + ParseNumberProperty(&light->outerConeAngle, err, o, "outerConeAngle", false); + + ParseExtrasAndExtensions(light, err, o, + store_original_json_for_extras_and_extensions); + + // TODO(syoyo): Validate parameter values. + + return true; +} + +static bool ParseOrthographicCamera( + OrthographicCamera *camera, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + double xmag = 0.0; + if (!ParseNumberProperty(&xmag, err, o, "xmag", true, "OrthographicCamera")) { + return false; + } + + double ymag = 0.0; + if (!ParseNumberProperty(&ymag, err, o, "ymag", true, "OrthographicCamera")) { + return false; + } + + double zfar = 0.0; + if (!ParseNumberProperty(&zfar, err, o, "zfar", true, "OrthographicCamera")) { + return false; + } + + double znear = 0.0; + if (!ParseNumberProperty(&znear, err, o, "znear", true, + "OrthographicCamera")) { + return false; + } + + ParseExtrasAndExtensions(camera, err, o, + store_original_json_for_extras_and_extensions); + + camera->xmag = xmag; + camera->ymag = ymag; + camera->zfar = zfar; + camera->znear = znear; + + // TODO(syoyo): Validate parameter values. + + return true; +} + +static bool ParseCamera(Camera *camera, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (!ParseStringProperty(&camera->type, err, o, "type", true, "Camera")) { + return false; + } + + if (camera->type.compare("orthographic") == 0) { + detail::json_const_iterator orthoIt; + if (!detail::FindMember(o, "orthographic", orthoIt)) { + if (err) { + std::stringstream ss; + ss << "Orthographic camera description not found." << std::endl; + (*err) += ss.str(); + } + return false; + } + + const detail::json &v = detail::GetValue(orthoIt); + if (!detail::IsObject(v)) { + if (err) { + std::stringstream ss; + ss << "\"orthographic\" is not a JSON object." << std::endl; + (*err) += ss.str(); + } + return false; + } + + if (!ParseOrthographicCamera( + &camera->orthographic, err, v, + store_original_json_for_extras_and_extensions)) { + return false; + } + } else if (camera->type.compare("perspective") == 0) { + detail::json_const_iterator perspIt; + if (!detail::FindMember(o, "perspective", perspIt)) { + if (err) { + std::stringstream ss; + ss << "Perspective camera description not found." << std::endl; + (*err) += ss.str(); + } + return false; + } + + const detail::json &v = detail::GetValue(perspIt); + if (!detail::IsObject(v)) { + if (err) { + std::stringstream ss; + ss << "\"perspective\" is not a JSON object." << std::endl; + (*err) += ss.str(); + } + return false; + } + + if (!ParsePerspectiveCamera( + &camera->perspective, err, v, + store_original_json_for_extras_and_extensions)) { + return false; + } + } else { + if (err) { + std::stringstream ss; + ss << "Invalid camera type: \"" << camera->type + << "\". Must be \"perspective\" or \"orthographic\"" << std::endl; + (*err) += ss.str(); + } + return false; + } + + ParseStringProperty(&camera->name, err, o, "name", false); + + ParseExtrasAndExtensions(camera, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseLight(Light *light, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (!ParseStringProperty(&light->type, err, o, "type", true)) { + return false; + } + + if (light->type == "spot") { + detail::json_const_iterator spotIt; + if (!detail::FindMember(o, "spot", spotIt)) { + if (err) { + std::stringstream ss; + ss << "Spot light description not found." << std::endl; + (*err) += ss.str(); + } + return false; + } + + const detail::json &v = detail::GetValue(spotIt); + if (!detail::IsObject(v)) { + if (err) { + std::stringstream ss; + ss << "\"spot\" is not a JSON object." << std::endl; + (*err) += ss.str(); + } + return false; + } + + if (!ParseSpotLight(&light->spot, err, v, + store_original_json_for_extras_and_extensions)) { + return false; + } + } + + ParseStringProperty(&light->name, err, o, "name", false); + ParseNumberArrayProperty(&light->color, err, o, "color", false); + ParseNumberProperty(&light->range, err, o, "range", false); + ParseNumberProperty(&light->intensity, err, o, "intensity", false); + + ParseExtrasAndExtensions(light, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParsePositionalEmitter( + PositionalEmitter *positional, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseNumberProperty(&positional->coneInnerAngle, err, o, "coneInnerAngle", + false); + ParseNumberProperty(&positional->coneOuterAngle, err, o, "coneOuterAngle", + false); + ParseNumberProperty(&positional->coneOuterGain, err, o, "coneOuterGain", + false); + ParseNumberProperty(&positional->maxDistance, err, o, "maxDistance", false); + ParseNumberProperty(&positional->refDistance, err, o, "refDistance", false); + ParseNumberProperty(&positional->rolloffFactor, err, o, "rolloffFactor", + false); + + ParseExtrasAndExtensions(positional, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseAudioEmitter( + AudioEmitter *emitter, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + if (!ParseStringProperty(&emitter->type, err, o, "type", true)) { + return false; + } + + if (emitter->type == "positional") { + detail::json_const_iterator positionalIt; + if (!detail::FindMember(o, "positional", positionalIt)) { + if (err) { + std::stringstream ss; + ss << "Positional emitter description not found." << std::endl; + (*err) += ss.str(); + } + return false; + } + + const detail::json &v = detail::GetValue(positionalIt); + if (!detail::IsObject(v)) { + if (err) { + std::stringstream ss; + ss << "\"positional\" is not a JSON object." << std::endl; + (*err) += ss.str(); + } + return false; + } + + if (!ParsePositionalEmitter( + &emitter->positional, err, v, + store_original_json_for_extras_and_extensions)) { + return false; + } + } + + ParseStringProperty(&emitter->name, err, o, "name", false); + ParseNumberProperty(&emitter->gain, err, o, "gain", false); + ParseBooleanProperty(&emitter->loop, err, o, "loop", false); + ParseBooleanProperty(&emitter->playing, err, o, "playing", false); + ParseStringProperty(&emitter->distanceModel, err, o, "distanceModel", false); + ParseIntegerProperty(&emitter->source, err, o, "source", true); + + ParseExtrasAndExtensions(emitter, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +static bool ParseAudioSource( + AudioSource *source, std::string *err, const detail::json &o, + bool store_original_json_for_extras_and_extensions) { + ParseStringProperty(&source->name, err, o, "name", false); + ParseStringProperty(&source->uri, err, o, "uri", false); + + if (source->uri.empty()) { + ParseIntegerProperty(&source->bufferView, err, o, "bufferView", true); + ParseStringProperty(&source->mimeType, err, o, "mimeType", true); + } + + ParseExtrasAndExtensions(source, err, o, + store_original_json_for_extras_and_extensions); + + return true; +} + +namespace detail { + +template +bool ForEachInArray(const detail::json &_v, const char *member, Callback &&cb) { + detail::json_const_iterator itm; + if (detail::FindMember(_v, member, itm) && + detail::IsArray(detail::GetValue(itm))) { + const detail::json &root = detail::GetValue(itm); + auto it = detail::ArrayBegin(root); + auto end = detail::ArrayEnd(root); + for (; it != end; ++it) { + if (!cb(*it)) return false; + } + } + return true; +}; + +} // end of namespace detail + +bool TinyGLTF::LoadFromString(Model *model, std::string *err, std::string *warn, + const char *json_str, + unsigned int json_str_length, + const std::string &base_dir, + unsigned int check_sections) { + if (json_str_length < 4) { + if (err) { + (*err) = "JSON string too short.\n"; + } + return false; + } + + detail::JsonDocument v; + +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || \ + defined(_CPPUNWIND)) && \ + !defined(TINYGLTF_NOEXCEPTION) + try { + detail::JsonParse(v, json_str, json_str_length, true); + + } catch (const std::exception &e) { + if (err) { + (*err) = e.what(); + } + return false; + } +#else + { + detail::JsonParse(v, json_str, json_str_length); + + if (!detail::IsObject(v)) { + // Assume parsing was failed. + if (err) { + (*err) = "Failed to parse JSON object\n"; + } + return false; + } + } +#endif + + if (!detail::IsObject(v)) { + // root is not an object. + if (err) { + (*err) = "Root element is not a JSON object\n"; + } + return false; + } + + { + bool version_found = false; + detail::json_const_iterator it; + if (detail::FindMember(v, "asset", it) && + detail::IsObject(detail::GetValue(it))) { + auto &itObj = detail::GetValue(it); + detail::json_const_iterator version_it; + std::string versionStr; + if (detail::FindMember(itObj, "version", version_it) && + detail::GetString(detail::GetValue(version_it), versionStr)) { + version_found = true; + } + } + if (version_found) { + // OK + } else if (check_sections & REQUIRE_VERSION) { + if (err) { + (*err) += "\"asset\" object not found in .gltf or not an object type\n"; + } + return false; + } + } + + // scene is not mandatory. + // FIXME Maybe a better way to handle it than removing the code + + auto IsArrayMemberPresent = [](const detail::json &_v, + const char *name) -> bool { + detail::json_const_iterator it; + return detail::FindMember(_v, name, it) && + detail::IsArray(detail::GetValue(it)); + }; + + { + if ((check_sections & REQUIRE_SCENES) && + !IsArrayMemberPresent(v, "scenes")) { + if (err) { + (*err) += "\"scenes\" object not found in .gltf or not an array type\n"; + } + return false; + } + } + + { + if ((check_sections & REQUIRE_NODES) && !IsArrayMemberPresent(v, "nodes")) { + if (err) { + (*err) += "\"nodes\" object not found in .gltf\n"; + } + return false; + } + } + + { + if ((check_sections & REQUIRE_ACCESSORS) && + !IsArrayMemberPresent(v, "accessors")) { + if (err) { + (*err) += "\"accessors\" object not found in .gltf\n"; + } + return false; + } + } + + { + if ((check_sections & REQUIRE_BUFFERS) && + !IsArrayMemberPresent(v, "buffers")) { + if (err) { + (*err) += "\"buffers\" object not found in .gltf\n"; + } + return false; + } + } + + { + if ((check_sections & REQUIRE_BUFFER_VIEWS) && + !IsArrayMemberPresent(v, "bufferViews")) { + if (err) { + (*err) += "\"bufferViews\" object not found in .gltf\n"; + } + return false; + } + } + + model->buffers.clear(); + model->bufferViews.clear(); + model->accessors.clear(); + model->meshes.clear(); + model->cameras.clear(); + model->nodes.clear(); + model->extensionsUsed.clear(); + model->extensionsRequired.clear(); + model->extensions.clear(); + model->defaultScene = -1; + + // 1. Parse Asset + { + detail::json_const_iterator it; + if (detail::FindMember(v, "asset", it) && + detail::IsObject(detail::GetValue(it))) { + const detail::json &root = detail::GetValue(it); + + ParseAsset(&model->asset, err, root, + store_original_json_for_extras_and_extensions_); + } + } + + using detail::ForEachInArray; + + // 2. Parse extensionUsed + { + ForEachInArray(v, "extensionsUsed", [&](const detail::json &o) { + std::string str; + detail::GetString(o, str); + model->extensionsUsed.emplace_back(std::move(str)); + return true; + }); + } + + { + ForEachInArray(v, "extensionsRequired", [&](const detail::json &o) { + std::string str; + detail::GetString(o, str); + model->extensionsRequired.emplace_back(std::move(str)); + return true; + }); + } + + // 3. Parse Buffer + { + bool success = ForEachInArray(v, "buffers", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`buffers' does not contain an JSON object."; + } + return false; + } + Buffer buffer; + if (!ParseBuffer(&buffer, err, o, + store_original_json_for_extras_and_extensions_, &fs, + &uri_cb, base_dir, max_external_file_size_, is_binary_, + bin_data_, bin_size_)) { + return false; + } + + model->buffers.emplace_back(std::move(buffer)); + return true; + }); + + if (!success) { + return false; + } + } + // 4. Parse BufferView + { + bool success = ForEachInArray(v, "bufferViews", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`bufferViews' does not contain an JSON object."; + } + return false; + } + BufferView bufferView; + if (!ParseBufferView(&bufferView, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->bufferViews.emplace_back(std::move(bufferView)); + return true; + }); + + if (!success) { + return false; + } + } + + // 5. Parse Accessor + { + bool success = ForEachInArray(v, "accessors", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`accessors' does not contain an JSON object."; + } + return false; + } + Accessor accessor; + if (!ParseAccessor(&accessor, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->accessors.emplace_back(std::move(accessor)); + return true; + }); + + if (!success) { + return false; + } + } + + // 6. Parse Mesh + { + bool success = ForEachInArray(v, "meshes", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`meshes' does not contain an JSON object."; + } + return false; + } + Mesh mesh; + if (!ParseMesh(&mesh, model, err, warn, o, + store_original_json_for_extras_and_extensions_, + strictness_)) { + return false; + } + + model->meshes.emplace_back(std::move(mesh)); + return true; + }); + + if (!success) { + return false; + } + } + + // Assign missing bufferView target types + // - Look for missing Mesh indices + // - Look for missing Mesh attributes + for (auto &mesh : model->meshes) { + for (auto &primitive : mesh.primitives) { + if (primitive.indices > + -1) // has indices from parsing step, must be Element Array Buffer + { + if (size_t(primitive.indices) >= model->accessors.size()) { + if (err) { + (*err) += "primitive indices accessor out of bounds"; + } + return false; + } + + const auto bufferView = + model->accessors[size_t(primitive.indices)].bufferView; + if (bufferView < 0) { + // skip, bufferView could be null(-1) for certain extensions + } else if (size_t(bufferView) >= model->bufferViews.size()) { + if (err) { + (*err) += "accessor[" + std::to_string(primitive.indices) + + "] invalid bufferView"; + } + return false; + } else { + model->bufferViews[size_t(bufferView)].target = + TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER; + // we could optionally check if accessors' bufferView type is Scalar, as + // it should be + } + } + + for (auto &attribute : primitive.attributes) { + const auto accessorsIndex = size_t(attribute.second); + if (accessorsIndex < model->accessors.size()) { + const auto bufferView = model->accessors[accessorsIndex].bufferView; + // bufferView could be null(-1) for sparse morph target + if (bufferView >= 0 && bufferView < (int)model->bufferViews.size()) { + model->bufferViews[size_t(bufferView)].target = + TINYGLTF_TARGET_ARRAY_BUFFER; + } + } + } + + for (auto &target : primitive.targets) { + for (auto &attribute : target) { + const auto accessorsIndex = size_t(attribute.second); + if (accessorsIndex < model->accessors.size()) { + const auto bufferView = model->accessors[accessorsIndex].bufferView; + // bufferView could be null(-1) for sparse morph target + if (bufferView >= 0 && + bufferView < (int)model->bufferViews.size()) { + model->bufferViews[size_t(bufferView)].target = + TINYGLTF_TARGET_ARRAY_BUFFER; + } + } + } + } + } + } + + // 7. Parse Node + { + bool success = ForEachInArray(v, "nodes", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`nodes' does not contain an JSON object."; + } + return false; + } + Node node; + if (!ParseNode(&node, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->nodes.emplace_back(std::move(node)); + return true; + }); + + if (!success) { + return false; + } + } + + // 8. Parse scenes. + { + bool success = ForEachInArray(v, "scenes", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`scenes' does not contain an JSON object."; + } + return false; + } + + Scene scene; + if (!ParseScene(&scene, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->scenes.emplace_back(std::move(scene)); + return true; + }); + + if (!success) { + return false; + } + } + + // 9. Parse default scenes. + { + detail::json_const_iterator rootIt; + int iVal; + if (detail::FindMember(v, "scene", rootIt) && + detail::GetInt(detail::GetValue(rootIt), iVal)) { + model->defaultScene = iVal; + } + } + + // 10. Parse Material + { + bool success = ForEachInArray(v, "materials", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`materials' does not contain an JSON object."; + } + return false; + } + Material material; + ParseStringProperty(&material.name, err, o, "name", false); + + if (!ParseMaterial(&material, err, warn, o, + store_original_json_for_extras_and_extensions_, + strictness_)) { + return false; + } + + model->materials.emplace_back(std::move(material)); + return true; + }); + + if (!success) { + return false; + } + } + + // 11. Parse Image + void *load_image_user_data{nullptr}; + + LoadImageDataOption load_image_option; + + if (user_image_loader_) { + // Use user supplied pointer + load_image_user_data = load_image_user_data_; + } else { + load_image_option.preserve_channels = preserve_image_channels_; + load_image_user_data = reinterpret_cast(&load_image_option); + } + + { + int idx = 0; + bool success = ForEachInArray(v, "images", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "image[" + std::to_string(idx) + "] is not a JSON object."; + } + return false; + } + Image image; + if (!ParseImage(&image, idx, err, warn, o, + store_original_json_for_extras_and_extensions_, base_dir, + max_external_file_size_, &fs, &uri_cb, + &this->LoadImageData, load_image_user_data)) { + return false; + } + + if (image.bufferView != -1) { + // Load image from the buffer view. + if (size_t(image.bufferView) >= model->bufferViews.size()) { + if (err) { + std::stringstream ss; + ss << "image[" << idx << "] bufferView \"" << image.bufferView + << "\" not found in the scene." << std::endl; + (*err) += ss.str(); + } + return false; + } + + const BufferView &bufferView = + model->bufferViews[size_t(image.bufferView)]; + if (size_t(bufferView.buffer) >= model->buffers.size()) { + if (err) { + std::stringstream ss; + ss << "image[" << idx << "] buffer \"" << bufferView.buffer + << "\" not found in the scene." << std::endl; + (*err) += ss.str(); + } + return false; + } + const Buffer &buffer = model->buffers[size_t(bufferView.buffer)]; + + if (*LoadImageData == nullptr) { + if (err) { + (*err) += "No LoadImageData callback specified.\n"; + } + return false; + } + bool ret = LoadImageData( + &image, idx, err, warn, image.width, image.height, + &buffer.data[bufferView.byteOffset], + static_cast(bufferView.byteLength), load_image_user_data); + if (!ret) { + return false; + } + } + + model->images.emplace_back(std::move(image)); + ++idx; + return true; + }); + + if (!success) { + return false; + } + } + + // 12. Parse Texture + { + bool success = ForEachInArray(v, "textures", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`textures' does not contain an JSON object."; + } + return false; + } + Texture texture; + if (!ParseTexture(&texture, err, o, + store_original_json_for_extras_and_extensions_, + base_dir)) { + return false; + } + + model->textures.emplace_back(std::move(texture)); + return true; + }); + + if (!success) { + return false; + } + } + + // 13. Parse Animation + { + bool success = ForEachInArray(v, "animations", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`animations' does not contain an JSON object."; + } + return false; + } + Animation animation; + if (!ParseAnimation(&animation, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->animations.emplace_back(std::move(animation)); + return true; + }); + + if (!success) { + return false; + } + } + + // 14. Parse Skin + { + bool success = ForEachInArray(v, "skins", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`skins' does not contain an JSON object."; + } + return false; + } + Skin skin; + if (!ParseSkin(&skin, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->skins.emplace_back(std::move(skin)); + return true; + }); + + if (!success) { + return false; + } + } + + // 15. Parse Sampler + { + bool success = ForEachInArray(v, "samplers", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`samplers' does not contain an JSON object."; + } + return false; + } + Sampler sampler; + if (!ParseSampler(&sampler, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->samplers.emplace_back(std::move(sampler)); + return true; + }); + + if (!success) { + return false; + } + } + + // 16. Parse Camera + { + bool success = ForEachInArray(v, "cameras", [&](const detail::json &o) { + if (!detail::IsObject(o)) { + if (err) { + (*err) += "`cameras' does not contain an JSON object."; + } + return false; + } + Camera camera; + if (!ParseCamera(&camera, err, o, + store_original_json_for_extras_and_extensions_)) { + return false; + } + + model->cameras.emplace_back(std::move(camera)); + return true; + }); + + if (!success) { + return false; + } + } + + // 17. Parse Extras & Extensions + ParseExtrasAndExtensions(model, err, v, + store_original_json_for_extras_and_extensions_); + + // 18. Specific extension implementations + { + detail::json_const_iterator rootIt; + if (detail::FindMember(v, "extensions", rootIt) && + detail::IsObject(detail::GetValue(rootIt))) { + const detail::json &root = detail::GetValue(rootIt); + + detail::json_const_iterator it(detail::ObjectBegin(root)); + detail::json_const_iterator itEnd(detail::ObjectEnd(root)); + for (; it != itEnd; ++it) { + // parse KHR_lights_punctual extension + std::string key(detail::GetKey(it)); + if ((key == "KHR_lights_punctual") && + detail::IsObject(detail::GetValue(it))) { + const detail::json &object = detail::GetValue(it); + detail::json_const_iterator itLight; + if (detail::FindMember(object, "lights", itLight)) { + const detail::json &lights = detail::GetValue(itLight); + if (!detail::IsArray(lights)) { + continue; + } + + auto arrayIt(detail::ArrayBegin(lights)); + auto arrayItEnd(detail::ArrayEnd(lights)); + for (; arrayIt != arrayItEnd; ++arrayIt) { + Light light; + if (!ParseLight(&light, err, *arrayIt, + store_original_json_for_extras_and_extensions_)) { + return false; + } + model->lights.emplace_back(std::move(light)); + } + } + } + // parse KHR_audio extension + if ((key == "KHR_audio") && detail::IsObject(detail::GetValue(it))) { + const detail::json &object = detail::GetValue(it); + detail::json_const_iterator itKhrAudio; + if (detail::FindMember(object, "emitters", itKhrAudio)) { + const detail::json &emitters = detail::GetValue(itKhrAudio); + if (!detail::IsArray(emitters)) { + continue; + } + + auto arrayIt(detail::ArrayBegin(emitters)); + auto arrayItEnd(detail::ArrayEnd(emitters)); + for (; arrayIt != arrayItEnd; ++arrayIt) { + AudioEmitter emitter; + if (!ParseAudioEmitter( + &emitter, err, *arrayIt, + store_original_json_for_extras_and_extensions_)) { + return false; + } + model->audioEmitters.emplace_back(std::move(emitter)); + } + } + + if (detail::FindMember(object, "sources", itKhrAudio)) { + const detail::json &sources = detail::GetValue(itKhrAudio); + if (!detail::IsArray(sources)) { + continue; + } + + auto arrayIt(detail::ArrayBegin(sources)); + auto arrayItEnd(detail::ArrayEnd(sources)); + for (; arrayIt != arrayItEnd; ++arrayIt) { + AudioSource source; + if (!ParseAudioSource( + &source, err, *arrayIt, + store_original_json_for_extras_and_extensions_)) { + return false; + } + model->audioSources.emplace_back(std::move(source)); + } + } + } + } + } + } + + return true; +} + +bool TinyGLTF::LoadASCIIFromString(Model *model, std::string *err, + std::string *warn, const char *str, + unsigned int length, + const std::string &base_dir, + unsigned int check_sections) { + is_binary_ = false; + bin_data_ = nullptr; + bin_size_ = 0; + + return LoadFromString(model, err, warn, str, length, base_dir, + check_sections); +} + +bool TinyGLTF::LoadASCIIFromFile(Model *model, std::string *err, + std::string *warn, const std::string &filename, + unsigned int check_sections) { + std::stringstream ss; + + if (fs.ReadWholeFile == nullptr) { + // Programmer error, assert() ? + ss << "Failed to read file: " << filename + << ": one or more FS callback not set" << std::endl; + if (err) { + (*err) = ss.str(); + } + return false; + } + + std::vector data; + std::string fileerr; + bool fileread = fs.ReadWholeFile(&data, &fileerr, filename, fs.user_data); + if (!fileread) { + ss << "Failed to read file: " << filename << ": " << fileerr << std::endl; + if (err) { + (*err) = ss.str(); + } + return false; + } + + size_t sz = data.size(); + if (sz == 0) { + if (err) { + (*err) = "Empty file."; + } + return false; + } + + std::string basedir = GetBaseDir(filename); + + bool ret = LoadASCIIFromString( + model, err, warn, reinterpret_cast(&data.at(0)), + static_cast(data.size()), basedir, check_sections); + + return ret; +} + +bool TinyGLTF::LoadBinaryFromMemory(Model *model, std::string *err, + std::string *warn, + const unsigned char *bytes, + unsigned int size, + const std::string &base_dir, + unsigned int check_sections) { + if (size < 20) { + if (err) { + (*err) = "Too short data size for glTF Binary."; + } + return false; + } + + if (bytes[0] == 'g' && bytes[1] == 'l' && bytes[2] == 'T' && + bytes[3] == 'F') { + // ok + } else { + if (err) { + (*err) = "Invalid magic."; + } + return false; + } + + unsigned int version; // 4 bytes + unsigned int length; // 4 bytes + unsigned int chunk0_length; // 4 bytes + unsigned int chunk0_format; // 4 bytes; + + memcpy(&version, bytes + 4, 4); + swap4(&version); + memcpy(&length, bytes + 8, 4); + swap4(&length); + memcpy(&chunk0_length, bytes + 12, 4); // JSON data length + swap4(&chunk0_length); + memcpy(&chunk0_format, bytes + 16, 4); + swap4(&chunk0_format); + + // https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#binary-gltf-layout + // + // In case the Bin buffer is not present, the size is exactly 20 + size of + // JSON contents, + // so use "greater than" operator. + // + // https://github.com/syoyo/tinygltf/issues/372 + // Use 64bit uint to avoid integer overflow. + uint64_t header_and_json_size = 20ull + uint64_t(chunk0_length); + + if (header_and_json_size > std::numeric_limits::max()) { + // Do not allow 4GB or more GLB data. + (*err) = "Invalid glTF binary. GLB data exceeds 4GB."; + } + + if ((header_and_json_size > uint64_t(size)) || (chunk0_length < 1) || + (length > size) || (header_and_json_size > uint64_t(length)) || + (chunk0_format != 0x4E4F534A)) { // 0x4E4F534A = JSON format. + if (err) { + (*err) = "Invalid glTF binary."; + } + return false; + } + + // Padding check + // The start and the end of each chunk must be aligned to a 4-byte boundary. + // No padding check for chunk0 start since its 4byte-boundary is ensured. + if ((header_and_json_size % 4) != 0) { + if (err) { + (*err) = "JSON Chunk end does not aligned to a 4-byte boundary."; + } + } + + // std::cout << "header_and_json_size = " << header_and_json_size << "\n"; + // std::cout << "length = " << length << "\n"; + + // Chunk1(BIN) data + // The spec says: When the binary buffer is empty or when it is stored by + // other means, this chunk SHOULD be omitted. So when header + JSON data == + // binary size, Chunk1 is omitted. + if (header_and_json_size == uint64_t(length)) { + bin_data_ = nullptr; + bin_size_ = 0; + } else { + // Read Chunk1 info(BIN data) + // At least Chunk1 should have 12 bytes(8 bytes(header) + 4 bytes(bin + // payload could be 1~3 bytes, but need to be aligned to 4 bytes) + if ((header_and_json_size + 12ull) > uint64_t(length)) { + if (err) { + (*err) = + "Insufficient storage space for Chunk1(BIN data). At least Chunk1 " + "Must have 4 or more bytes, but got " + + std::to_string((header_and_json_size + 8ull) - uint64_t(length)) + + ".\n"; + } + return false; + } + + unsigned int chunk1_length; // 4 bytes + unsigned int chunk1_format; // 4 bytes; + memcpy(&chunk1_length, bytes + header_and_json_size, + 4); // JSON data length + swap4(&chunk1_length); + memcpy(&chunk1_format, bytes + header_and_json_size + 4, 4); + swap4(&chunk1_format); + + // std::cout << "chunk1_length = " << chunk1_length << "\n"; + + if (chunk1_length < 4) { + if (err) { + (*err) = "Insufficient Chunk1(BIN) data size."; + } + return false; + } + + if ((chunk1_length % 4) != 0) { + if (strictness_==ParseStrictness::Permissive) { + if (warn) { + (*warn) += "BIN Chunk end is not aligned to a 4-byte boundary.\n"; + } + } + else { + if (err) { + (*err) = "BIN Chunk end is not aligned to a 4-byte boundary."; + } + return false; + } + } + + if (uint64_t(chunk1_length) + header_and_json_size > uint64_t(length)) { + if (err) { + (*err) = "BIN Chunk data length exceeds the GLB size."; + } + return false; + } + + if (chunk1_format != 0x004e4942) { + if (err) { + (*err) = "Invalid type for chunk1 data."; + } + return false; + } + + // std::cout << "chunk1_length = " << chunk1_length << "\n"; + + bin_data_ = bytes + header_and_json_size + + 8; // 4 bytes (bin_buffer_length) + 4 bytes(bin_buffer_format) + + bin_size_ = size_t(chunk1_length); + } + + is_binary_ = true; + + bool ret = LoadFromString(model, err, warn, + reinterpret_cast(&bytes[20]), + chunk0_length, base_dir, check_sections); + if (!ret) { + return ret; + } + + return true; +} + +bool TinyGLTF::LoadBinaryFromFile(Model *model, std::string *err, + std::string *warn, + const std::string &filename, + unsigned int check_sections) { + std::stringstream ss; + + if (fs.ReadWholeFile == nullptr) { + // Programmer error, assert() ? + ss << "Failed to read file: " << filename + << ": one or more FS callback not set" << std::endl; + if (err) { + (*err) = ss.str(); + } + return false; + } + + std::vector data; + std::string fileerr; + bool fileread = fs.ReadWholeFile(&data, &fileerr, filename, fs.user_data); + if (!fileread) { + ss << "Failed to read file: " << filename << ": " << fileerr << std::endl; + if (err) { + (*err) = ss.str(); + } + return false; + } + + std::string basedir = GetBaseDir(filename); + + bool ret = LoadBinaryFromMemory(model, err, warn, &data.at(0), + static_cast(data.size()), + basedir, check_sections); + + return ret; +} + +/////////////////////// +// GLTF Serialization +/////////////////////// +namespace detail { +detail::json JsonFromString(const char *s) { +#ifdef TINYGLTF_USE_RAPIDJSON + return detail::json(s, detail::GetAllocator()); +#else + return detail::json(s); +#endif +} + +void JsonAssign(detail::json &dest, const detail::json &src) { +#ifdef TINYGLTF_USE_RAPIDJSON + dest.CopyFrom(src, detail::GetAllocator()); +#else + dest = src; +#endif +} + +void JsonAddMember(detail::json &o, const char *key, detail::json &&value) { +#ifdef TINYGLTF_USE_RAPIDJSON + if (!o.IsObject()) { + o.SetObject(); + } + + // Issue 420. + // AddMember may create duplicated key, so use [] API when a key already + // exists. + // https://github.com/Tencent/rapidjson/issues/771#issuecomment-254386863 + detail::json_const_iterator it; + if (detail::FindMember(o, key, it)) { + o[key] = std::move(value); // replace + } else { + o.AddMember(detail::json(key, detail::GetAllocator()), std::move(value), + detail::GetAllocator()); + } +#else + o[key] = std::move(value); +#endif +} + +void JsonPushBack(detail::json &o, detail::json &&value) { +#ifdef TINYGLTF_USE_RAPIDJSON + o.PushBack(std::move(value), detail::GetAllocator()); +#else + o.push_back(std::move(value)); +#endif +} + +bool JsonIsNull(const detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + return o.IsNull(); +#else + return o.is_null(); +#endif +} + +void JsonSetObject(detail::json &o) { +#ifdef TINYGLTF_USE_RAPIDJSON + o.SetObject(); +#else + o = o.object({}); +#endif +} + +void JsonReserveArray(detail::json &o, size_t s) { +#ifdef TINYGLTF_USE_RAPIDJSON + o.SetArray(); + o.Reserve(static_cast(s), detail::GetAllocator()); +#endif + (void)(o); + (void)(s); +} +} // namespace detail + +// typedef std::pair json_object_pair; + +template +static void SerializeNumberProperty(const std::string &key, T number, + detail::json &obj) { + // obj.insert( + // json_object_pair(key, detail::json(static_cast(number)))); + // obj[key] = static_cast(number); + detail::JsonAddMember(obj, key.c_str(), detail::json(number)); +} + +#ifdef TINYGLTF_USE_RAPIDJSON +template <> +void SerializeNumberProperty(const std::string &key, size_t number, + detail::json &obj) { + detail::JsonAddMember(obj, key.c_str(), + detail::json(static_cast(number))); +} +#endif + +template +static void SerializeNumberArrayProperty(const std::string &key, + const std::vector &value, + detail::json &obj) { + if (value.empty()) return; + + detail::json ary; + detail::JsonReserveArray(ary, value.size()); + for (const auto &s : value) { + detail::JsonPushBack(ary, detail::json(s)); + } + detail::JsonAddMember(obj, key.c_str(), std::move(ary)); +} + +static void SerializeStringProperty(const std::string &key, + const std::string &value, + detail::json &obj) { + detail::JsonAddMember(obj, key.c_str(), + detail::JsonFromString(value.c_str())); +} + +static void SerializeStringArrayProperty(const std::string &key, + const std::vector &value, + detail::json &obj) { + detail::json ary; + detail::JsonReserveArray(ary, value.size()); + for (auto &s : value) { + detail::JsonPushBack(ary, detail::JsonFromString(s.c_str())); + } + detail::JsonAddMember(obj, key.c_str(), std::move(ary)); +} + +static bool ValueToJson(const Value &value, detail::json *ret) { + detail::json obj; +#ifdef TINYGLTF_USE_RAPIDJSON + switch (value.Type()) { + case REAL_TYPE: + obj.SetDouble(value.Get()); + break; + case INT_TYPE: + obj.SetInt(value.Get()); + break; + case BOOL_TYPE: + obj.SetBool(value.Get()); + break; + case STRING_TYPE: + obj.SetString(value.Get().c_str(), detail::GetAllocator()); + break; + case ARRAY_TYPE: { + obj.SetArray(); + obj.Reserve(static_cast(value.ArrayLen()), + detail::GetAllocator()); + for (unsigned int i = 0; i < value.ArrayLen(); ++i) { + Value elementValue = value.Get(int(i)); + detail::json elementJson; + if (ValueToJson(value.Get(int(i)), &elementJson)) + obj.PushBack(std::move(elementJson), detail::GetAllocator()); + } + break; + } + case BINARY_TYPE: + // TODO + // obj = detail::json(value.Get>()); + return false; + break; + case OBJECT_TYPE: { + obj.SetObject(); + Value::Object objMap = value.Get(); + for (auto &it : objMap) { + detail::json elementJson; + if (ValueToJson(it.second, &elementJson)) { + obj.AddMember(detail::json(it.first.c_str(), detail::GetAllocator()), + std::move(elementJson), detail::GetAllocator()); + } + } + break; + } + case NULL_TYPE: + default: + return false; + } +#else + switch (value.Type()) { + case REAL_TYPE: + obj = detail::json(value.Get()); + break; + case INT_TYPE: + obj = detail::json(value.Get()); + break; + case BOOL_TYPE: + obj = detail::json(value.Get()); + break; + case STRING_TYPE: + obj = detail::json(value.Get()); + break; + case ARRAY_TYPE: { + for (unsigned int i = 0; i < value.ArrayLen(); ++i) { + Value elementValue = value.Get(int(i)); + detail::json elementJson; + if (ValueToJson(value.Get(int(i)), &elementJson)) + obj.push_back(elementJson); + } + break; + } + case BINARY_TYPE: + // TODO + // obj = json(value.Get>()); + return false; + break; + case OBJECT_TYPE: { + Value::Object objMap = value.Get(); + for (auto &it : objMap) { + detail::json elementJson; + if (ValueToJson(it.second, &elementJson)) obj[it.first] = elementJson; + } + break; + } + case NULL_TYPE: + default: + return false; + } +#endif + if (ret) *ret = std::move(obj); + return true; +} + +static void SerializeValue(const std::string &key, const Value &value, + detail::json &obj) { + detail::json ret; + if (ValueToJson(value, &ret)) { + detail::JsonAddMember(obj, key.c_str(), std::move(ret)); + } +} + +static void SerializeGltfBufferData(const std::vector &data, + detail::json &o) { + std::string header = "data:application/octet-stream;base64,"; + if (data.size() > 0) { + std::string encodedData = + base64_encode(&data[0], static_cast(data.size())); + SerializeStringProperty("uri", header + encodedData, o); + } else { + // Issue #229 + // size 0 is allowed. Just emit mime header. + SerializeStringProperty("uri", header, o); + } +} + +static bool SerializeGltfBufferData(const std::vector &data, + const std::string &binFilename) { +#ifdef _WIN32 +#if defined(__GLIBCXX__) // mingw + int file_descriptor = _wopen(UTF8ToWchar(binFilename).c_str(), + _O_CREAT | _O_WRONLY | _O_TRUNC | _O_BINARY); + __gnu_cxx::stdio_filebuf wfile_buf( + file_descriptor, std::ios_base::out | std::ios_base::binary); + std::ostream output(&wfile_buf); + if (!wfile_buf.is_open()) return false; +#elif defined(_MSC_VER) + std::ofstream output(UTF8ToWchar(binFilename).c_str(), std::ofstream::binary); + if (!output.is_open()) return false; +#else + std::ofstream output(binFilename.c_str(), std::ofstream::binary); + if (!output.is_open()) return false; +#endif +#else + std::ofstream output(binFilename.c_str(), std::ofstream::binary); + if (!output.is_open()) return false; +#endif + if (data.size() > 0) { + output.write(reinterpret_cast(&data[0]), + std::streamsize(data.size())); + } else { + // Issue #229 + // size 0 will be still valid buffer data. + // write empty file. + } + return true; +} + +#if 0 // FIXME(syoyo): not used. will be removed in the future release. +static void SerializeParameterMap(ParameterMap ¶m, detail::json &o) { + for (ParameterMap::iterator paramIt = param.begin(); paramIt != param.end(); + ++paramIt) { + if (paramIt->second.number_array.size()) { + SerializeNumberArrayProperty(paramIt->first, + paramIt->second.number_array, o); + } else if (paramIt->second.json_double_value.size()) { + detail::json json_double_value; + for (std::map::iterator it = + paramIt->second.json_double_value.begin(); + it != paramIt->second.json_double_value.end(); ++it) { + if (it->first == "index") { + json_double_value[it->first] = paramIt->second.TextureIndex(); + } else { + json_double_value[it->first] = it->second; + } + } + + o[paramIt->first] = json_double_value; + } else if (!paramIt->second.string_value.empty()) { + SerializeStringProperty(paramIt->first, paramIt->second.string_value, o); + } else if (paramIt->second.has_number_value) { + o[paramIt->first] = paramIt->second.number_value; + } else { + o[paramIt->first] = paramIt->second.bool_value; + } + } +} +#endif + +static void SerializeExtensionMap(const ExtensionMap &extensions, + detail::json &o) { + if (!extensions.size()) return; + + detail::json extMap; + for (ExtensionMap::const_iterator extIt = extensions.begin(); + extIt != extensions.end(); ++extIt) { + // Allow an empty object for extension(#97) + detail::json ret; + bool isNull = true; + if (ValueToJson(extIt->second, &ret)) { + isNull = detail::JsonIsNull(ret); + detail::JsonAddMember(extMap, extIt->first.c_str(), std::move(ret)); + } + if (isNull) { + if (!(extIt->first.empty())) { // name should not be empty, but for sure + // create empty object so that an extension name is still included in + // json. + detail::json empty; + detail::JsonSetObject(empty); + detail::JsonAddMember(extMap, extIt->first.c_str(), std::move(empty)); + } + } + } + detail::JsonAddMember(o, "extensions", std::move(extMap)); +} + +static void SerializeExtras(const Value &extras, detail::json &o) { + if (extras.Type() != NULL_TYPE) SerializeValue("extras", extras, o); +} + +template +void SerializeExtrasAndExtensions(const GltfType &obj, detail::json &o) { + SerializeExtensionMap(obj.extensions, o); + SerializeExtras(obj.extras, o); +} + +static void SerializeGltfAccessor(const Accessor &accessor, detail::json &o) { + if (accessor.bufferView >= 0) + SerializeNumberProperty("bufferView", accessor.bufferView, o); + + if (accessor.byteOffset != 0) + SerializeNumberProperty("byteOffset", accessor.byteOffset, o); + + SerializeNumberProperty("componentType", accessor.componentType, o); + SerializeNumberProperty("count", accessor.count, o); + + if ((accessor.componentType == TINYGLTF_COMPONENT_TYPE_FLOAT) || + (accessor.componentType == TINYGLTF_COMPONENT_TYPE_DOUBLE)) { + SerializeNumberArrayProperty("min", accessor.minValues, o); + SerializeNumberArrayProperty("max", accessor.maxValues, o); + } else { + // Issue #301. Serialize as integer. + // Assume int value is within [-2**31-1, 2**31-1] + { + std::vector values; + std::transform(accessor.minValues.begin(), accessor.minValues.end(), + std::back_inserter(values), + [](double v) { return static_cast(v); }); + + SerializeNumberArrayProperty("min", values, o); + } + + { + std::vector values; + std::transform(accessor.maxValues.begin(), accessor.maxValues.end(), + std::back_inserter(values), + [](double v) { return static_cast(v); }); + + SerializeNumberArrayProperty("max", values, o); + } + } + + if (accessor.normalized) + SerializeValue("normalized", Value(accessor.normalized), o); + std::string type; + switch (accessor.type) { + case TINYGLTF_TYPE_SCALAR: + type = "SCALAR"; + break; + case TINYGLTF_TYPE_VEC2: + type = "VEC2"; + break; + case TINYGLTF_TYPE_VEC3: + type = "VEC3"; + break; + case TINYGLTF_TYPE_VEC4: + type = "VEC4"; + break; + case TINYGLTF_TYPE_MAT2: + type = "MAT2"; + break; + case TINYGLTF_TYPE_MAT3: + type = "MAT3"; + break; + case TINYGLTF_TYPE_MAT4: + type = "MAT4"; + break; + } + + SerializeStringProperty("type", type, o); + if (!accessor.name.empty()) SerializeStringProperty("name", accessor.name, o); + + SerializeExtrasAndExtensions(accessor, o); + + // sparse + if (accessor.sparse.isSparse) { + detail::json sparse; + SerializeNumberProperty("count", accessor.sparse.count, sparse); + { + detail::json indices; + SerializeNumberProperty("bufferView", + accessor.sparse.indices.bufferView, indices); + SerializeNumberProperty("byteOffset", + accessor.sparse.indices.byteOffset, indices); + SerializeNumberProperty( + "componentType", accessor.sparse.indices.componentType, indices); + SerializeExtrasAndExtensions(accessor.sparse.indices, indices); + detail::JsonAddMember(sparse, "indices", std::move(indices)); + } + { + detail::json values; + SerializeNumberProperty("bufferView", + accessor.sparse.values.bufferView, values); + SerializeNumberProperty("byteOffset", + accessor.sparse.values.byteOffset, values); + SerializeExtrasAndExtensions(accessor.sparse.values, values); + detail::JsonAddMember(sparse, "values", std::move(values)); + } + SerializeExtrasAndExtensions(accessor.sparse, sparse); + detail::JsonAddMember(o, "sparse", std::move(sparse)); + } +} + +static void SerializeGltfAnimationChannel(const AnimationChannel &channel, + detail::json &o) { + SerializeNumberProperty("sampler", channel.sampler, o); + { + detail::json target; + + if (channel.target_node >= 0) { + SerializeNumberProperty("node", channel.target_node, target); + } + + SerializeStringProperty("path", channel.target_path, target); + + SerializeExtensionMap(channel.target_extensions, target); + SerializeExtras(channel.target_extras, target); + + detail::JsonAddMember(o, "target", std::move(target)); + } + + SerializeExtrasAndExtensions(channel, o); +} + +static void SerializeGltfAnimationSampler(const AnimationSampler &sampler, + detail::json &o) { + SerializeNumberProperty("input", sampler.input, o); + SerializeNumberProperty("output", sampler.output, o); + SerializeStringProperty("interpolation", sampler.interpolation, o); + + SerializeExtrasAndExtensions(sampler, o); +} + +static void SerializeGltfAnimation(const Animation &animation, + detail::json &o) { + if (!animation.name.empty()) + SerializeStringProperty("name", animation.name, o); + + { + detail::json channels; + detail::JsonReserveArray(channels, animation.channels.size()); + for (unsigned int i = 0; i < animation.channels.size(); ++i) { + detail::json channel; + AnimationChannel gltfChannel = animation.channels[i]; + SerializeGltfAnimationChannel(gltfChannel, channel); + detail::JsonPushBack(channels, std::move(channel)); + } + + detail::JsonAddMember(o, "channels", std::move(channels)); + } + + { + detail::json samplers; + detail::JsonReserveArray(samplers, animation.samplers.size()); + for (unsigned int i = 0; i < animation.samplers.size(); ++i) { + detail::json sampler; + AnimationSampler gltfSampler = animation.samplers[i]; + SerializeGltfAnimationSampler(gltfSampler, sampler); + detail::JsonPushBack(samplers, std::move(sampler)); + } + detail::JsonAddMember(o, "samplers", std::move(samplers)); + } + + SerializeExtrasAndExtensions(animation, o); +} + +static void SerializeGltfAsset(const Asset &asset, detail::json &o) { + if (!asset.generator.empty()) { + SerializeStringProperty("generator", asset.generator, o); + } + + if (!asset.copyright.empty()) { + SerializeStringProperty("copyright", asset.copyright, o); + } + + auto version = asset.version; + if (version.empty()) { + // Just in case + // `version` must be defined + version = "2.0"; + } + + // TODO(syoyo): Do we need to check if `version` is greater or equal to 2.0? + SerializeStringProperty("version", version, o); + + SerializeExtrasAndExtensions(asset, o); +} + +static void SerializeGltfBufferBin(const Buffer &buffer, detail::json &o, + std::vector &binBuffer) { + SerializeNumberProperty("byteLength", buffer.data.size(), o); + binBuffer = buffer.data; + + if (buffer.name.size()) SerializeStringProperty("name", buffer.name, o); + + SerializeExtrasAndExtensions(buffer, o); +} + +static void SerializeGltfBuffer(const Buffer &buffer, detail::json &o) { + SerializeNumberProperty("byteLength", buffer.data.size(), o); + SerializeGltfBufferData(buffer.data, o); + + if (buffer.name.size()) SerializeStringProperty("name", buffer.name, o); + + SerializeExtrasAndExtensions(buffer, o); +} + +static bool SerializeGltfBuffer(const Buffer &buffer, detail::json &o, + const std::string &binFilename, + const std::string &binUri) { + if (!SerializeGltfBufferData(buffer.data, binFilename)) return false; + SerializeNumberProperty("byteLength", buffer.data.size(), o); + SerializeStringProperty("uri", binUri, o); + + if (buffer.name.size()) SerializeStringProperty("name", buffer.name, o); + + SerializeExtrasAndExtensions(buffer, o); + return true; +} + +static void SerializeGltfBufferView(const BufferView &bufferView, + detail::json &o) { + SerializeNumberProperty("buffer", bufferView.buffer, o); + SerializeNumberProperty("byteLength", bufferView.byteLength, o); + + // byteStride is optional, minimum allowed is 4 + if (bufferView.byteStride >= 4) { + SerializeNumberProperty("byteStride", bufferView.byteStride, o); + } + // byteOffset is optional, default is 0 + if (bufferView.byteOffset > 0) { + SerializeNumberProperty("byteOffset", bufferView.byteOffset, o); + } + // Target is optional, check if it contains a valid value + if (bufferView.target == TINYGLTF_TARGET_ARRAY_BUFFER || + bufferView.target == TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER) { + SerializeNumberProperty("target", bufferView.target, o); + } + if (bufferView.name.size()) { + SerializeStringProperty("name", bufferView.name, o); + } + + SerializeExtrasAndExtensions(bufferView, o); +} + +static void SerializeGltfImage(const Image &image, const std::string &uri, + detail::json &o) { + // From 2.7.0, we look for `uri` parameter, not `Image.uri` + // if uri is empty, the mimeType and bufferview should be set + if (uri.empty()) { + SerializeStringProperty("mimeType", image.mimeType, o); + SerializeNumberProperty("bufferView", image.bufferView, o); + } else { + SerializeStringProperty("uri", uri, o); + } + + if (image.name.size()) { + SerializeStringProperty("name", image.name, o); + } + + SerializeExtrasAndExtensions(image, o); +} + +static void SerializeGltfTextureInfo(const TextureInfo &texinfo, + detail::json &o) { + SerializeNumberProperty("index", texinfo.index, o); + + if (texinfo.texCoord != 0) { + SerializeNumberProperty("texCoord", texinfo.texCoord, o); + } + + SerializeExtrasAndExtensions(texinfo, o); +} + +static void SerializeGltfNormalTextureInfo(const NormalTextureInfo &texinfo, + detail::json &o) { + SerializeNumberProperty("index", texinfo.index, o); + + if (texinfo.texCoord != 0) { + SerializeNumberProperty("texCoord", texinfo.texCoord, o); + } + + if (!TINYGLTF_DOUBLE_EQUAL(texinfo.scale, 1.0)) { + SerializeNumberProperty("scale", texinfo.scale, o); + } + + SerializeExtrasAndExtensions(texinfo, o); +} + +static void SerializeGltfOcclusionTextureInfo( + const OcclusionTextureInfo &texinfo, detail::json &o) { + SerializeNumberProperty("index", texinfo.index, o); + + if (texinfo.texCoord != 0) { + SerializeNumberProperty("texCoord", texinfo.texCoord, o); + } + + if (!TINYGLTF_DOUBLE_EQUAL(texinfo.strength, 1.0)) { + SerializeNumberProperty("strength", texinfo.strength, o); + } + + SerializeExtrasAndExtensions(texinfo, o); +} + +static void SerializeGltfPbrMetallicRoughness(const PbrMetallicRoughness &pbr, + detail::json &o) { + std::vector default_baseColorFactor = {1.0, 1.0, 1.0, 1.0}; + if (!Equals(pbr.baseColorFactor, default_baseColorFactor)) { + SerializeNumberArrayProperty("baseColorFactor", pbr.baseColorFactor, + o); + } + + if (!TINYGLTF_DOUBLE_EQUAL(pbr.metallicFactor, 1.0)) { + SerializeNumberProperty("metallicFactor", pbr.metallicFactor, o); + } + + if (!TINYGLTF_DOUBLE_EQUAL(pbr.roughnessFactor, 1.0)) { + SerializeNumberProperty("roughnessFactor", pbr.roughnessFactor, o); + } + + if (pbr.baseColorTexture.index > -1) { + detail::json texinfo; + SerializeGltfTextureInfo(pbr.baseColorTexture, texinfo); + detail::JsonAddMember(o, "baseColorTexture", std::move(texinfo)); + } + + if (pbr.metallicRoughnessTexture.index > -1) { + detail::json texinfo; + SerializeGltfTextureInfo(pbr.metallicRoughnessTexture, texinfo); + detail::JsonAddMember(o, "metallicRoughnessTexture", std::move(texinfo)); + } + + SerializeExtrasAndExtensions(pbr, o); +} + +static void SerializeGltfMaterial(const Material &material, detail::json &o) { + if (material.name.size()) { + SerializeStringProperty("name", material.name, o); + } + + // QUESTION(syoyo): Write material parameters regardless of its default value? + + if (!TINYGLTF_DOUBLE_EQUAL(material.alphaCutoff, 0.5)) { + SerializeNumberProperty("alphaCutoff", material.alphaCutoff, o); + } + + if (material.alphaMode.compare("OPAQUE") != 0) { + SerializeStringProperty("alphaMode", material.alphaMode, o); + } + + if (material.doubleSided != false) + detail::JsonAddMember(o, "doubleSided", detail::json(material.doubleSided)); + + if (material.normalTexture.index > -1) { + detail::json texinfo; + SerializeGltfNormalTextureInfo(material.normalTexture, texinfo); + detail::JsonAddMember(o, "normalTexture", std::move(texinfo)); + } + + if (material.occlusionTexture.index > -1) { + detail::json texinfo; + SerializeGltfOcclusionTextureInfo(material.occlusionTexture, texinfo); + detail::JsonAddMember(o, "occlusionTexture", std::move(texinfo)); + } + + if (material.emissiveTexture.index > -1) { + detail::json texinfo; + SerializeGltfTextureInfo(material.emissiveTexture, texinfo); + detail::JsonAddMember(o, "emissiveTexture", std::move(texinfo)); + } + + std::vector default_emissiveFactor = {0.0, 0.0, 0.0}; + if (!Equals(material.emissiveFactor, default_emissiveFactor)) { + SerializeNumberArrayProperty("emissiveFactor", + material.emissiveFactor, o); + } + + { + detail::json pbrMetallicRoughness; + SerializeGltfPbrMetallicRoughness(material.pbrMetallicRoughness, + pbrMetallicRoughness); + // Issue 204 + // Do not serialize `pbrMetallicRoughness` if pbrMetallicRoughness has all + // default values(json is null). Otherwise it will serialize to + // `pbrMetallicRoughness : null`, which cannot be read by other glTF + // importers (and validators). + // + if (!detail::JsonIsNull(pbrMetallicRoughness)) { + detail::JsonAddMember(o, "pbrMetallicRoughness", + std::move(pbrMetallicRoughness)); + } + } + +#if 0 // legacy way. just for the record. + if (material.values.size()) { + detail::json pbrMetallicRoughness; + SerializeParameterMap(material.values, pbrMetallicRoughness); + detail::JsonAddMember(o, "pbrMetallicRoughness", std::move(pbrMetallicRoughness)); + } + + SerializeParameterMap(material.additionalValues, o); +#else + +#endif + + SerializeExtrasAndExtensions(material, o); +} + +static void SerializeGltfMesh(const Mesh &mesh, detail::json &o) { + detail::json primitives; + detail::JsonReserveArray(primitives, mesh.primitives.size()); + for (unsigned int i = 0; i < mesh.primitives.size(); ++i) { + detail::json primitive; + const Primitive &gltfPrimitive = mesh.primitives[i]; // don't make a copy + { + detail::json attributes; + for (auto attrIt = gltfPrimitive.attributes.begin(); + attrIt != gltfPrimitive.attributes.end(); ++attrIt) { + SerializeNumberProperty(attrIt->first, attrIt->second, attributes); + } + + detail::JsonAddMember(primitive, "attributes", std::move(attributes)); + } + + // Indices is optional + if (gltfPrimitive.indices > -1) { + SerializeNumberProperty("indices", gltfPrimitive.indices, primitive); + } + // Material is optional + if (gltfPrimitive.material > -1) { + SerializeNumberProperty("material", gltfPrimitive.material, + primitive); + } + SerializeNumberProperty("mode", gltfPrimitive.mode, primitive); + + // Morph targets + if (gltfPrimitive.targets.size()) { + detail::json targets; + detail::JsonReserveArray(targets, gltfPrimitive.targets.size()); + for (unsigned int k = 0; k < gltfPrimitive.targets.size(); ++k) { + detail::json targetAttributes; + std::map targetData = gltfPrimitive.targets[k]; + for (std::map::iterator attrIt = targetData.begin(); + attrIt != targetData.end(); ++attrIt) { + SerializeNumberProperty(attrIt->first, attrIt->second, + targetAttributes); + } + detail::JsonPushBack(targets, std::move(targetAttributes)); + } + detail::JsonAddMember(primitive, "targets", std::move(targets)); + } + + SerializeExtrasAndExtensions(gltfPrimitive, primitive); + + detail::JsonPushBack(primitives, std::move(primitive)); + } + + detail::JsonAddMember(o, "primitives", std::move(primitives)); + + if (mesh.weights.size()) { + SerializeNumberArrayProperty("weights", mesh.weights, o); + } + + if (mesh.name.size()) { + SerializeStringProperty("name", mesh.name, o); + } + + SerializeExtrasAndExtensions(mesh, o); +} + +static void SerializeSpotLight(const SpotLight &spot, detail::json &o) { + SerializeNumberProperty("innerConeAngle", spot.innerConeAngle, o); + SerializeNumberProperty("outerConeAngle", spot.outerConeAngle, o); + SerializeExtrasAndExtensions(spot, o); +} + +static void SerializeGltfLight(const Light &light, detail::json &o) { + if (!light.name.empty()) SerializeStringProperty("name", light.name, o); + SerializeNumberProperty("intensity", light.intensity, o); + if (light.range > 0.0) { + SerializeNumberProperty("range", light.range, o); + } + SerializeNumberArrayProperty("color", light.color, o); + SerializeStringProperty("type", light.type, o); + if (light.type == "spot") { + detail::json spot; + SerializeSpotLight(light.spot, spot); + detail::JsonAddMember(o, "spot", std::move(spot)); + } + SerializeExtrasAndExtensions(light, o); +} + +static void SerializeGltfPositionalEmitter(const PositionalEmitter &positional, + detail::json &o) { + if (!TINYGLTF_DOUBLE_EQUAL(positional.coneInnerAngle, 6.283185307179586)) + SerializeNumberProperty("coneInnerAngle", positional.coneInnerAngle, o); + if (!TINYGLTF_DOUBLE_EQUAL(positional.coneOuterAngle, 6.283185307179586)) + SerializeNumberProperty("coneOuterAngle", positional.coneOuterAngle, o); + if (positional.coneOuterGain > 0.0) + SerializeNumberProperty("coneOuterGain", positional.coneOuterGain, o); + if (!TINYGLTF_DOUBLE_EQUAL(positional.maxDistance, 100.0)) + SerializeNumberProperty("maxDistance", positional.maxDistance, o); + if (!TINYGLTF_DOUBLE_EQUAL(positional.refDistance, 1.0)) + SerializeNumberProperty("refDistance", positional.refDistance, o); + if (!TINYGLTF_DOUBLE_EQUAL(positional.rolloffFactor, 1.0)) + SerializeNumberProperty("rolloffFactor", positional.rolloffFactor, o); + + SerializeExtrasAndExtensions(positional, o); +} + +static void SerializeGltfAudioEmitter(const AudioEmitter &emitter, + detail::json &o) { + if (!emitter.name.empty()) SerializeStringProperty("name", emitter.name, o); + if (!TINYGLTF_DOUBLE_EQUAL(emitter.gain, 1.0)) + SerializeNumberProperty("gain", emitter.gain, o); + if (emitter.loop) SerializeNumberProperty("loop", emitter.loop, o); + if (emitter.playing) SerializeNumberProperty("playing", emitter.playing, o); + if (!emitter.type.empty()) SerializeStringProperty("type", emitter.type, o); + if (!emitter.distanceModel.empty()) + SerializeStringProperty("distanceModel", emitter.distanceModel, o); + if (emitter.type == "positional") { + detail::json positional; + SerializeGltfPositionalEmitter(emitter.positional, positional); + detail::JsonAddMember(o, "positional", std::move(positional)); + } + SerializeNumberProperty("source", emitter.source, o); + SerializeExtrasAndExtensions(emitter, o); +} + +static void SerializeGltfAudioSource(const AudioSource &source, + detail::json &o) { + std::string name; + std::string uri; + std::string mimeType; // (required if no uri) ["audio/mp3", "audio/ogg", + // "audio/wav", "audio/m4a"] + + if (!source.name.empty()) SerializeStringProperty("name", source.name, o); + if (source.uri.empty()) { + SerializeStringProperty("mimeType", source.mimeType, o); + SerializeNumberProperty("bufferView", source.bufferView, o); + } else { + SerializeStringProperty("uri", source.uri, o); + } + SerializeExtrasAndExtensions(source, o); +} + +static void SerializeGltfNode(const Node &node, detail::json &o) { + if (node.translation.size() > 0) { + SerializeNumberArrayProperty("translation", node.translation, o); + } + if (node.rotation.size() > 0) { + SerializeNumberArrayProperty("rotation", node.rotation, o); + } + if (node.scale.size() > 0) { + SerializeNumberArrayProperty("scale", node.scale, o); + } + if (node.matrix.size() > 0) { + SerializeNumberArrayProperty("matrix", node.matrix, o); + } + if (node.mesh != -1) { + SerializeNumberProperty("mesh", node.mesh, o); + } + + if (node.skin != -1) { + SerializeNumberProperty("skin", node.skin, o); + } + + if (node.camera != -1) { + SerializeNumberProperty("camera", node.camera, o); + } + + if (node.weights.size() > 0) { + SerializeNumberArrayProperty("weights", node.weights, o); + } + + SerializeExtrasAndExtensions(node, o); + + // Note(agnat): If the asset was loaded from disk, the node may already + // contain the KHR_lights_punctual extension. If it was constructed in + // memory it does not. In any case we update the JSON property using + // the value from the struct. Last, if the node does not have a light + // reference but the extension is still present, we remove it. + if (node.light != -1) { + detail::json_iterator it; + if (!detail::FindMember(o, "extensions", it)) { + detail::json extensions; + detail::JsonSetObject(extensions); + detail::JsonAddMember(o, "extensions", std::move(extensions)); + detail::FindMember(o, "extensions", it); + } + auto &extensions = detail::GetValue(it); + if (!detail::FindMember(extensions, "KHR_lights_punctual", it)) { + detail::json lights_punctual; + detail::JsonSetObject(lights_punctual); + detail::JsonAddMember(extensions, "KHR_lights_punctual", + std::move(lights_punctual)); + detail::FindMember(o, "KHR_lights_punctual", it); + } + SerializeNumberProperty("light", node.light, detail::GetValue(it)); + } else { + // node has no light ref (any longer)... so we clean up + detail::json_iterator ext_it; + if (detail::FindMember(o, "extensions", ext_it)) { + auto &extensions = detail::GetValue(ext_it); + detail::json_iterator lp_it; + if (detail::FindMember(extensions, "KHR_lights_punctual", lp_it)) { + detail::Erase(extensions, lp_it); + } + if (detail::IsEmpty(extensions)) { + detail::Erase(o, ext_it); + } + } + } + + // KHR_audio + if (node.emitter != -1) { + detail::json_iterator it; + if (!detail::FindMember(o, "extensions", it)) { + detail::json extensions; + detail::JsonSetObject(extensions); + detail::JsonAddMember(o, "extensions", std::move(extensions)); + detail::FindMember(o, "extensions", it); + } + auto &extensions = detail::GetValue(it); + if (!detail::FindMember(extensions, "KHR_audio", it)) { + detail::json audio; + detail::JsonSetObject(audio); + detail::JsonAddMember(extensions, "KHR_audio", std::move(audio)); + detail::FindMember(o, "KHR_audio", it); + } + SerializeNumberProperty("emitter", node.emitter, detail::GetValue(it)); + } else { + detail::json_iterator ext_it; + if (detail::FindMember(o, "extensions", ext_it)) { + auto &extensions = detail::GetValue(ext_it); + detail::json_iterator lp_it; + if (detail::FindMember(extensions, "KHR_audio", lp_it)) { + detail::Erase(extensions, lp_it); + } + if (detail::IsEmpty(extensions)) { + detail::Erase(o, ext_it); + } + } + } + + if (!node.name.empty()) SerializeStringProperty("name", node.name, o); + SerializeNumberArrayProperty("children", node.children, o); +} + +static void SerializeGltfSampler(const Sampler &sampler, detail::json &o) { + if (!sampler.name.empty()) { + SerializeStringProperty("name", sampler.name, o); + } + if (sampler.magFilter != -1) { + SerializeNumberProperty("magFilter", sampler.magFilter, o); + } + if (sampler.minFilter != -1) { + SerializeNumberProperty("minFilter", sampler.minFilter, o); + } + // SerializeNumberProperty("wrapR", sampler.wrapR, o); + SerializeNumberProperty("wrapS", sampler.wrapS, o); + SerializeNumberProperty("wrapT", sampler.wrapT, o); + + SerializeExtrasAndExtensions(sampler, o); +} + +static void SerializeGltfOrthographicCamera(const OrthographicCamera &camera, + detail::json &o) { + SerializeNumberProperty("zfar", camera.zfar, o); + SerializeNumberProperty("znear", camera.znear, o); + SerializeNumberProperty("xmag", camera.xmag, o); + SerializeNumberProperty("ymag", camera.ymag, o); + + SerializeExtrasAndExtensions(camera, o); +} + +static void SerializeGltfPerspectiveCamera(const PerspectiveCamera &camera, + detail::json &o) { + SerializeNumberProperty("zfar", camera.zfar, o); + SerializeNumberProperty("znear", camera.znear, o); + if (camera.aspectRatio > 0) { + SerializeNumberProperty("aspectRatio", camera.aspectRatio, o); + } + + if (camera.yfov > 0) { + SerializeNumberProperty("yfov", camera.yfov, o); + } + + SerializeExtrasAndExtensions(camera, o); +} + +static void SerializeGltfCamera(const Camera &camera, detail::json &o) { + SerializeStringProperty("type", camera.type, o); + if (!camera.name.empty()) { + SerializeStringProperty("name", camera.name, o); + } + + if (camera.type.compare("orthographic") == 0) { + detail::json orthographic; + SerializeGltfOrthographicCamera(camera.orthographic, orthographic); + detail::JsonAddMember(o, "orthographic", std::move(orthographic)); + } else if (camera.type.compare("perspective") == 0) { + detail::json perspective; + SerializeGltfPerspectiveCamera(camera.perspective, perspective); + detail::JsonAddMember(o, "perspective", std::move(perspective)); + } else { + // ??? + } + + SerializeExtrasAndExtensions(camera, o); +} + +static void SerializeGltfScene(const Scene &scene, detail::json &o) { + SerializeNumberArrayProperty("nodes", scene.nodes, o); + + if (scene.name.size()) { + SerializeStringProperty("name", scene.name, o); + } + SerializeExtrasAndExtensions(scene, o); + + // KHR_audio + if (!scene.audioEmitters.empty()) { + detail::json_iterator it; + if (!detail::FindMember(o, "extensions", it)) { + detail::json extensions; + detail::JsonSetObject(extensions); + detail::JsonAddMember(o, "extensions", std::move(extensions)); + detail::FindMember(o, "extensions", it); + } + auto &extensions = detail::GetValue(it); + if (!detail::FindMember(extensions, "KHR_audio", it)) { + detail::json audio; + detail::JsonSetObject(audio); + detail::JsonAddMember(extensions, "KHR_audio", std::move(audio)); + detail::FindMember(o, "KHR_audio", it); + } + SerializeNumberArrayProperty("emitters", scene.audioEmitters, + detail::GetValue(it)); + } else { + detail::json_iterator ext_it; + if (detail::FindMember(o, "extensions", ext_it)) { + auto &extensions = detail::GetValue(ext_it); + detail::json_iterator lp_it; + if (detail::FindMember(extensions, "KHR_audio", lp_it)) { + detail::Erase(extensions, lp_it); + } + if (detail::IsEmpty(extensions)) { + detail::Erase(o, ext_it); + } + } + } +} + +static void SerializeGltfSkin(const Skin &skin, detail::json &o) { + // required + SerializeNumberArrayProperty("joints", skin.joints, o); + + if (skin.inverseBindMatrices >= 0) { + SerializeNumberProperty("inverseBindMatrices", skin.inverseBindMatrices, o); + } + + if (skin.skeleton >= 0) { + SerializeNumberProperty("skeleton", skin.skeleton, o); + } + + if (skin.name.size()) { + SerializeStringProperty("name", skin.name, o); + } + + SerializeExtrasAndExtensions(skin, o); +} + +static void SerializeGltfTexture(const Texture &texture, detail::json &o) { + if (texture.sampler > -1) { + SerializeNumberProperty("sampler", texture.sampler, o); + } + if (texture.source > -1) { + SerializeNumberProperty("source", texture.source, o); + } + if (texture.name.size()) { + SerializeStringProperty("name", texture.name, o); + } + SerializeExtrasAndExtensions(texture, o); +} + +/// +/// Serialize all properties except buffers and images. +/// +static void SerializeGltfModel(const Model *model, detail::json &o) { + // ACCESSORS + if (model->accessors.size()) { + detail::json accessors; + detail::JsonReserveArray(accessors, model->accessors.size()); + for (unsigned int i = 0; i < model->accessors.size(); ++i) { + detail::json accessor; + SerializeGltfAccessor(model->accessors[i], accessor); + detail::JsonPushBack(accessors, std::move(accessor)); + } + detail::JsonAddMember(o, "accessors", std::move(accessors)); + } + + // ANIMATIONS + if (model->animations.size()) { + detail::json animations; + detail::JsonReserveArray(animations, model->animations.size()); + for (unsigned int i = 0; i < model->animations.size(); ++i) { + if (model->animations[i].channels.size()) { + detail::json animation; + SerializeGltfAnimation(model->animations[i], animation); + detail::JsonPushBack(animations, std::move(animation)); + } + } + + detail::JsonAddMember(o, "animations", std::move(animations)); + } + + // ASSET + detail::json asset; + SerializeGltfAsset(model->asset, asset); + detail::JsonAddMember(o, "asset", std::move(asset)); + + // BUFFERVIEWS + if (model->bufferViews.size()) { + detail::json bufferViews; + detail::JsonReserveArray(bufferViews, model->bufferViews.size()); + for (unsigned int i = 0; i < model->bufferViews.size(); ++i) { + detail::json bufferView; + SerializeGltfBufferView(model->bufferViews[i], bufferView); + detail::JsonPushBack(bufferViews, std::move(bufferView)); + } + detail::JsonAddMember(o, "bufferViews", std::move(bufferViews)); + } + + // Extensions required + if (model->extensionsRequired.size()) { + SerializeStringArrayProperty("extensionsRequired", + model->extensionsRequired, o); + } + + // MATERIALS + if (model->materials.size()) { + detail::json materials; + detail::JsonReserveArray(materials, model->materials.size()); + for (unsigned int i = 0; i < model->materials.size(); ++i) { + detail::json material; + SerializeGltfMaterial(model->materials[i], material); + + if (detail::JsonIsNull(material)) { + // Issue 294. + // `material` does not have any required parameters + // so the result may be null(unmodified) when all material parameters + // have default value. + // + // null is not allowed thus we create an empty JSON object. + detail::JsonSetObject(material); + } + detail::JsonPushBack(materials, std::move(material)); + } + detail::JsonAddMember(o, "materials", std::move(materials)); + } + + // MESHES + if (model->meshes.size()) { + detail::json meshes; + detail::JsonReserveArray(meshes, model->meshes.size()); + for (unsigned int i = 0; i < model->meshes.size(); ++i) { + detail::json mesh; + SerializeGltfMesh(model->meshes[i], mesh); + detail::JsonPushBack(meshes, std::move(mesh)); + } + detail::JsonAddMember(o, "meshes", std::move(meshes)); + } + + // NODES + if (model->nodes.size()) { + detail::json nodes; + detail::JsonReserveArray(nodes, model->nodes.size()); + for (unsigned int i = 0; i < model->nodes.size(); ++i) { + detail::json node; + SerializeGltfNode(model->nodes[i], node); + detail::JsonPushBack(nodes, std::move(node)); + } + detail::JsonAddMember(o, "nodes", std::move(nodes)); + } + + // SCENE + if (model->defaultScene > -1) { + SerializeNumberProperty("scene", model->defaultScene, o); + } + + // SCENES + if (model->scenes.size()) { + detail::json scenes; + detail::JsonReserveArray(scenes, model->scenes.size()); + for (unsigned int i = 0; i < model->scenes.size(); ++i) { + detail::json currentScene; + SerializeGltfScene(model->scenes[i], currentScene); + detail::JsonPushBack(scenes, std::move(currentScene)); + } + detail::JsonAddMember(o, "scenes", std::move(scenes)); + } + + // SKINS + if (model->skins.size()) { + detail::json skins; + detail::JsonReserveArray(skins, model->skins.size()); + for (unsigned int i = 0; i < model->skins.size(); ++i) { + detail::json skin; + SerializeGltfSkin(model->skins[i], skin); + detail::JsonPushBack(skins, std::move(skin)); + } + detail::JsonAddMember(o, "skins", std::move(skins)); + } + + // TEXTURES + if (model->textures.size()) { + detail::json textures; + detail::JsonReserveArray(textures, model->textures.size()); + for (unsigned int i = 0; i < model->textures.size(); ++i) { + detail::json texture; + SerializeGltfTexture(model->textures[i], texture); + detail::JsonPushBack(textures, std::move(texture)); + } + detail::JsonAddMember(o, "textures", std::move(textures)); + } + + // SAMPLERS + if (model->samplers.size()) { + detail::json samplers; + detail::JsonReserveArray(samplers, model->samplers.size()); + for (unsigned int i = 0; i < model->samplers.size(); ++i) { + detail::json sampler; + SerializeGltfSampler(model->samplers[i], sampler); + detail::JsonPushBack(samplers, std::move(sampler)); + } + detail::JsonAddMember(o, "samplers", std::move(samplers)); + } + + // CAMERAS + if (model->cameras.size()) { + detail::json cameras; + detail::JsonReserveArray(cameras, model->cameras.size()); + for (unsigned int i = 0; i < model->cameras.size(); ++i) { + detail::json camera; + SerializeGltfCamera(model->cameras[i], camera); + detail::JsonPushBack(cameras, std::move(camera)); + } + detail::JsonAddMember(o, "cameras", std::move(cameras)); + } + + // EXTRAS & EXTENSIONS + SerializeExtrasAndExtensions(*model, o); + + auto extensionsUsed = model->extensionsUsed; + + // LIGHTS as KHR_lights_punctual + if (model->lights.size()) { + detail::json lights; + detail::JsonReserveArray(lights, model->lights.size()); + for (unsigned int i = 0; i < model->lights.size(); ++i) { + detail::json light; + SerializeGltfLight(model->lights[i], light); + detail::JsonPushBack(lights, std::move(light)); + } + detail::json khr_lights_cmn; + detail::JsonAddMember(khr_lights_cmn, "lights", std::move(lights)); + detail::json ext_j; + + { + detail::json_const_iterator it; + if (detail::FindMember(o, "extensions", it)) { + detail::JsonAssign(ext_j, detail::GetValue(it)); + } + } + + detail::JsonAddMember(ext_j, "KHR_lights_punctual", + std::move(khr_lights_cmn)); + + detail::JsonAddMember(o, "extensions", std::move(ext_j)); + + // Also add "KHR_lights_punctual" to `extensionsUsed` + { + auto has_khr_lights_punctual = + std::find_if(extensionsUsed.begin(), extensionsUsed.end(), + [](const std::string &s) { + return (s.compare("KHR_lights_punctual") == 0); + }); + + if (has_khr_lights_punctual == extensionsUsed.end()) { + extensionsUsed.push_back("KHR_lights_punctual"); + } + } + } + + // KHR_audio + if (!model->audioEmitters.empty() || !model->audioSources.empty()) { + detail::json emitters; + detail::JsonReserveArray(emitters, model->audioEmitters.size()); + for (unsigned int i = 0; i < model->audioEmitters.size(); ++i) { + detail::json emitter; + SerializeGltfAudioEmitter(model->audioEmitters[i], emitter); + detail::JsonPushBack(emitters, std::move(emitter)); + } + detail::json khr_audio_cmn; + detail::JsonAddMember(khr_audio_cmn, "emitters", std::move(emitters)); + + detail::json sources; + detail::JsonReserveArray(sources, model->audioSources.size()); + for (unsigned int i = 0; i < model->audioSources.size(); ++i) { + detail::json source; + SerializeGltfAudioSource(model->audioSources[i], source); + detail::JsonPushBack(sources, std::move(source)); + } + detail::JsonAddMember(khr_audio_cmn, "sources", std::move(sources)); + + detail::json ext_j; + { + detail::json_const_iterator it; + if (detail::FindMember(o, "extensions", it)) { + detail::JsonAssign(ext_j, detail::GetValue(it)); + } + } + + detail::JsonAddMember(ext_j, "KHR_audio", std::move(khr_audio_cmn)); + + detail::JsonAddMember(o, "extensions", std::move(ext_j)); + + // Also add "KHR_audio" to `extensionsUsed` + { + auto has_khr_audio = std::find_if( + extensionsUsed.begin(), extensionsUsed.end(), + [](const std::string &s) { return (s.compare("KHR_audio") == 0); }); + + if (has_khr_audio == extensionsUsed.end()) { + extensionsUsed.push_back("KHR_audio"); + } + } + } + + // Extensions used + if (extensionsUsed.size()) { + SerializeStringArrayProperty("extensionsUsed", extensionsUsed, o); + } +} + +static bool WriteGltfStream(std::ostream &stream, const std::string &content) { + stream << content << std::endl; + return stream.good(); +} + +static bool WriteGltfFile(const std::string &output, + const std::string &content) { +#ifdef _WIN32 +#if defined(_MSC_VER) + std::ofstream gltfFile(UTF8ToWchar(output).c_str()); +#elif defined(__GLIBCXX__) + int file_descriptor = _wopen(UTF8ToWchar(output).c_str(), + _O_CREAT | _O_WRONLY | _O_TRUNC | _O_BINARY); + __gnu_cxx::stdio_filebuf wfile_buf( + file_descriptor, std::ios_base::out | std::ios_base::binary); + std::ostream gltfFile(&wfile_buf); + if (!wfile_buf.is_open()) return false; +#else + std::ofstream gltfFile(output.c_str()); + if (!gltfFile.is_open()) return false; +#endif +#else + std::ofstream gltfFile(output.c_str()); + if (!gltfFile.is_open()) return false; +#endif + return WriteGltfStream(gltfFile, content); +} + +static bool WriteBinaryGltfStream(std::ostream &stream, + const std::string &content, + const std::vector &binBuffer) { + const std::string header = "glTF"; + const int version = 2; + + const uint32_t content_size = uint32_t(content.size()); + const uint32_t binBuffer_size = uint32_t(binBuffer.size()); + // determine number of padding bytes required to ensure 4 byte alignment + const uint32_t content_padding_size = + content_size % 4 == 0 ? 0 : 4 - content_size % 4; + const uint32_t bin_padding_size = + binBuffer_size % 4 == 0 ? 0 : 4 - binBuffer_size % 4; + + // 12 bytes for header, JSON content length, 8 bytes for JSON chunk info. + // Chunk data must be located at 4-byte boundary, which may require padding + const uint32_t length = + 12 + 8 + content_size + content_padding_size + + (binBuffer_size ? (8 + binBuffer_size + bin_padding_size) : 0); + + stream.write(header.c_str(), std::streamsize(header.size())); + stream.write(reinterpret_cast(&version), sizeof(version)); + stream.write(reinterpret_cast(&length), sizeof(length)); + + // JSON chunk info, then JSON data + const uint32_t model_length = uint32_t(content.size()) + content_padding_size; + const uint32_t model_format = 0x4E4F534A; + stream.write(reinterpret_cast(&model_length), + sizeof(model_length)); + stream.write(reinterpret_cast(&model_format), + sizeof(model_format)); + stream.write(content.c_str(), std::streamsize(content.size())); + + // Chunk must be multiplies of 4, so pad with spaces + if (content_padding_size > 0) { + const std::string padding = std::string(size_t(content_padding_size), ' '); + stream.write(padding.c_str(), std::streamsize(padding.size())); + } + if (binBuffer.size() > 0) { + // BIN chunk info, then BIN data + const uint32_t bin_length = uint32_t(binBuffer.size()) + bin_padding_size; + const uint32_t bin_format = 0x004e4942; + stream.write(reinterpret_cast(&bin_length), + sizeof(bin_length)); + stream.write(reinterpret_cast(&bin_format), + sizeof(bin_format)); + stream.write(reinterpret_cast(binBuffer.data()), + std::streamsize(binBuffer.size())); + // Chunksize must be multiplies of 4, so pad with zeroes + if (bin_padding_size > 0) { + const std::vector padding = + std::vector(size_t(bin_padding_size), 0); + stream.write(reinterpret_cast(padding.data()), + std::streamsize(padding.size())); + } + } + + stream.flush(); + return stream.good(); +} + +static bool WriteBinaryGltfFile(const std::string &output, + const std::string &content, + const std::vector &binBuffer) { +#ifdef _WIN32 +#if defined(_MSC_VER) + std::ofstream gltfFile(UTF8ToWchar(output).c_str(), std::ios::binary); +#elif defined(__GLIBCXX__) + int file_descriptor = _wopen(UTF8ToWchar(output).c_str(), + _O_CREAT | _O_WRONLY | _O_TRUNC | _O_BINARY); + __gnu_cxx::stdio_filebuf wfile_buf( + file_descriptor, std::ios_base::out | std::ios_base::binary); + std::ostream gltfFile(&wfile_buf); +#else + std::ofstream gltfFile(output.c_str(), std::ios::binary); +#endif +#else + std::ofstream gltfFile(output.c_str(), std::ios::binary); +#endif + return WriteBinaryGltfStream(gltfFile, content, binBuffer); +} + +bool TinyGLTF::WriteGltfSceneToStream(const Model *model, std::ostream &stream, + bool prettyPrint = true, + bool writeBinary = false) { + detail::JsonDocument output; + + /// Serialize all properties except buffers and images. + SerializeGltfModel(model, output); + + // BUFFERS + std::vector binBuffer; + if (model->buffers.size()) { + detail::json buffers; + detail::JsonReserveArray(buffers, model->buffers.size()); + for (unsigned int i = 0; i < model->buffers.size(); ++i) { + detail::json buffer; + if (writeBinary && i == 0 && model->buffers[i].uri.empty()) { + SerializeGltfBufferBin(model->buffers[i], buffer, binBuffer); + } else { + SerializeGltfBuffer(model->buffers[i], buffer); + } + detail::JsonPushBack(buffers, std::move(buffer)); + } + detail::JsonAddMember(output, "buffers", std::move(buffers)); + } + + // IMAGES + if (model->images.size()) { + detail::json images; + detail::JsonReserveArray(images, model->images.size()); + for (unsigned int i = 0; i < model->images.size(); ++i) { + detail::json image; + + std::string dummystring; + // UpdateImageObject need baseDir but only uses it if embeddedImages is + // enabled, since we won't write separate images when writing to a stream + // we + std::string uri; + if (!UpdateImageObject(model->images[i], dummystring, int(i), true, + &uri_cb, &this->WriteImageData, + this->write_image_user_data_, &uri)) { + return false; + } + SerializeGltfImage(model->images[i], uri, image); + detail::JsonPushBack(images, std::move(image)); + } + detail::JsonAddMember(output, "images", std::move(images)); + } + + if (writeBinary) { + return WriteBinaryGltfStream(stream, detail::JsonToString(output), + binBuffer); + } else { + return WriteGltfStream(stream, + detail::JsonToString(output, prettyPrint ? 2 : -1)); + } +} + +bool TinyGLTF::WriteGltfSceneToFile(const Model *model, + const std::string &filename, + bool embedImages = false, + bool embedBuffers = false, + bool prettyPrint = true, + bool writeBinary = false) { + detail::JsonDocument output; + std::string defaultBinFilename = GetBaseFilename(filename); + std::string defaultBinFileExt = ".bin"; + std::string::size_type pos = + defaultBinFilename.rfind('.', defaultBinFilename.length()); + + if (pos != std::string::npos) { + defaultBinFilename = defaultBinFilename.substr(0, pos); + } + std::string baseDir = GetBaseDir(filename); + if (baseDir.empty()) { + baseDir = "./"; + } + /// Serialize all properties except buffers and images. + SerializeGltfModel(model, output); + + // BUFFERS + std::vector usedFilenames; + std::vector binBuffer; + if (model->buffers.size()) { + detail::json buffers; + detail::JsonReserveArray(buffers, model->buffers.size()); + for (unsigned int i = 0; i < model->buffers.size(); ++i) { + detail::json buffer; + if (writeBinary && i == 0 && model->buffers[i].uri.empty()) { + SerializeGltfBufferBin(model->buffers[i], buffer, binBuffer); + } else if (embedBuffers) { + SerializeGltfBuffer(model->buffers[i], buffer); + } else { + std::string binSavePath; + std::string binFilename; + std::string binUri; + if (!model->buffers[i].uri.empty() && + !IsDataURI(model->buffers[i].uri)) { + binUri = model->buffers[i].uri; + if (!uri_cb.decode(binUri, &binFilename, uri_cb.user_data)) { + return false; + } + } else { + binFilename = defaultBinFilename + defaultBinFileExt; + bool inUse = true; + int numUsed = 0; + while (inUse) { + inUse = false; + for (const std::string &usedName : usedFilenames) { + if (binFilename.compare(usedName) != 0) continue; + inUse = true; + binFilename = defaultBinFilename + std::to_string(numUsed++) + + defaultBinFileExt; + break; + } + } + + if (uri_cb.encode) { + if (!uri_cb.encode(binFilename, "buffer", &binUri, + uri_cb.user_data)) { + return false; + } + } else { + binUri = binFilename; + } + } + usedFilenames.push_back(binFilename); + binSavePath = JoinPath(baseDir, binFilename); + if (!SerializeGltfBuffer(model->buffers[i], buffer, binSavePath, + binUri)) { + return false; + } + } + detail::JsonPushBack(buffers, std::move(buffer)); + } + detail::JsonAddMember(output, "buffers", std::move(buffers)); + } + + // IMAGES + if (model->images.size()) { + detail::json images; + detail::JsonReserveArray(images, model->images.size()); + for (unsigned int i = 0; i < model->images.size(); ++i) { + detail::json image; + + std::string uri; + if (!UpdateImageObject(model->images[i], baseDir, int(i), embedImages, + &uri_cb, &this->WriteImageData, + this->write_image_user_data_, &uri)) { + return false; + } + SerializeGltfImage(model->images[i], uri, image); + detail::JsonPushBack(images, std::move(image)); + } + detail::JsonAddMember(output, "images", std::move(images)); + } + + if (writeBinary) { + return WriteBinaryGltfFile(filename, detail::JsonToString(output), + binBuffer); + } else { + return WriteGltfFile(filename, + detail::JsonToString(output, (prettyPrint ? 2 : -1))); + } +} + +} // namespace tinygltf + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#endif // TINYGLTF_IMPLEMENTATION diff --git a/src/libs/tiny_gltf_impl.cpp b/src/libs/tiny_gltf_impl.cpp new file mode 100644 index 0000000..ab239e8 --- /dev/null +++ b/src/libs/tiny_gltf_impl.cpp @@ -0,0 +1,2 @@ +#define TINYGLTF_IMPLEMENTATION +#include "libs/tiny_gltf.h" \ No newline at end of file diff --git a/src/util/gltf_loader.cpp b/src/util/gltf_loader.cpp index d5ddaa4..841c12b 100644 --- a/src/util/gltf_loader.cpp +++ b/src/util/gltf_loader.cpp @@ -3,14 +3,71 @@ #include "log.h" #include "util/files.h" +#include "libs/tiny_gltf.h" + +#include "components/mesh_renderable.h" + +namespace tg = tinygltf; + namespace engine::util { engine::Entity LoadGLTF(Scene& scene, const std::string& path, bool isStatic) { - auto file = ReadTextFile(path); + tg::TinyGLTF loader; + tg::Model model; + std::string err, warn; + + loader.SetParseStrictness(tg::ParseStrictness::Strict); + + const bool success = loader.LoadBinaryFromFile(&model, &err, &warn, path); + + if (!warn.empty()) { + LOG_WARN("glTF Loader: {}", warn); + } + + if (!err.empty()) { + LOG_ERROR("glTF Loader: {}", err); + } + + if (!success) { + throw std::runtime_error("Failed to load glTF file!"); + } + + LOG_INFO("Loaded glTF model, contains {} scenes", model.scenes.size()); + + // test model loading + + if (model.scenes.size() < 1) { + throw std::runtime_error("Need at least 1 scene"); + } + + int scene_index = 0; + if (model.defaultScene != -1) scene_index = model.defaultScene; + + tg::Scene& s = model.scenes.at(scene_index); + + if (s.nodes.size() < 1) { + throw std::runtime_error("Need at least 1 node in the scene"); + } + + const tg::Node& node = model.nodes.at(s.nodes[0]); + + const Entity e = scene.CreateEntity("test_node", 0); + + //const tg::Mesh& gt_mesh = model.meshes.at(0); + + //std::vector indices; + + //model.buffers[0]. + + //auto mesh = std::make_unique(scene.app()->renderer()->GetDevice(), vertices, indices); + + //auto mr = scene.AddComponent(e); + + // if (node.mesh) return static_cast(0u); } diff --git a/src/util/model_loader.cpp b/src/util/model_loader.cpp index ea9ac39..5238bae 100644 --- a/src/util/model_loader.cpp +++ b/src/util/model_loader.cpp @@ -83,13 +83,14 @@ static void buildGraph(const std::map>& textures, scene->GetComponent(child)->is_static = is_static; auto childRenderer = scene->AddComponent(child); childRenderer->mesh = meshes[parentNode->mMeshes[i]]; - childRenderer->material = std::make_shared(scene->app()->renderer(), scene->app()->GetResource("builtin.standard")); + childRenderer->material = std::make_shared(scene->app()->renderer(), scene->app()->GetResource("builtin.fancy")); if (textures.contains(meshTextureIndices[parentNode->mMeshes[i]])) { childRenderer->material->SetAlbedoTexture(textures.at(meshTextureIndices[parentNode->mMeshes[i]])); } else { childRenderer->material->SetAlbedoTexture(scene->app()->GetResource("builtin.white")); } + childRenderer->material->SetNormalTexture(scene->app()->GetResource("builtin.normal")); } for (uint32_t i = 0; i < parentNode->mNumChildren; i++) { diff --git a/test/res/models/teapot.glb b/test/res/models/teapot.glb new file mode 100644 index 0000000000000000000000000000000000000000..48951adfac2b95bb64df3ef54e1fbc2b00b004d2 GIT binary patch literal 2729324 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

-+xb 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⇔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

u%8mS)dGJhbD%SlTwt#Zl24bxNrSR0sC&!{ z6*Jf;s`r<1LnZ^25be#H$7*XAkB#s>ByR?fK`}|mqeXj2GF&JG1z>YJi{xOld2G?n zvN(iGP2nWaq6npH7fGm2Tj;uI~l?7)VG_j^yA=&!gGy8e`|ea4rOeej^%WFatFh zok>^|Z@=mIrv1^Fa18*%n32I@fG5QK7hu2R+3t4!2CqPkJ09#zyk4QCGNbfH%*>@A ziuILK3Nrn)xTj43|Ap$#ixOBJN+r5Od!`>SF)RAh_#|Tl&%coYtxXzFNYsrO8Ax7m zl+m}YP#)Lv7~iI*dlVpoU$2K{sm^8=Et)b}G-~>dPz+S0YXkd#4D0`~0T|Cwh}VRp zGqaQZ9|n!4D@qgYi}K-RRR`v6A4HzwuSTZna7n<+@NK*ygoMVA3Pv57A;gG9W@bLi zPUJkQ6RWz#i{^W_G@V!)l*!t^0Q{$6Ps_U8NgmpNkj{;fC#G8lI}X%Qi~M)knf3wy zpdurUH!2!|Xxc`DRikU1XEauHOulY9EBt&K>|TeV9xMuAY#@*xFFi{&E}GgKG~;C<{(hJ~ocxy1(v%OlU0vEdf2C#P+j{fFZx3wOyb@D~+OX*c3FL?4p(eY6C zX6k0#0R8|@%f9$AWMOo@kKe5k5awX-0J83gnB_|f~m;fd4P;4fllTFJkK z7SEj%(L{rLW>PtOnZzh%_B3-38yJxo81O=x@mT_SVHu3uLq3G%J{cXso&?HXYqIZ2 z%LY`PJ-;LhWm|8)$99aL)~G&}YWj5SFORXnSJ)1=4cD6tKPZoXBPL)G0hqkhY$F)p zPXzS*i&IJzuoC?&izpQ{KA9}$`Przz@mMH0{ng|kWu+nRZ$d4m%=YBLJy3lgtV|xs zV|zk%5 zB!_Bkt*zq++_LueSmQx~j$a?+Xe4W`P<-q%B0WeO6#9Y? zrvvq50D${8U(tzQhQ!f~r>zaE6pZ-lcu+kr!Xee~x5fQ#rju1(G&bkJO1 z5U8KY!l_Js*E47z(s9;zUc=ipHk!dIxv(p!XE!pdlRW|+_)%BgE&86p7dj$?j!pgm zjqmyTtb@x-H(A`DBaI2tRyqbiI`XPx?EALcp3+V^wi%N19!_$?E;s(Fx6Z85c~

ygs?JG7y;XsB^1BkII`YS8-tch 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 z

JKMjt{gCTn}S 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

cVs(^2mSXgrZRLz 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Ð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

+5mSjn*-=O#83_q%Yc@Zg=dB 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 jj8Me|7eRMAFE*nT@bpma12Ly_7#3?oR1yK+ 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 z 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�H10#bS<1+C?xEIceNTuH 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%0AVM_#Y|i?f!Wt4ezW!UjkA1{cqINGM5-(zb+R? zMFotB^P6~=<&KhHK|cWaG?DdReze zCYkhrRdkSW)*d_kipPtVo_v_RCesZXjU6=O1-IOz!qyAte{*~Rz%?x9 ztM0c&?JW@?JCMq2rDsWzS>Onz`kT7uX4;_;j6&1f_oYxpQyf2(&ki(2E)!6Ger_P} zSfiHfY)F%YMdbLAHryDXkm*NCcq696fNG3150*cB8dXN36=hCMj*R05>>F6$X=yq+db4($qdkh=|oQ{poto8HBd^VzfkfTQ&fuLJ+ zeyONA-E9*7(fJu!4}QM@{}Y{tVI-1=2fC+0VYF?Y^qt71Lboe!X769uak(--s^! z-@x_7(JlxBYrFt_ST<2?T$|t59Uf;mr7)8~|iVg-F zN(Fvfc3zi3sL2D)i2eHGq0G*L`TP%X{l_rAqPujg)k@d_r{cl$w2S2cKpHJF{*OjZ z183LSy$ zM38cgxvZK#q704Xg@PgBUQQTKo@;KEHr-x5!sY|j$j=+EQq)5{c6nu#NOAZu;2*#~ zgC`8`KO^oNu(!k5DLbZj7<_oZ;Q}_J??dVOAHaUa=MI#kO=rX25xyNa*PA^FxF&UO zUTh#Z0eraQb+N{Ml)T);nenc3Oot@#Go9mtzk8+IOK}@zz@(fY?u-H0<(RMFA?jbU zZ-;*w_Fvve{6`@pzBbQXc)u?{qEBH|8pdB>{2Q<@&(6=4#!Wag>mgIpfy@SgoEwhh zm174!+uJibX~binoWKHaPEqnL(T#e!T$YWm<_6~5v-#{jEk@T)89bK!Ea{VUz5jCj z-UR#);Qs>f=@|d=7=Ol&_w#LqHMIabT@~(|N3n? zMpZNh z-1lGNzu+MqzUg;*PU^!tAL>JXi@_v1SHR9fPm+Uc_4H++V6f^IDW|0)?!rwsl9_@Q zlb1Hw)QynLx@V*2N27j6lW*Pl%HU8MnN32{lh&P{3SQ_;7I8nHEuCQ*u6wY7U!2Ki z3E9nTHVg(QZos}MOF0R}f#{bsg0{1Pt?;k)a8MRzG;3r2pZQ=os zj7nx^&70-3Id+zg@QXjCP>kAtj*}E`vX~AK_ICvK#=GYX5ZCN4x~kf-fy+cB2odfCP##~S?Yt+hA8N+v+WnvQe=OnI01z3Si?56sSpsCx_~ zFV4ToP*&ZAYSSl~sAd5#GW~3<^HdzA6mqQ)qY<%MZs|~{^1EVs%>kfib?>EWb5swM zify}ZDkfg{kkPI+M6@LC{XL^+%~K)Gn;~UNB6xZ&#mvP3Q2Q5r%#nt1ZyKd_ss3}f z^=o!%uRZDTN~58jWeSS6-UVcBv|osMqD<$$h)=~3BDMW`$MgSA!~Qh9KX@dI9iSNj zf@HWHLtI1Fwe1EA;$E-)-YEPT1J!XfH;PmSkI1Pzg?FWQ*WuL9Bb^+8xmOm1UQH2< z=187+E8#P)_Lk8@r^h`gXe{73SpRyxi@B*WlcGfKR>H>`&2hgHg4p#8Y^1T5dmst81beK!%88(W<($63cj&bX7X?Xbp9;` z>2P#4{tyaE8>Pj)`DK~vx>=trx_LQqc6oMue$P;l?3VB){gGass69r>h~O0xV8{{~ zWuKv)Q=YHrt?{;$ky<~Mk!(OUxQ7{kn+x~^9ces=aAL$F73o_z)6%m(or=fz1^9=> z=s)vl`nE&%91SCdr&Ol=i+p?QxZqf?P8=ySt>m$ zGFeWgQm~ufpTb%4K*^UFTWM){UlaH+%TZk89nOw>BGWdr8JYMjMC<{JJii^!{a7A6 z1ffH{how#y-;MEw8a=Bs70v3*6%8^f@beA$Uym8z%zU`7FxYRw7>0R!l=w`PUN>Ua zee^YndrQ7wFO@=sBD{EA=a=p!OI|l{eLL*S@xC2@&G7xl;C~I{U!fP+pzg3Nu4mbR zS!7gQ=9pa5o6e@mZvAqwNme*e4KpF-6WO<64#%J))kz25Xb31C=nwDQTmW{!{i0hr`sN- z^9tXUQE)g{TLy*XOkc0$`E>{X)q0Ow=TR_8=XQW4V|dDj>^%m0qh3XRQ??Q4+fdmv zej2su%(2?{@Q~eeph{j47f$Li(n;lHRAbaVtfIya8iy7WhY$|3H=Qr<$?uT{uMK?C zk^W|oM{C*^_1iV6BF^wVshbaEX5u7%yc{v2lX~4A%nl;_JXi*n8Q!|Dm5!0YQhxtE z9B=ZO*BkhN;bQ^+dOJS0!_2F+>mTxkNe95oU>_EG{nhv|d13TwaeR=z}+D<_M}pQ}CqF@sQGcD8*%$Fqgrz5uT1siD45p zl4#U{J~cFJhlD1;lR0mlAdZyI)GM^sfl>suZmaJC#jrbKrPYeI7BN&IQRm#&{%^>a zi$U!$IMUFwx^!?2<0=L4NDcD(UV=!*f7^TCi|#FFjpiU{Dvxga@UWelWqY*O_i`;L z7$w~KN+-_<0j(p@SS{84Dic9Urd`G0Cg%umGV5$sLOc=!>*sK!h3WbR&yL4hcNc=I z!Bfm(-_e;^3NZ-(%?QUas>PAsIgR7$&GKS>R$y%F=nNTF&AgOifAqT08RQ1QPTEKX zS9MDhWXP8tIFz+?8xdtkF{_+Fu#oe*#gqf*ERk0|KK2ZTWt>i6!*jm|G{u{5p40MR z{_h3guN|FmJ7e}2!mvn-rub1BR%C#ihFL^3LeN}1kL%5QGK$tC0%}T?hqA4duohuc zWd8mR=Ij48qEobm0KNvW{!hR$jx&-oN~Dwqj2CVCUCLM1a*OU|NNpTZr1F3ko;ih+ zqCj%|soq?XA!E}XkasKl!8L!kMKhJo?LtMaH5M73% zKCW;cPAR7dEDrM~6#hCV69bhNGD)cn=WQl(nMh^qhd1CvO){Z#uj2vW)6& z@sV9T?+&zznrmjFa-6$M!` zmV^U@gJ@I+1`L%E)*a-!rt!%fH%WTB9B?|OrUm>qc+K|@l6dGRXTz{iG7H!6uZYfz zH|-fb73S$E!#C@0#fL!04DsP(gyK0~fd6CIE9!RdS(#D$Bce+KsBu&<${??FQ%6KB z>B%)QffQVg#^hXEb{R}=?r}VKyxG_Wk=6u%|03|FX(Ca>W`8r z>Lup&%w_dB8^HKOCo%C=(~l%$#;f?Neuy@VFn8%QK-FxE&UL>BGK;;;ft)lX8egO( z)h}lc0x$UF`Fv}GyuC@@Sn{eK0Zy4oOE>o-{?%wdOV{ZARO9hAEc8w~^&}rBom%QY zfCm5V$Wji|Im_T3$V`;!G$Ox%tp=Fjo<0#{BnSB)aU;vKcxDQ);2TF4n6kG*Cqhn@ z(poF4+De|t5k`YCvrC#@iEY4Nhuz_{9t){+;{)*j%iwBDX#F883cc*o0-rNOcrHJaKL zVEPQ(CZ}tNC*L@oNBoI}w14;8iY`H?vurRP!vdmb*SAU#Ec?rh1^9BT70%$>L)Tsw zfx~M9YejDwyd}@$fdk=mxICd056u+m z2`gs9j*aT@O9fQcf}s#gUKSUluQRRxSOB&Zr}l2RptCMSMKVTRBj%@PBoo3fH~Qt} zC<2y%dZwf*S_a*_DOSfGywTS#V(!r&)e&c7v!*~Duo(4wuO~eA(bo9<=($OI{>>U# z$cTE=qCPuQmnT8?`-#CdqbL~$akd+TozOGQSxgV8nw}Mk9~P=Uh*BF`=r|1WM)#@M+vPI;+@u0 zU=;q<2p`LI(1^4b6Ytq4nO-+QPk%9Ht#tqxjQY+N)$fXcFJvlGE|oA@^q}@~7p+rS zEGq5TRM@3(Tr|{-^rBAhOZ>r^(d3qC)2auR11I@G!m=9g9YRTb(}-uD?5`Y-O<^?1 z*%CJpt|UFuNB|vqa?E5ZfAU+N(=dE9Qm6CDNJ?|AU?C0QLG95y-q7ez-c0~xP29r) z;SEMVSfV}7vpuIP-(Be6{PNzwS^?_`j#`@4U?(#Xu7+?;wj^ydgFtlI&p>o2I^PpH zNkd-#!J1{$STW+8J91>9?&&}}Eyjl;r7g>?(c+=_G+8{hWfq51I(5>uPJiNc4gNiY ztA8#-13S!cR_AI`^h=PpEya#bo4rXj-VtrI}ZBA$QQI*pO#_5{Ym3t;`z_mh+WsOhbsgZdmXYaIa-(pi*`kA&54F zcHOBVdcR4Jdm0v_IPWVWZ{roS#)n0}lW_z13+%s!^%q#*jNpEG7*sFA_yb&@jFLBn zbb)E3%W@LK;F`V3IFP31j)?sHqQlDpuoR}xnD5y?!;mB7ve!#zrW7GFBKe6Hq$xfzvYL?cB4J8k;yW z`?@T)ReV|53!;s#2lnptD(m#d_d3co6{zT^zkd6hH@K!SE8Nbtbbcb5VsIuKR5Ha| zQTQ$WMaHv*E}%wwnZ3bBEApLloLUtG;d}DE(5;E^f#S9W+5N4G(z%lbCQuGCu3m6vu|hS1cNLCR=ouT zN3DS+Kz@1UfqR%j5q5!20;$|KW@@I&xIH*ip?1A7x|D zC!(V8%i7F02uJ^23*yx08(g9{gMeHymcbgUd1s{qpkFrC?H%%JkP zCd*x$(;)-w%nUeqpgr(*H5%fXO*&KOuD&d;jY~0G!T0x$Y?4U_r(ITKTlw7UUIx43 zv698<_1x`Th$u-2z!61AK_P{q-=`gnJX>YBIh#9qFzsd7wEUC7%Ns5MBj7wD+K2Gh z_Y^5^A*LfzE?jB|*S$_w%P)ix9KYY)={5J5f@E%2S^$N4~K*d_^u=Y#dy+LD83?L z$$k-&&5cqS)pIS*Whr%FAXBpXC`FB`+WdYWTPWVOCcDkcNw9I&gRvjQ(LtYzmR~p< zE$SJo;dLX1{M-u%R>Nicg=eO)@`8^V?iAWsdKQX~!Z?f+xXQf1jWT3}bGnb#FdwjP zMy1xMWeuRb_xwE9&;_@?kVwEkaX-#f`QAiM3X$rJ%?-Z2BCGFk6sI9D&s1+Gpp`b< zd0IM78*kBuGF_WA+I&)R4sR{r4jwy*JDN7pn?fEAR>3pD;1$^xem2@mIn)g$Sc3D2 zd^bZ?@~6wDJQCekjvMl-;G2PXVfQsI6JGG`PI-r?z>6}q=p%rw zK2(-6(Ezx4WGZ|b-iRy!Db7wp=sZ|FyZ2raJ}D^D9f2ulo2+>{XO9NX4OfL~Teu}> zkmM=(YQlp&sF%Av`&e~{DB5@R5?yCWUH{yF{@&~54<^oc@(k-Ag}YI_Nb>mT3xrcA zcm`w!dt1o?aL+KVdbAusM&8ATM_YHocgKE}wU`-CO)ecTFIm(bs@~wSQ5gy_g;&vGhA=g2krX@e{4q4yvH@iJgjyl}YT^)~q1F~0$1hg)nZeAfLBfc6us|WWlr+^yN=Ri# zbKPIUo@?o8G~JsgCjY}|-(~O|HRBBd6VSY8uj}`A%g(I5J=5Dgfs?^G>IRA2y5D2H zQe?WpukRm%qQRuJ_IjuHxxvBv^V%~~Nc<14|J~=hNJi$N-4m734DFoGfq6^DRFLx@b5@-@eok0r6aWd(20(ir58MQo@HO}*ZU{2#% znGdS(2a4fsI${PROLHL8wA83;fDK>1dIQ>R!6}i4SPkrn!%j^@4%2@KWqQavpwJmWb`o3wHyguNi{O_ zLy>Ptki8V@8_2#HaiTH<%H9&Ey~K#eR?guuFLb^5s9`pvLBCV zLHO6@WjDzC{^E=bnoaNY@@W#mc)(8heK=nlzNdk+nF&N^qwugBfG||E%;!Bt!&>JI z`7sBwBfZ^#zhkDouiDp=oFI;mrW|{rH>LxxVYoadAE?f=8>*^59WBr?FW|a>^#<@A z%AkMIaY}{MnMR)x_5}q}U}x67NuoYmQiCiILO! zbrJ7w$}I=7lf3x;GT>_)%q^U@?QDh9y)(DYWsz5_uTPYtSn`=9VK0~_PIekc@uK9v zlueRPNg||+OcNJf693bnqu~J>L7=?OQo)9|x{nce1=|d$Y414sNRE9x7*Or;pqEY} zjShMviWJ`>+65W zq5ve0^!jx6H`{CY14P96DmHdJnZRmAmkpZChG=<{)Y?!T?$mo@$R>V!XPIo%161~r-kz>x;9 zcSh6BX!B6iOl&$bBW3LxQPVReoVEF>yc1TL>gUb*g)(qoi;axl7D^Ktx@5To#i{cHodjVgt3Zn52fT0AD?4awANG*n?od- zHp&5`Yp(@-u)*GB^OU&W^7=*Lc{jsL5lsDm{3+Z}cEj2Qrz|J3a#*HO+}BTdUlNp# zj2378au>Mz&Sxl#;i!bBRCZ7k&>1ly{C{`=P(Oc-bX!{&nq2NYa}-@3_|*22Jryj{ z-xod8!4|5yqUH!6u(ETx88vJ&sP{%VjB%cuI+e*yL`1j-r{0@?50*8$qAhaeg!&Eyu+}W||`> z%lOsy^$TyyGtoL%lkalSS#mi9i#N0vv|YmR-(6limNzl`*Vm;ufbnKUS^ z@I>m!VXx^A{}`QEjale?HsEgfo`@+iU0-apB8)FT{D-SsK`IrCYVa&m1*J z{K<(c&C$`X?~%T)KT1AyVSE4pAOJ~3K~#~?6nVi{GMX1=2A_DyuAkyZ==(?EVGl%U zUn&U|og6x2f46MTC8|lHYn~!WRrtOR!u(!C;oK@rk2=bXP#X@ zMsN5g8sE=-ow6yf=hIg&KPtN~ zaaD5vLQGU@w2_XH9r8xk4uqrkpj(7a63Yt*!s3Lf!Fx{k=uxzQoBE5+N-6q_{e?7T z1!(&HuCr@sQjTbgHQ5JX)4~?ofG?|3oF(2JW3jJ=sBxI?1ZIq}8hVa|s06mxLFNLS zZ*@c+&Mx9s(WiwYvYOx3_hA^uYKBorkO~GHcU?Cym8OV@=-vZ4Zo^rlor0rz$$F`P zxBZDxKAA|5Ix5M$Dl%LeRe1pksU>Mp@EO zQa#OR#E_%0+WylpA#sKPbHb7xJGUY|LF_pyhVXgT5*}$w{9R6fL*Vlsqrp85GddA8 z=^#gsmFPIUze}m%aw<5oCN1dOu$uEiINBXlgKHswD|Bw_%`@~+tY525#-PIb1JMO{ zAV)CXOsh9GRe8-2c5@?|Fg|$4FDQ1@=jI+fgqTV}x?q1Qg6X;Dc{>qL&AR4_+0g~t|Zg@4rl+R89-IUR+ zqv!XPeWHekDl4(}yyP2b@Am&^gge*P4C9>S0n(+E$0h`OkBeyJ72f*WV?<9+1x;Ss z`K>+H*3RL%M!{Q-sp-hRH8XinIeHW^l|x7=k*P3wyPpip_M9%npV8{$cby&R1OU?y zr8qU5vPPrFesxDN28TBc20^MG#TS%xL&}x!dWmUVzeGC(?Ay$dX4rP zU$KXMvm9yxn}TeN$j+PwOpOm~b)f1_elwGlrcu))X#i9X}8I(AG)-cT-i%CZ+QElMIfy1a8JteYHif9knImxM?N@8) zDcC)ZJHOsoz2Nf94C(mXaRET31?qck4ZSo-Mz_y`m3lz+K(p|CHk&Fl0~eCaA5{f zk2~f93Q$?U0B(+HVBsNpbUyb&#PEazP~!o4ILYWhpygN=DN#3&%{dy;X&l*Tqs+j$ z!|MZhziOO9N3LX^E}>kWl${QNM+$cvWpp6YZg_0P#JdtMto<$W)tTy%GTDf|dq;m5 z{m+v|5l;f@!R*B>lbQDq?EH$O_Ru}7shH><%_w;)s`-pA^d9%qbz>n$;k@I3oHI1D zUR`jO5V1JV>!yN2Tr@{2(`JfVg`zTE;Q$z~5Rg)?unQNYFeKh+k2@5iWx#y{_vM*J zsPi1Vn5>L+2_0X^uIizvQQ?~w8382j3E}}Gv}y{1SNt3wy!N8xF^4US-Uk0M;NMgT z83jrumO{0T-7?xX?}+Fq6;o3R>`g`c!!Z6B@F$)hP0##rA_YEJbvtFM(YTS3p6C{D zM|KW?O#2=j!H13X)++jFe*-@zC0))m)me*w+=Y`$htA0&Ue~3guJbfXp3w|$rO4hF zqWk+t7(`$S*G1mpIxq4L42Qvz4LC{}0QaNwSQny`t|Fy(MCp{qru`^&(wfR1HRj0_0`V%#M>n!c(y}( zBafC$k(1_7?E1BuPC*{3ImdDa^f7=PCaL_5$2$45JM*M49d&-lP{N_D9@n?7%_$0_>aV*yMXgCpbR9x)(rR`*9-_fxm!% z1$@^8@CnTSb{dOX)zF6~#~Nrnm~iNrC+~=Hg`1-Rcbwh&7YX9+VPxM9cgGrr`w!s%0QMPU z9euD4b{o@Ky>z7R03f}D%pvS1;GY0qmhg7>n9{=YOIoK_dd?L9 zbZSg+Vg=#Q`!l6iugNW|AHsp|u;~YL{NEnmwR&d{u%?%aHjMBY)YZnWNk?l~jX3R@ zoC8rt(q*!x|K!j+@a6FTias21B#bbd!G^=A-?;QgIgcFJv`yC1c~{9$cUEcCU&TvMj^UhsB|_FUNfwFN^PcI%_6q74Qtgb@vbaq#I_55&)a34 zms0c;DadhRjj46T@_7IMjJ?~EBRQ@uxIns;*}ZM%|NnDNcU6R(#5@2CSoFx+c4VfE z429gC1aZGo;m`Y(K_SmG{NY7HC(+B=)iYJ=^W)MViamgz(I;7NrIvfko1#zq!#xvG zscaRYBR!}@#(dvoV(4oLYukwfh-OE7SdBHK7mw{tj|hB5H?B{dH%kMI0_W;Aa?izd zc7MKxSI>d5t;W}BDh<1V(n(P8NQOuU*S&%%jE(MspGp!vf%FL53c(&tH>-5sV+)Q-)ZHR_GC%0PdE&=*@52-+PGzg*Dr(p2F5Rs8yN7u4dZX% z{z8mkMDq9*d;AP^qs82VIjYCP=R4s3H3Jsdf&0`c45*R`8otCcERhw;XY-tohL`ee zb>1k?uCa4T$C^#WNHpbL7{z@*yAcsUIswG+A&;u(I?4f#lrhgN9L<{KbA6=o<7GQ_ zmd|K%2LCo%R~c8xez$aFWgnet#LA6t;lq+K$#nC|2=?Z6PiHLqImASs$n+|mnvan^ z51w1nl4dU%n%C$ph@+RqdoZHD1FzO6JKtZC0W;s|AVX&Hc&1)3(`4L+Ya3pB;MX#| zZm)h(rK1k-x$#%8pEifjK%Vq}wZne3;i?&?p<~6Da-w1PNz-oe#QzKM%iB>isK;c} z$L*apO=JG1zGL0zfOZaHO95{+da@`dK6MKzkRQ5<3)v9dUpjSG)YE?kqM2m|8;zq$8LXRtU5@b%d2+3A z-Ubh_bS7Fvaq^w`AQ6d`*(!JgQ!@g}NJa@Prq$GFxR+N7`0%Lletj(J z+tX{j(NSYEbk30v2S5-3Yp`jgj(j%HICYF}rn3S2i%i%`QJC&AquvbrWrxFK12ys( zhN=O7aU5YbdD_F8-roUFzrrKw^zhw?ER9N=Y~*-4o0P6-2*L7N5dZ)VFR8y8N2r{F z{3P*&4x)W$O5SW*pzx|JfHXuj0xhpGRMqTsKz`$sTl4uQDu;917#ZSp>6PM;`nYGhU)2l69f;D+9pmO52tQ3?w3Rb~E!dtLt! z#N|lf@(i$F2D~jCR(U_BN*~Rl^d7~F?BtQeqZHT&e^Wf+_gr{zB75|#34?Op9?{~j zzE3oq>^a|>Wd+jUAKv;o`MEaq0#RzCMokvq7Xy*X@#NkV9u~NPU!;p1?PnbH7vI$= zpwTJlp^)#1io`M-$G>@Wb{fJSQK$8C+;79@7x1}4A;p(r{>L!ZsL2T!!e=wWUwkT+ zWqe{y_6_WB$NG5XbgF`Dz~MO9md=knAC4H@>Cm@~ve-Mm?At;)N=5DVprPpeh|V7S z)qJUX`gqrUR|#0+&q5f>1F1xnLk6Mu%%-Vw)?4!YG!ATpflU2p<@M16#ye`bth#2; zPddU!(rLmb#)294+k;16(O9gU1k?MT8<^h%^S{9SGF*SB9JJP3w7HfefWq~&1Of;n zZR~*ie&yfEdja4po{zC4XD0QbA$J}ej* z4aN$#Tp`Et8@P7Pz+Tqr+MY6t{H;m-aGC@+c zfmL_0{kVpTA^AJ`DVk^0UM}I457|-tUUe}S{epDp0s}^tQ}-H(>+SV;F6C4HpH2p5 zKJa(_y!3PO-jwaf;mDcQ_tU9kvTh__*X%Xovg)Sfw}k`TgUS@3nj?>_mBuGBKkfGH zJrun>Y#Y9R0oSx>Hk}T>xs!Kn!?g@^Ss1Io0Q+sJm&e1al!N*TWek#+ur!3{mhey+ z&vSeR1WLEMdT%kwA-*5wNAdS7v#^q7B|HL9G$!{ATrkY!pAKY$WjpC)06VkIn8g&b z%E~dk)0tN~NS>K_%ctropl><1TA~a7=9>0y=L`dWZ0rZ1rbZRMBJ9erTjgvNrs(sT zunLCKAot9O8y~SLIK5mzvKpKwPRF;D{P zNLPah*n~%=r8y#f$55T%fzmI7XOdt%Y73dl#QH&I>rh`LjS=R|1X(-0Xso+5vv2_H z@EyG@o<-EVM=H`ex~UX2LqvZTA{BOp_pefU9%oTe?KGTcK8LA`fnz=L!#r?ti}9~@ zYtzHC{j#V#VB+7ZW<^_hM(R-}9zppP|E5k#;v3f}I9fO-xOaG>lNJr=w9&zLOA}_F z7%Gde@4NfBHPUBg@SzM$BC|FO1tKC8_Xqg(7jXUU*q`(P&d5GMrYAGyk&ZPeyhbXp7JP-gbB<`<7&6~G z;*ZF{E4WeSCO)a7W{i#`YqKs#@Ghhw&eTpi91bHYqsLK-l`zfkGyBLg!ZzeO06iUI zqN2APzeawoMh|5IURGsX!y@qU$_V?5>7Alq?2+RW4cODLUk~|SB5HQckXtj$)b_G=AX)R|>J^ZBDMUXj-9cVuq}FcI!6C-8|A|k? zJ`L!O|kv z%A~{%M*X?xr#uCY?KOOGu6f9I=+Lgwo{4+qMBueFbiE(PRCj)t(|BBUkGwbW;*jNX zMg_(LxWwOhsEx>KyQYDSfY)~51N@CJ?y(J%4noT;f@!#X1pnA*1D|wGeS~MrH86{U zx)1dL-3R|qg;nH|>g|Ohihrbq)E|sY48d0@Bac!|N0r@P8GK?1QlC%0q6qRb*|HZDXqFU!$t%ECk67>}D()-AIuxPH<@!pe>s zaU6P_AuJdg5~lApP)(sCIr_M$hB#=S6?M2N(Jj3IgKJ{`&2?K znf4h0L(SKoSJNo#Y}rh-912ViHFV<^)`)H~$XG7)#52JIdU&-#9f0bf!}{=6 zL|4>H?i`C#i_Iua5;nW{RkH1<43S^U@%{kz9Z||p(#8V1Q6R$M z%V?Bk(?HL3)o1|f?RbSB4oGICaNpRL{bRD6O@cD2bHzajE_cl@25 z<-=)YN%MXG(nHZY*lx$JyB^?*X9<1x=Ya>*5%^Z!acmS)Y0wdgn_41Vk%?R@`NS9~ zXJ_bpR{cY$Uw!^YOwK4eLOCMF1&nDmtxQJ-F5wMZXdN${I*h=A4uon(r+jk?3|wF* z@Y8XD*FrM(_|68v9x?Z{nv6uA8^*6ye}Qe`pge3cp_S0HBCE6;aEHUvSL7nB%+wv( zr(hYP|HUhuesiR*N!nCeOxa+4Y)3}vMvnL-pV>Gj_#DWZFXF%b;cw6H@p|P2he9th zUEe(Okk#F1u1ZucdCrq|(dSyDWcggKAF2C$eSGlTDg_l8`uleL&-ab%b!~k6h5x=L z{`(sEP9uspC{GP^8Kg;N?!^ zrI;oi2wbnEgjOV6@X*owW0%`uh)4i|#U)rP?sdi+m9224Gv@Yokd&}O`3#~vX)>r= zG8z0ku9>NLb1kgR<&4(qo5AQHP?HEu;K%dyyN`~Mfgi?jo&gn}iW(TIf!EH)ql>9_ z9%+9sHs?y?zdFQ=5u#-x)u@iRhvq$%?ne+iy1T6MB%wo%?kk@Yph4S}~Ugn~sU z;tpVjGsBLih4sD=&G7yW*a#(xMmswhR|CM^Fe_Ui*U7oZ>>Y%grAO$-PKktD;O{_B z<{+)mv6!%^3;=bYBz@5->4^1FR#YE_*~%h~y=32&ZOh-a6F6T69CNzO(;<=PFwo8r zvp8Fx{aTTIHPg5r$S6Kw{3(2+N@!I-1Wuji$v6C5A9<8! zyp$Zy&(tCEG|F|ErH7#Tr;l(H9a&3sf+XII+o~5s)s(xyfpSab=L0s+byQG}(@X|c<&X>5-%+{TX&PW*PJRr`mXYYKb-)>vl<9k zZwLI98Q#Q!JO{O7HDJ)5D->;T6u06P&*e6Rev{cx$R@$B9kRf`5jyg>!#}|Cg!c=u zY|2XgNXr^4gF<-t7JasLmHblj$iEvr;c$HtsRfn(O58dCNv1?)P4fe_`R8{{j{U z{(cYq^*a!mifKjb^{|xz$VQHt^LafR^bE@;8xutV8_g^$C5^(v(+gb2zXCEF28r+_ zBjl#p5X1;%G_VThBrfm2E71cerJEz()Y(vDSHzGw6mCTv`Pd#GmS8w9t9zRKtb68u zM=BY80sgOFCh+5B$K}sw;y8li^ZLl2AN&AE{i(Wz)(81t3RCgO9z7}eRv4N@PlmSx z$wP=$J^MnXro+(@WO3pgh7YK8W(}!4Yh2b|y;QOWJATSD7@^+Teb~_Js3;K7((jbDN^U1QBy-r za@feykWVW23)r7fD6ZS2!6I;{z${~H_L|`cqgUX=m!8L;QZCEL<#i9j)u0AxsY(l! zo{xv(6oA5WocG*96Jq3#-Mp80=^KXwpm>b+W67h3ry-?lQ2C+`JYiO$uzFcuHNsG7 zh@kL>DRG+jsisw;K#(7BXKKGCJ$z7aeqX-(xu zDUnnt5%PPc6QP`KjH0VU<%z>+V+5J%K1M{m*#HlQ9!ojo`w-qo{_6;ZooFGr!Kkr& zpUn@$oG>Pz!%4f<^MQJS10WyE=hK+qf@dli$)AYphf|Mo5K%TTzW~qKVxMXF`fV}A z;a?7aJN6a$)<#6u<|lN^!MH5=(2eSXzSG%o&v0m zbdZ0eO1u1G7J}DQo$1kx>-7!bJ8^BH8o*li?I{P)4PbdR^%|XBRx${vtPpclbG3pu z*CaSsNP%8IvkMhpsN?*}*;-i>f)8|fTK(NiVRwBV<*VBfsn+Z+lQk+YJ+cwx^$-V# zF6NK#smMV(Vpvi&{JggI3)zF*wD_(#<5agO$7U{2jTEMQ4{`d~?$sKazDLSt{k;uf z@4f1IrLzl`rJ*B(4ax6^TaEm#z7@$Eu4#DP+3=H2{yTJm`*z$j=`TC#Q@=50QV1+m ztkIIMzsp&vvFWQ*+1CiWq}B*KO85XA0Womvg7b7Nm#(MsmT((#AE25vb0nnaYPog? z!Xfx|o+Z26!vOq7I3ltql7E2v8`vw#(fo}pN5wgHgYr3b{mR5Nz@6hN?Xc@qF9sUt zN+-#;+7myBBtIKy$5Qd@N{vOo9=gH-b2N`&h9JySZh2*#Xojq1(>wOUs0y~32JWBu-VxbB3nI_M=bFfH^iX)~s!tw`F!bCp)u%kt6nrKM1Mj8G zF@Ja9P$u;=e_rE{pZaHlWAvW&d&hIgRQ$N~c>M{EPXY3LJyW>qQU7pZHJd>rrKU3f zFm^;4_nbFMFExqQt)oBDWX}L+T6T9wR<9_%iJau1p834I_qPGIKB6JbNF0f7I?6-G zND}MO_QTFQPsq)pscqoDqMvuN{31KmiXt49UPyRq6ETJyv zci>s>Y3p+Z2b7^~*+-QLSkt~go~c<7mS@m&sN+jJ@ge9SokZD0?8q_@2UcYq2`@p) zqH>g|F)2z{osk?tMI(5f@-Xst{XJ>B&b`ucQ5s>TQyap$_2mD22IXlQSOb|I^hy|K z8PpQP+ksN_BJ(D?8h-(JF9W_ujjy{FqI3RgK2lDtTyAYHOLG``WyA+r-m_A#U~u5T zVNrgo9{?Ya0wbDiCC?nahAPvr=6&V-R2_v57oi)IQKY?|1O5MP2|gULC2lTNt%&-8V6n z^N@XBSaX#}{vmZy$s+jdNj|+4g$?t3-Mt^D+A^JRvck*}dd#Ns`fdwe+Dd@BpQ+9s%8Ck-knbfeQf{#R{zo)h= z%&z~rme#qf#!_zC14q>QiU_}3=tTAg#&2N!YWXxafbYnf-CtdbYTsx(0d4G3R~uP& z5xPk5gKGi)i77aA(6C(OkMObPEziG0Kvi-(^-h*ajV$e}j7-6C;19o}>0<9Jd%A$n z;$hM!OjwBUcZ&WS`6Ys?{Ptzx<`eG2o>6OBPBf&M|3?`Xl`d$Ybs$+K~2C4vnqv|N{=Oi zGV)3f7nvAO$lJIXkLPJR=uAapu4eevoa@1~pP2|6DLqowO|H-Vs?y=s`>8px$*|#_ z3802EqlG+!A^=q!xvpeN&e~;-+$cr?8DzW$yBvPSGzEJTt~oZ39!pK-c62@YZ2Tv^ErRnK-A`j8G9UgO z%*zvDIsbS|+A9SWohWR?xe;(&X@pz}Z>C)@j~Y|Iy(bF15zV@o5wQ`TSQW^rER^u% zI*?6r(wJY_%Y^f)X&8^B(~;fM?b|VOA_MV z;(Zn{?-<>>yr+j$BT7aIvyPZ0BZp%{1%2*|84g?@>AsRSHjW+@JB=nb^rF9 z#%*vml_FnraTKJCM9SB4APUc~o(Buq+4Qg?U+z^0I;H`ypwG!p(r=Xfp+e1f@kHXn z2f*K{ux;O~A>4+-{*PwS3IpLVwViVuNAJ+$! zb!BkizX{?Qe8=B_|Hk2r;u%zL0qSqwZ*?%5d`7%beGQQNsRJl)s@DhKvNrbQUc99G z5Yb@fJ;{rBZmMHJpNS&{TARuGI&oA9y&RO3#grjwJSnb>jTqaP_-LY=)w!xu1C2jN zGd@EFTpTz8gUX5l6#p!G$^-Pn!;;%#AV6eu8D#^dM>A;AB};bNW2!&$Ue>Tz1Cd|T zz~mThglbumBb;Unj=eqlP$iIDuGhe7@ix)fVS;b`J@x2v(o~68%WMbvS@1?v*i2x( zyqp=#0>UOQ^wuBTE2v^$D4s6MguxRJL+(%)ux|j{vA-Pmw_~~E9)|tfU@ImHyc~GF zvPHlJ_`iYm8`ZA_0&gUK)9K+Wb=bt|J*;>>1~7l4C$e}q*(|s!?J3`;ExQm?#CR@s ziDS=bR6j1ONmZoFHIfG=yeUJd6BoYb8rF_p68Bf`A>kU6B$DqKV5$2@zX-1d*(XK_ z+85woDS}_X{te*mMd!tLIdYJA1IK{l@;j8ywa^g}3I*PTo5_t-YLE!n0J0})pi@hL z_O#jgR)DaccN;L#Gji>NQcSmX%2&;F1rNK4Nr{{`PBpG_oSn>#NZ)&8dcP{srA+6N zhb8jPCS*;4`=^&8RT+E2@HJAUhN*U-E`BOZjx|BPdp~90n>(VGO7o{F= z&7wG>h>s0Y+1(b=XC=6Ld|`d#fzl@<09WFr3Er_Dy4Eg=9bu(7R{}GMVs4aCr>Rwy z;tYV@Cgzr=c(soCQk2Ia|tOEN8P6#05ML>OJI1`1_z@E1K1H!7Q2A;4gt1YqS|tX6flKv1bo6* zoAxkrT%P1~sN5cM=0+eFXAjTx{H{B*7-*n6TA|5jmQ#w3z8lfuI&p6bj^E~?INuiE zNxYisNX$%ym5oV@cja@cOKvKwpTv7lXI4cJ^Bk@P3)f|0C**Vd z={V<4k2aJlVuv)Sc06NFbV&}po8FlyA?f5b2yYMtOL=}7n7esTJr}L8Rnx7}c;}ZD zjbeJtlwNWEUo?Wf>*>kMqeDE>iIB9!b*Vx=&`pf4R$>hv^{VhX+C}SN1ACz+h+qn? zh@1p~fl$UKfVUf7a7+mQ1*(>Pr{P%9WJAx^PUj38>d~R{Nj^v3xLx4BP!T0dJSnAT zq|?+aB7liIpM?D$h8(IAy+bw*1)dIa%@X7GlQmb+W4j-7$%&WKtx}BDpxtQ0pp1td zksD@7u_O8q~74 z3g&T5D(Rw}-81C%OumI|X1Slw=e20P_1*~k!9#~B z5a&gKUr`3M9F>)~f!1XQa^za;m~o3b-Lz$Lf(*xU<~|nU9+go9v3pA9oG-F=!1Wc)t&#l3EEI_KHr)RP{8y~&wSnvHz#CY&We}*(%G*Za2%L;<0uC!gRpkm~w)q)T ze0VL$oOo|C-1PigZqy9neIdbceGA1{z~_*;tX@N5RSF(W8!X0TsBVluQl)@mfJd6` zXyR1n=CwiDo50X@U0c3e0M2z?{k8fEqiwQ06F53TS!47?1q+RYiUN|+>~rl}8(n9V zd$D6N4O;HGzDl9QztQ{j*k(B-UcwM40J%QR1WBbvdGXHZaT%wAvsI^a_x>vKLdB4{ zkvOV?oXcVM%Sa)q=Szd|IIQQnCljd7-5Zf+mjVRI+&bNyDb5y*pV2*fJ9*FDYhdPs zrUFqhGYeyOTN)|nlAd`l3exJsuus?=ia2G*5@m%3B6*C!N+Y~Q*Q2&j z-!*}A8Tr;QBL3hHFylSw)L4lFt=L;dI9YPSeU?+#noaOIbDjM4D2d8*Ivi2?E{EgJ zbir@K_(C`lSI)6!{d6kjbdY%B@Jzb2X_;jd5st`&3FX*7Ay04v_zUp=Ao-{jY>J1I z7Sdr>Q+Z@h>L4$U*?B8)9jHCu$SjlycQ!ROLH%?WSli`?3L1*Q0rgQEjG!!l89&7y}xS#96LS?lu^TW|{(!WV(R`^{V!O33;zm#Q^8)_f| zeq@NfU>sWuG8pd*pl+O62vs_C8j)oR|jMWz5XGIVD@ z7u7%au+A3pbhal?+KdRNuEYT0z9JwKMzeRVG*j8rV7wM^UE;h$IgW0y@2~2PNLTp^g90KMKhe7WjSujmvz4z@@ev_)DL{| z8BK3C(aosI@ALelDWQjqN`Vq~K<}e$QGMtADPN7H1!i^jq{EmJ6AUs%EPct zgmXs;^V5oM;FDN|9x5xKp5ds724AXR{L{<+@HcgWl#r5j9gIf=I}ft{mT-iw&(Ue= zz>#7$Qec~*8HWq3{d~SgQ}mfXwnSVJBz!szxJUno>nUie1MNaZHq=SN)KU^n)glp> zykS!CeF*g`^RV+>!rYr7*mKW>pTgyFK6NWYM*-0HB)+S|W}CIr1{6+?+@tQVI%?$p1ZT)63iYgE zR!lyB7W&Ac6wH#J>HaINKb71g3MM#P=P5L=bigw|@LB$D^0P`V*Z^sxQs!%PQ2x%W zm5M;2jdzX4aW4>FN|HJF8m1)|kL7--+z9+w@2w75M#!S}8(1H9h7ZN;wQ__goebn(8P!tTy;;`%KKr!o!lZ)&*2*{4pHQF|)o?76@wu)UBya14LF zf$w*~=CvbJp~`3`qQTz;-Xk(hs$t`ftN`Mq{Ria;bA;mlc^f{z0Q?Fb63y2fzuv&i zaPjvx{DofsN}ojt-}s4?a&hD>f3mv$Uu~tbx<d1Ujt2dwIYFo;;cGP24?Z z-H(=Cij$?w;am?((5jbD@?)f&fT8*>Ftc`9OccCXo|KMT>L!&XnlkE2gMI8S-Q%>I zii%TCCoicWG-a1J86N%Dyw7OEv6r2+VJ%Zl`0@5Qqp>A0m(Sz4%9-E0b3J9GH`$iG z;XsX|wq)8Hlqb!9DSuxRSZ`ol6nae)e+ocU360Vl2A87Ox=LO4+c|@R;J6_=65vPK!GPbtvxFF-KyEQ z{z0O7My2?7B52LOl)ahUyOw71M_mm6MutFG?Nk2$xaI+HU0V@_p>9&JCOpLnP((!q zl**}o-w_@*2m+0B4bT4<9`HqYJP}6ztc*&POJ!P2<5I<2k=h-Vf@zPpKC7DZk-@4k zRe>nX^;`#f9rBiZvvcc8aJ+Xi{%fZqiV#j~0Q=R#is`@*Azrnk#CN%OrG4kx*_=|3 z=!rwbJ!UbG$yPZG5t3)G3WwsbJoC=aHWeyErDf8<0sa8*aWZIE!#4L`0-q>DJT^HS zL)HlcJ3YIYUPcqkEhLsR-t!GWJPZv- z<-z(Q-jY6T=X0s}CT>w6^0{@~N)yV%lxGT$SKKuOzWR+EHl7&_Zm5pha(3mYq;MC{ zea#^@RQ7~+NGA^&1BVi=XTFDHC9+z|uTq?;d_(Xe6`F&;DQxt+IG^Wud_S*OXHMa1 z!m|41l)MNB1=mmhWdl7LGM#pz5V=I#tg{n7{0vp*;K?^QLP_}s`#V(BPmG#!Y zhV?S6H=^ld(j5)!qYsJb0f6wE#K|!b9hbZnNJpoYvh?at5j=g-QCX!cSx-~_8Y-)c zN-(OtWaODvdMj~7@Sa&|H)TUQ*QjjHWz|Gbbu_}C$~K+L#^=h}?HiGfntLeOHWBmA zFK-!z-~;ooEICL8`p(`H^JUR2%^dcMF>Ch=m2zx(#_uo3>*KKHSZ4Ts8NP1ddjYm$ zp7?w_-Y;Oh9lz&>T?Ts(e1AqOb%J}W6D}S^S&(O{PTgv}C2 z{sZsSU@U$jv|oCU$j_=N|HFOAC(BU=^k(k9KV`c15YfmmfG(Yq`zwuBJwJ_iiZC#)Eiwl+OSTL*;kk4KU`J_4)oth6NRJrFGqOaZbRN>i z$jp~lJZ{Wl5k2}-oJZs#)n~xFT!Fu<9Ngq@d8U(&rWL$^O*_G}&3E-ALc%k%v9upW z@mQ`=vUcmtlGe4MW0i=YVJnxV{t%1W4zapXFXumBDA^J^wY39)eAYu=XtpzZswIi( zHju3eI-tk%$TK%b1qJp6>}64wK-s<>+bz(KFd>@D*&x@v2#1ZMN$f~mWgn~Jt&dmP z$)mqVU{*Arbj7nHZ+WG2Wd$Ff%;-{nFVx2MFzO#KKS3k6JQe;YP)%TM_2@Ij#Lml}k*C^+3aCVm_s>guwe&lO4()5az;dPmp@ zb0{NsoO^OdDf~zCqUQnl`TKEvdHyP37&)m9_e|4-9fsGufx$ilE;U-BM3WA;Npv8e zso4x%7oCFudMxK|T6NyQDTu7gAhNc0WJril3ueJG8 z2|7nNts_ma$xg1B%`dC1vM3npkg(M1j*@=O_?5Kkmfrn5e-)g_GuFu+8r>=< zis9sMA|rnA^}Mm=T8anJkTX=N67kKfqiir#GdNt1k)FXwq4e;oaYWjOc%GSH`j0dK z03ZNKL_t(4FW~+aM$&kNK|CE8w_$weeed4WLcm@5zm_(vY^;PzokhtA+en2driTDR zvxz@{0L<|b*HPz@_ZY_C1*?n|3SdOcO2~O1@ZGYx1+oh9u=w zWu<0kFe^jXddR<|m%26`HpN38b*ma+C?|mMlX$*W>4D9pmBbZxkSBf5g&Mc~Y#Pc8 z6yi!bT)drS?BAdP0H&kbK-V6pp=S=fzk%z&fc-a|Giw+=ukQ8ZAEcwb>tqLYsU7Qm zgH6B;jQ-!3;WMK@3mm}5FkyHB@K<)NenqQE;)hbRc~4fhAvMPjfc|le0)7x?~gwpWPRWI znWZ>z4a#&Ad7jP=y-$He7y*C(lfr-0hCcpV`w%46GbzR;!cYx{?%zY{+lC>WDr4U44ugv*0p5)+FVDUWUEDmMuA6`78!-&imnU$t$@s?z=sndlA zSB26IjBMuTx8vSv=)7VS%9Jjl)6p3TdA~aa{P+ZnuDoaUeh^`_ay?9KGoYeNG{{3~ ziQNTW*>Nro)cGIuoae{?E@Y!VkDuFfETE&JcGrqgRbzR4*CP7E2?rYOK2l@RxLfO_ z5|WI5j$rnVP&|$Zw*fk5S07ah$G1E?4Sx#4VUH+c{_X?EbPp8XJcqmt6|GkKoUks;yoN+%VvJcEKs*5!OIuOkg* zBy?|7^Z302*T-t%#s^je1PFr@F}_S2Gr`%JJZCK%;Hk*-oTI5!FWA> zIU6pTg)xR{uwU_4MzQZykT-9g84+Y8bh11Ne9Pq<$H`-@xY`upf!n_7!_4-=uL@*;*H1ZvzHL4`%b|1&o|j ztt-4h|OtqrkqDiiM6TjRbO=ZjB^lc*X_ z=b_Y@(80m8B;Hwlbl{Msz^@ejyJ_l_*8#VZbFzM|r&i~>HWV#=O!>U5;g~G4V&v{d zz{FlLlYQp&CT1p?Tk%e21QlO=(7svn>l;UdT_|mNHzYR7W;$$!;7;P~WG2}_OegZ% z*74HX_6>9&BFaebd#|f`Vi}_Tj-Grl|d5A_w&2Fsw3 z$2u(Nkl6xJw{KPo}&RUWFRQPFqp*+Cik0|y^` zlW(2outz%{oChd$OFj}!1CayDnCisCU6cl~Z&aOkU7%Z+A@D+_k#_9S zJAW%x-p|O$J!erf_0p->rK4k{0Z>YgDASO0WSacp5F^~guqn7dnE?d|gs!1!oS*NXyqI)%^h(J!QQ4GkZ>`J;Zu$H7rZ7<=Lk!bU552U`gFt*JU8T@ko{Te$HVN zB^*>|9wXN1v)DqPJNKLXbz~5!N+FWZ*GNF1gIbBZM5F{W1}x6sWAx&+LT{pNIy~Dy zRXfrA|J{b0JOeN9gjbSJ{c&x zJn=K1Sph{fpDqWz(C#QWwH}20?%ts*kNmF7+6L_!Pk#CVwt30x@kUJtB5uqy{Bbu9 zmd=uVek9)`esm2*pKqOW!O(C8gN#NQxB@UUJGQfyinWTEsF6=QJ7k9&D3SO^bm?WP zr{id%auAVtpUOjL2qOUAkzgtq6ll_^Ry~+c<(CI?yoAD30nwT(uZ#108{j-=2Y_ic zbDD}yb#xU(P{s3TM#tM*@sap?3b-x%E9U@>7o~il4RZOc6;WAFeqIE_6dhq68l5Sy ziSl$XdJ1w16%~Bylu+TU#Ft2o>{!h?pHC&Qt`kPdkI1O0NOAlW4V4mv#9bO*^tyY) zr)sQLdnH+4gzN&(hD3zBrt_F5iVs9B`LATS>_n7;2-&^XZ&Z_;Qf4G&O5e}uap7;` zmTyG1K>;_v_v&-zoNEUF?=ITqeWqb*rxSoF<8^O8pI;7&ftXi1qIuT7Qc>N&{6@?w z{dhYzAVx2^M=QgBr2=6V%E;U}_y_Tj>EjWt0POPm-dNV@y%5|d4vBIrjqbjB30V3R)=BJHslo!QK`#w%%H0vM6&ap+=!@ySa5_a+~kGIk! z;pTnjysT3AND{&a$t&2{&tDGv?bz=fkNgabzYO!gotjRV)=T$8W#1la;(wHt8QvAlV#y$i#ogdq>J2D$VC2Tx-V981DK@h|(;g0#qn}^&DY{4j=57FKh7p~@ekF-r0Nyb^YI@KVzOyWZ9pMx2aUo?! zGdPwqTz52u9LXm?X83*qU+)|Zx&W*!1%u%-;Po%Z_*dew>lWhX%kxoRF>Z0D?7jH- zY)-xIfLD}27+x>Kn%3nxqH9$RKItTlrqUTi4?D_XHlmAq@>4oH=6B3PH{x@p)S!55 zL}Lq-t$0)RICpG^bEf1i@y?P~DEA+_fMx>}X{vl7eym0n8VZd}^8dtH%MorYq48xk z;bbp|o8xm^RB2s^Qo3>SQsSurRl;Nc1?(&OJHW!o-fxROCI92_Umi2a3^@|bfWHm+ z3mAU`_ztJ&ofAs-jEtyZh;fvk?B(+`YSO`k+*g&_6zzNA{GN`LwR3~SBeYe#mN=2R zeCg8E*^)PmZ;NcU>}vtvaI?-3BA+83iBVdSct9NyL3cwVveQWTQX;z`cnm?a%rIaPF~J?Mi3?%t&UIV&kPdm zSL#J0VSHOn^l~|mDk($DV0?hjoqCRibA&v%94*36jy2#qfo9}t5D*x3;G*f$Ys09IdV^IF~1f68>Zqaz4bzr^7)# z+!aL;Ayz^-1^*=oU3K_;E^j-+gRI#dIwGc0kCQ;CSW&sE_3g&NDZ=0L{zC|f_U1&%A2q?YrJRL73<0>0=Z+h@^$Cg zKK8zH@6k!vBDw%OX0#ick(Sa6;n8-!%Nt2Uh&VYig^rFe&*)s1LVQ->-bw?|ra1Hx z_RM4`{HBp!hL>l}9~H_Ftm~CLVFUg)Tr=(WG}<^;kxJD>bgpKankO$Ke$SnBoO``K zp&YK&I7)mTsc^A}#1bK29$(T#o()Hp9qEAybDc%MW(v;>uwh*?lIfzFQhd{RR$LKA zUj}FL6w+8JZWIuGSsbtIC$)QEM}+Q`O56O~(!rDR0u3XO5AY`%&PPT-erF=+@tTd7 zw*_2A3hZkG?;H5ev5gUVi!|bU0JyFALPgUAKL^vAtv9RXC|skC9@UHi@`>VagqH)K zjZC4BQiaz-b!R4DuiEZR2jv>*Xt2du?kE|mqaWFco?V2;JCx)Nl%u6;a8)MGKE@Z~ zS>H?WXhc+MWHeN>F^Y}5p=QkY*4qe0;}H^{Ip_P}CEnLDUGi|!Qtmp+Ib0pOh1aU{ z#gcaI4tm|6rYCjU@$8s3yG)#06A_);p=`{L;kqk{CTet3`CcP?5#-vhq|Is?n}#1V z(yHDS&Epu&_aS&m*by(~3?_~LyLnG#33wFb<--tNm@}RR`OduCmdB~n`J3U z8c*{TKJajQT9>aRpIFxViR$PO+4@?c3)dU)cfdHZJwivbEA)XmEN0mgp5~qHP1!4YpXZq~ z&AoJ}iSDj1MsU5HI&avrGx2_=lQS|-t#~I(ZY-7VJ%IhPasp`9S!9cbbK^oZHytTI zzAj+AlgACmYa7PLG0oDMh8ovNq+uE2K;Xk1Cr<61vg^sOM31=F2^r2P~Bqjy>@EvSik5;qwqekL#an)DbDX-;sUrgt?)| z@^Bye916P^s#cb_*|~-?RtCU%&@_yCK6k63$k^%s0#b05$5N`)@Gw$13_sBX4kM{OdE7;U_!9NC1m zczjnzk>~_s#GA@tHJjo6W&fqfCGAkzs@ixSzXePwq{_HXoaa5cwK~wz=UI^?rE@ut zKmgQ;G73=pWRzn&hUJXrG=%WGd5XgnPXsSvFlPSZ$C z^5SpT$Oz1BnBOSJlOg5CyWvCGujM$D(+wvS-BP))D3-U;=S0ULGM>CUU*(8N_=W>4 z>!+u6gI3~Z@_$WPHAh8$tBx4y;JktTS8SljHhH^d4wkWs&bBEf_YN9ZmVaQwSaqPU z2r^wO42DS0?J;7dqa^;7%pxsWN6OXN7ZES(EDyoSLQI^ruJ6*dtYz&QF*^2euI1Tl zbe%HzP}qsz@^~7YGaZ;m=B41jF*D>D@uicBGMW0qvLA*K<;tKloOD9@ljT?Y?`%ez z8IR8LjHEf1HQMLo*@y0u@S!bm{Xc;JzoU$lO?+N}{~rMVp8+ zED4B75Wx85m^&IluHD8lEE`gOhZAoIEZ8s-nITxs7fD~Hc-Fj+_oy}1fr^T78O9vI zzW}!p4y#wdb*An!fe6NA$M>1%QVtvv`9KFrXan)AzX1OmWtXUo4_+TKCIT3a_Xp8% zAbT@8()oA+_A)@qUsyf|p@GsfCUtLbyJJ~2r(FpBjdGo+DEruy8x*+7M77+8O%Az6 z;$W#PLc8^A;uy1G?PJCB*c6xnmV-VnEBq}dAp?`vd+;Riau6^;u>sGl6*?r!; z&vk2HqB0_3ts{CJXES^PK=gvL7dA2rD`>Z}OOviTgOAU*qPuJFJ_MwJ%dUY0_~9L@ zlZY1$S9*1{mb`={_aefdo2dOgn6bl->-oL&hW$R6IRBr*bLTo)Tj&BH?nxtKRIvEG z`nlU!E$>P`^SRdgzX*vRFFv3D>~nj^zW?xl{OR5TdpZ|1+EvN`6{FE`d(cOpIhx_A zl6N=&@{43fKaS}kXlu{U4MWzhZ?41J5i?}(1{_}0N)djX5u2s#Gy(;f3TaMm(op2muFzJPcw=xLpOdmM9abW)3X#|WV2%GCR7!zyCX*Lab z4d8ki%q^QK<~XbgIJ_Jk>@lDQCGo>kz;RU7_XVsg44CP_Tp5wdXkRIKBb3+sLZu4Z z^sb|G0C$uK>`&umrOKs{oaqF*GUbdl&>JWJ3tUSfD+Yd%*^?$7IB+;p^9-K&R1s9i zpN)UP!^6qJ6v)N<$Cw@RP8Foj=qzcA_gBSq-XXM^c77Xbj14<*Gt10ge4x-^I*hC2 zN@R-i89J;eNLk8ulx@h8RmQp1?E`Lie#M*TIJd;ZSn4MctIwlo4#iSG^dt>`oj=ZSR>0R>#*4DnsdtyDia zWC!`7>|LD;wT+T1)~Sqm;4vM;SMT@KD^Rj7G8v;!%lJEBfgKUxOL?`NYXt$&f3JI6 z8xAZbDMJCx3_l|7tqbvh$AbVB`eameTI>>cJj02n^ckq;;LUmpZD~ z5vl2}jsW5}^|HK&D&Nm+Q-1$hOI{^$$-iwQ3==uCr_-xme*Rx|N+hn15eDIvhQ8mx zN*=hD@M+Czq`@|FJZA!sMvmQat#2!N&%Q*%Qd$*W3Hs2}HAuN~+4`i|)Mr1fZs zfK2iq)>l^vUpg*W&oP;LO+GJrS!Gf&D{G*h0SN8pIo`JcA5WeDen5f0Z5;%HT~b1s!(OywvU-|Ok8o6GDtnz#?rTN|`6kj48t0OSV~JN1+@lWs3=&hv zt(c#Qn5e)!{W=;u>O zu>75dM~y21PGc$&sXQ>~eGzG&ucvaswQAHsJCYMD{D6u!_kBD=5ls$An}?J#D8i<0 zVe*RzB$v9js~H*4%?MYoLzP&qyV06tI6C4%0)M~?$*ib& zALm>iRbFprw8@WoS|2#8XP^~KqZkQsBRknmzM%MS45;4t*hof(;|wPX=>{Y+;7MIin>3ya70|U z;q^&Dna^YP2h)7-naAsXq-}=a^2kaUC?`vKesiC5Wuru<$ts>a9Hw_Z(}mX@bV9t~ z_4Oqjyi#eGmu>xwuoi*C7wM;zW*YzLh^ks`;v4ZX&s_IY_$l8tOJ~xJ7#V4;0F##% z4P0&f+w_ix4FK-p==($u0$b-EG<~0r48m?vo>5*=NuqNg=>o}P7{%Vgr~5(j9XFGTHdHOtLC4xnntw*}sPGV_G8 ztDI`019XHU4zF;83N%`Fli!t2_;A)B|3)LD^hKb$trHKJZKrz8K^t_+q#<7YWwxIY zbM)EpzK5?Z@{Fq|O=aovOc-VT0Cd^|r@SREm{2Dl$|22{I))v>%PF&V7m*@ntQWYC1;m~FZA(D3L7k?>NwuOOG6 zt%=Swo9`Ynvkt0x{GWcRGm#rpUcD3lZ&;3G&9gB>G*Jxr51{%3R0&A(H3qB5k6DFB z!;urHLZ9_66CoeGf|y2nC+D`Fj6pn3JY!^g4Iwk(_Z95ox^wO21Wz1NJF)hF#I^@!FPC{Y9eV(=L{so7{Eqo>ZIG7?*J%Ak)iiPdQnF{3a2`Ldt?uaErvNuX&L zU6UIZVC=lDm(hVze11f$^m($L=l6K9D!9%6aJ~0|)!!cXugDAuz~z|~LXTGwD2d*i z!Ql_vp%9|LKl&fw++U?-d0%@NE9k%1GsH3UC(n3!!$uP>b}+HRGr3k%^wsfE*P?Mx z=TILGn}32E*CZb*u~!7lny|{-DoQ4!lf{rEr7r|jf43TdD7;1sP#W2jOkwxh{$%`> z|Ag?O5TW9lXEkI$#I1^KZH0(65FSjZej0ul4t37n^th*8o1BOf|1G-7p{rn>Fo-3awO_s$*^{2o!FtYnva7j@94UP%RC}f@z*R>yVxG zsD!-;+G^^QaILI_RA3A#=(CKV(#Qx${uF_GWQ_psi5k_;JJl4?>@VtiSxmRCz;7HQf!5dTPPN2I8lTSG+(gHcRimVGg{qeo~ zJb7R8MF_rB+N0y(5u07bCx36l0gj_I?1v-iA%FE%nGo{)`6VGc20c&Czwx?B}tvF>*v)Q5jv63!qX=cqgye zxj37-Zpr}bb0*yto43}x=ro)kRKJfqH@QaeR=favBMejCKZ(6?KKaZ<8g!rFd6Pz} z@L(h?O9x;Of`5*F2BwbVPdz>f7G8T&?ZZY%W2FC4S{NH}2-1j3|Hz41i zh%CeFQHDdhaCGBW?>FyPbgTw2>5$)}ku16$Yv(I+m^_ZrT~7Cz>BszWnCa>IC2D7uSKS?&SE0`4~4hpp~{}=?tV-JWM+T8&xUH9>_zWz_2|C6nG z*pEu*yMOK>+%MAB0T=?UEd#+D=c)cZIV zetJC~0MH1xL4d6Q6d)a=u1Lg*v?f0bwgQ;?HP=jm!rPVi#pNJ`!D_^nO)QQr<-SV@ zTi;jfOL^}DB;GeF#Xz6?fZfv@`D2|xBe)or>a6KeP5_wZ&VCCbc(ioDk<3St@cC?c z;{hY%`4C4&-;c_WdjDL`ukRPBLt_K%2+mA^jq~Mw$)8`s)IEPcjA;te1-YnqC0I1B1TU93)tVGxWcVUM6Mfn-5Etj()eXDi#B0rXgu?~1(!pN1Q9B1 zw#LStEZNv8kQvosc>o0VK)|OI2Jf?=f-P*S=`9tBL%8v5sN8u!@5!6%SMOiy{K@Zz z&<0Z{g~opfJCPNNuLphSy2lm$Bkp%Li@bpGa=eq)*~?;m1NX4Ue%BP3% zTRc#dJi zthfg%qdc!?86M;rjJO^80Qt*9HWdF+nf16QWPKygwwn5R&kLvGUunJrJ-Olvep(ZL zEc!guOzSj!w4u`WjDRh)tQDN3@LtZ zM#Gtk;FUTN`Q>hKwQLiaV}zCW8Nl1Y@VbHV@haK!l+SElhz%ICo=E!u4Au)sF><1l?{va3)97s#aYo;! z^ffk=oU3(N>I0gxUUHdoTZ9z@Skym8;?16@Cc1QFv4N+hjA8boC4%!=b#A1Cf7wc;iTbwK-pOvxaQv; ziga$8U2UrqDOzwYL6Q<|Ch3Iwl7&L(;)n5X{rPd3N2*9Ek+})hRI6g5P6SoPpG^N$7#W`fn(ViP}=u8SBM8Eo&fWPARn~~Prkh@Z^S+LUN`vjw%cTz@q09idD zXZNTo0kZVm5bMw+=m&*BmfVuZwE<#zgGHxrD;x_Sa{e{FI*kM`hsl`5-QPF@N=FGe z6-MtN6fP79Nr$8eOm7v=WQ6M+O`&RQ!(mvT zEct^^JMX6K;Aif3PSG*?>rp&68r}{AgU?ZhQe}uyrQuN#fS~1RF__IZA^@k=LXv@_ ziF}pf?tVGGXSC>n9|aH-);}cr0l^*@SxFvUY--D zsrRy%d$jY(q22XtwK3$nL+Qd#yzjcdWQ8WP50?8Lw5I1<9a2?a-LWl&QUAk1{{j3TU~^Ks1~=L_a*NAcaY&z*K^lOL)GeKZ9FUd42*Ch# zt{<>ya8g3RKVfA>pSjXghC1wrPDhi=U9RQd(vruSG1q4+ySGYK4PG#u5hp(xN!JU1 zhO}9Q=QKmegDE#bdGa)@FW~-)HnsJ1>^5h{oEb-D9$QOMx5-jYd&xGC9v5wpn|#gBXVW~VtWs!lx$~-Y z(FNMKSJ1;Y$J$1@Xqov>+T!zduelM)rUsWL4pN55XUU{UOT;MPYYYHn@`Ey8Ra&Cq zdmsi{wwW0MR@eV9r_LrL0LMl#Ky4e5EYG3L#VYx;S1{ziQwS7&ba`(Q7H0JvkaqmU zX~K;3yMe$3g3tX%%xGxNKmKxF@$5CeJQP0npsE*hT=i{z`ZX!T&;<4&=v(9~B}QHN z$nt(F>~Q`#v*4xPTdi-4k7CarjcDx=%{628muG@7+%itUQttpW$l#jl9yH=Ds9P1{U=X?Nh$yskTR}SgjrL=QxaH^Nz0nk^9Ao}XS*b2hgctQyjwM4No*VNB z;vp4)v`}7j>h@r;^@W)1Dr1kvuX?nT-vqCgDat(_R>mk7_xMHe+68YjF)zgtX7cmFq$l5H4dCQjRs4uj_W$b>Q4LVHT8WX zN+=uMDG)XoaPooNO}qzUP6pvJZp3yFWfGeXOoMwXI7{(I-8UYdm3g*-c^ju|qB7Q! z2h!b>xZsQo4KGX`$B!Nc%*$ej@PAPAW;(s>kXbSm^VfuxdX>Xq3z#X0s5uRrvaauL zhM`t{!eWJ!(U7!aH~#|mKNNYKG;f+4p^VP}220}yodG$F83?1ix?YC$2G(+{mj@5O zBcP~lCjJaM+0u&(F@gKH7ypcsA328rMdP1#MFwN6skPke{5mHLKrV!NyBC z?>ZDXGVw>?soh_H-%S=913iO$nlN(0gm!>mfd4Z1WvAUl-tD%f0yH@wRLDnF63U^CLA_T{wZ2$yo~=rej2bZgFgZP2k?I!`-_hMh&5??@6bxnH(=iY zUN{|9G#RAN-1Rx)O9ky!IU<`gt2g-m1rCe9f{()P^X9-vlA~HmQ*YO_efa=Fi}bHE zTimnr*{-vYL;K_~CmlN-)ub(Ld>jiZW=l=X<;rChMm zqbW|ra}qX`ZPCJ3n|O@;gLl)hD4H4hK=LgjxNwb!<1rmy=6Jt3Bw~l6%qW(ZFj1B+ z5X%X|I-A#E2Sweoq^KEcQVi*AFmgCIcdWbP4U7H87KV)0LTMG*>P8rWKPYi}i9;7u z8HA97D(8R%3K>kJXi2~VkY$0(9B;E+MK}8M37bw7`9p%a{eFodn)1+x_G~PEKJxgt z|K%4w+L;+E86Hi01uw5k|)%Gs%G*GCaD_05Ygx z6xdmUE(5#;HX;idJn~+^6Nbwi&mbhcR_x=x+xafi)U={SO(gD_`1@*ScB_8Gmc5X| z$P%_$aJg1EldEMfd+(rnVc*Vuymv6!H3BbR3wSy(hXY!V#m~H_;XPvqFpSRlcUgp$ zO|x|L=MEvJUbD>Ps<%uAA;Aoj(};A$(>X;mid1I&M3kM9MbuBLxg`TM`o4o6Ht}*V z$KGKfsV_aV#-y*y>6k2Vw|3B@f)IBaL5&Z^i;Zu!w(|Z4{Bk@l!!`JP8nKJdy2)#* zjJOuEZ&+tj0B1LWmh#Msu9WG}Ael6Z{9yU2g3(#!_%5VCID(!)IX>b`(Klu0qC8N= zg62eMkMBJSe>s7i50|1lddLTIbHGJ>5q&YIhWnwfp(+`R>FEm8c;L%7jqin=wmn*~ zz!CRX`RG9GyWYtIWgHDyR-5=l=_#InI*u(1dbWeci5cv2j2S!GBRFq4Brb6Rq*G>h z47YqT0Dz60Js?>k-qApUn8gp7rOabz zk|%;+pWLphNMnFlPFYqN?&2?a;O-)PCVR=>)OmIXy*+r3D)B?u{Vc~F_*&_bo&)?Ex0+B&#Xq6J5YYPfcRfTxASuD~yGqnQ6xq<&WaJlkk)LC6Z|*NEc?Ui=jDGadmg8HMFdnJ zqEvTN0tWQ;E8eWwBtj~fG|mJV8R8PQj9O?9CuorSVAPsta7RQos63_Ah0z?8MS|!V ziX)R@WqjkRdu9ZiN<@l8*_3`iX+rrKl8-+oO|~z|h%CYN^Y@vpQdGSe%o!nXLRNP^ zsw=!+C*<`$n|}Wu%?Aw)1F~#nKTg=x-Oo#XmZ6*AdX*5VkbJ#I275&LNFPqc#wSXc zXg7^c+O~_ zrr$?!%Yau@*~C4=7|QcKk!8k8hFkysASlT_ox4|d0Lbi)Krct{N7>W`wmAUy&7jCa z28dGNAe8000sCz~G6?pojFRY8b@+%3()BWo-@yF;LKxc}Lew9I{g1)_0mhR?$O=bg zwrYZV0{7G4Uvb_HN{T4OpN&@ zLnta&O9EvHckyHUyp%B> z&nbRwBrpC^;3ITi(w;J8s`}{zej3{}M6`2FulC(0IjNn z{O=0xP=@F13gh`+0hH-=?xiemGXPYH0Py}J=8*7HfAk9~T9|ExhUk;L06YQvithnb zmC?Hl{m~2p8T|0z%kgcvF3X@`28^iWa{yiQbVQdJ$Q}050cEfSk!1A{4L%!|?NJJJ zJ8`7>EuyO;9c!2_oT8mKdr#XrW2_s(wm=0KWbp0R`MjPnQ83P54*W(2RYYU!0_MZG0-lrNmv__#dVIAJ~v_Ovv#HKS%|2RSO6r9Sr5i>;T~rEKh{4U=|9)4Q@mK3jY;d+UI? zXTN^me$o}3vp+3cHhG?||7|efZ@_yQ);H-vvc^&KN%;F?7D)f*Ips(U;z-8%WNVmY zkq==1V=oUqBn4~cVA-tPynzC7ldd^y%*!!IvK<{t2u!M+XSk6|#wzg~5gl;e~g zne7uwL??t>%1_?wM^OAzKQ^5?3_17@-_*Yz+ZpW3fUmfdQ{Uzm0@AsXC0X@Kk}=-l zSn+7(tY&2b|D5wLUX~emXZC*m0$#s>^3N1zz2E*eT6Q16N!7Ht@{t4yHgF)7gF zsH&KDFGu0jzL1FmBb-%5kT87%{=W>~d*x_<1(~yYS~e8nnX9HB(tQlDyn*ozjNiq3 zP!NFf-gEO&1X=yTz`-oK$hH<`p)EcOzl6`YcLexDhDUJ1f$doTDzIG@Pr0U-GWtk9 z$@Z}Z&zozTIZRn_aEl=S`!}%vZ^Oe!&WlQf(a{><-S2u{>RIxKg7wcgaNS-53kRZ_ zb6DCvP}OA9-$rU2h``JKk72tp@$6}T_jXO$)i;2B)2IC|UELG8M!{i^Xgd?^58JEp zQ2x3l9vqf3IQfuvfRfyj%Yu(=xYV7)aAmgE>u^%+U0|dF18TqrKE6mu>c=?tNs0j| z*mB6h2qh)wee?5k8Zkfgh(?bFNT7Ocyq@s^M@q-`Cj11vUaOVOr;&+NzV0}pPsamA zNOH3H-3_K>WPP;W2b^WC{gNnH9B|S9qy0pDzO}dK-6)K*PndYgk8BFozngMv_sgC?{f;FT#~x0CdbdeKDYV6O){aQrr6d0lL`g@Dy+gT% zOp(j>3{RnFi3?3Cy$3Qw@uWvMZijEjt@O1qLM$4oeNR`E<1YX1EDGJ&M?8 zV`xQ0Gandi?kIPf96gwP_aj7rXp4*MgNgsL>J5eB!d=-qoG%J&unEKd*P_rcz` z!HSWW0dE*yRJN+X&)|fHCaL`VgIBU0so{Ds>!m&1>gyMcjbWjDhvQN?2=TZVegtDu zZtnWG1Gy1F)h>IK0n%k_I^lA%E@1p`yeC&2Dx;r;fpZRbZuqhy8g)E(#ILoVf=7(Jw(GXZQkkZ=Bm!N z7g|~Ul&Ot(3^XEm7G=48ww09#`ucS2@OfSjBWf|gFmB-CF?s%?gEN7grrt})H9$>4 z3k5>-F z+0MYAfb1K=Nb9JClU|u;?Ya7Y(SU3PIi}ffF9ckcJSjOHtwBz?V(AD!X_)u6p`_E* z2}*>4vSB)2sr#~RBLg^m?FimW+hH5!if22P*f?aNWr9ci_!5-M@E78 zl#Qc!z9&U`1w-ChI$Ym+y@5_b$0$ z=|!`tH+Owo(@na=W@XV(8`G#eB%OI&@o9h!kCnJ?F&NggBG=&$$2CKK0@0VfEZH)$ z%EZ;;d(~E=;2{W3qZ8gI%PWh0IF}POOUWyCudN)mk4{wc>2c~ zpc`fxxKkn_TYLyVA7B8&DC-<=102qZ3QOB|wmaF5U|O~l$e!-}ExoXT39D90vVQ7B z(x)cv_v+IOazgf(9eg7_quEGvf$La3OXIhN>>tyjqRS%qDY|{jP9cw~V(UW0H>O2! zC2Uno+erVPGF|+TUlayi;ayM^=cipo9HxG0HcBNY$g=>9a<8#+z`n6*_a}SSzWpir zJ}V=y{afcCgKR6hR5Vh3Gj8F)=3u#xJIF}M9z|~; zq2PVc+SxQLZYgs^4fy2ydeEhxJB>v&+ABSBy<*?h001BWNklTQO zpwV%DH9E}qh*urQgk+<^xar7e1%jTdtQKc8J60fO!?EsYB~hPy${@p8ZPs||fZ2-g3|5jJbT&Cq zHXH+%vofYOm^5SmFfP(4LbkQ#-y7?1O5l`7iKC579Hh+c`ovB;JX0*@WAbsNFbs+a#O>-JhY)yhk|`>Zh*ZjkG5_pYa*9*&I&YgZ4hruPWd4`Q6EpjNVk( znxCUqkZw$mcu9%V!PyMVPT&7H{MUwkImYD}aLn6qeGmBW0sJt_)+P)c>5mjKqRMyy7`*1! zG+1wNe|@w4b54tuoixnSMs)rys~|?x$?YrQDLts_Qcn^*5}@LtUWJpHUI%}BOP zNLLY8(i6FYy20PQf;##6f>Dz{s;o$HXB7lc;6yZPj@mqe((`>z%-B(h3IpZ{8toM> zNz+#EG16$Xpm`3~HLD@mQ)_}zpM3zG@T&@PVXj)B6aWex>rGCTg8bBl2a_bTG`c%} zZ^w($PH%t7M>UxR!Gf|0MtR-*5XrBe_?5mI%W+)~#~fazzwNLItVXaYKm}AfY8w@W zONA!|Mn=`}J_iW^A#g61&5hx>XjQ#0mVBu#p(Cva5v08RJX?oamcDvjB?T{vfD>p< z_;%r!%BwS!7jTa+5td%}0mp==)!Ai)D{_atTm$Df$1U=yhw*%Lmk8Q_& z`#P?CnUptiaS&;9bkgY7h4p;#?f@?d7Ql0 z^vDFVPg*p-24dC*jT5^V+%RV;q~W?8Sau9LOu3PC8mps@jUgX8HgVpZJkfLVk%EJS z$yQ649AU{&I-@BMn{k{$YBc9ZboXlKLBpYRl|EO_s~lNtL7f%BM!z{3U9gz#Y`UMF zvQa#snG!mRrk0ClH*jo&Xl6tjvni*D$DAj$fonPZ4XhQt{Yb|juxEVlComtL+X2Rk z>JoR$p-@AE5-H0R^i?29a6PJv8s8dWmcbJ06#zNEC+9!(iaEktJ>JG(L{8Jl>;ciNY@8!8W9=@afvq;z+j96}1Oq(DKL*BzUcwVG7>)B4 z_KfW7z5)O5f%*R;lUa{9vPV4zba^^!dZy@3voq3O{IDl7a6)?Ty4)Brm5|WDP#;kq zZghsS<(9f-Zlq12XYH%#rP~z1hfYAjSiCqFr}j_eOb*ShSq=U~b;=_JyyR5-1ol@s zUiSzX-`g?�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

vM#$%ATi=X=QEt1bauEAm(Bhqp1tA**tpxk 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≫uMF@U&1a65=TepaiG3cjQGIK*oz;j`X2 zOMRMX#!JMmz0P80*G$Ph!u%BkfN2nw57Hmv7~AssN87<(r%I4N(Xhj&ZY-kQ612y$ z(&{x3y=p5zB#{8T>*#i#boY4D0K72O{#HGEinNS!8m?R{|8;hp-z|8u_?*Og)UoNd z;cP&9DCg*v-Dr2z-Qe*OJ+|{P{&Nif%Rcr${EtahK_NU%1zP=A8~!7c)pIgzadfcI zCzI0Fxq^Rs4%4+9q;$ef#bJr<2TafHs+RfsW#9syB%iN6rOyjDoJT5;dcO^6nnbI7 zjgvjW97jtY;fjcJn{2E%0JaN5XB1$qWS4Vtx_k3oBi?YRIP-6=KCVJ}dhU7^1cl*teT6r~*# zwqX^~0Jq@o8<2x)o$|j&~6*#b;7^Tgbc1FOoL7he6476B8F;s-fR4~ z>Wk{1<(%LIIH;F=2t@c^Ujjln`YSPgJSO;lY-E6C+itY4cm6_vusemh_?p+6S`^q$ zcx_kD0BpH?c-Nf{*T6!l1^iB-!rywg55HVzW~@Jk$YI);aiDYVf=kcus|1B6t)S7KkFJ1 zqimRTcLBlP0F_2b`*oc=1^(~sKGe=Q1KLR=i~EFdcH&w23eh{3Xez5K%9)C*E7ZNc z22I84u+!s#HLRyN>JGUmO7e*p{EOu>a<5sya+&gl{$z_@b{n5{i8v>i@wMSgWi!Xt z=IL25_<=MO*|j$RtIz4cx6w*1f3r{Ia<*;8?EDb~p<6Uq2h zWLP0$w_p^aUEYl^fmk(2Kb4AmRaC@`j6L>pv|{aaR`W6Uqm&IDhF(;YYyK~eXtz0! zRkDB>c5o39N*j$)yAumnOb7sQakF5pw9?`d#iAXMwrMHrLs^N@l}CXs;uiq~EGZBD z$_U0_zifKsd_{Rd;iDD$uAj>!Tu2;CO8MK4zKLI4oINT2M>faOkITQMIS$nNUrXXC zkLD;u@8HB78m*V(RuLh4eAl9`o7YG%4M*(RyCq7UxPxL;x zaTe-0$4FP~6g$fDZ&=c%wWmiwA7<(CXKI%DM8n<8NK)^D=qKZ@wbgeHf~1X+bM9q#^on;#_Slz(LP>Z zdm${D;o;rR{$I>^vinl8s8!IZtN9y%6Nn_w4_j#QPZn;R68WoOyEAZ}k6Fh$sLHa#N(oLL{zYdciCuC03_R$oZCqUgR&CcS1dqsMX%m-ME&S+3~akNFJ z4{!g@EEVmUDjBvB1p0PWNYvo{N_18hs7b!~7}Id*l~#zv79& zZH9S*sUIwp6LIr8m6E|8Pd<|%HMUjsZIQ6~7cEaItD1TQrEwYt4?(e4f z^7H@YF#Jmy=MkgOtF`C#-vGND6k#0Z$#$q$wNC-16_6h7izW=ZVX~ity1U*X`jypw zAzzMYC=XmQ_e?^UD?jh2to~gUcH6GbVZRJo(pSu2wU%jDdch!)kEOM=b=uVn{bGWP z!dvms3{toNNxlRHNI}AHLE$~ZluR0hI76&Is5tPPm-dqu{V*HW@1~go!}4wDhhIsn zr`gHmBWTZ~gSUJZ-)pOPkNM0C?geD`?UK=>%WmW66_yQF9YWW2DIk<%qM3j%(T-vk zl6L(CDjL+3o18M^p!NWM*%<1~OZh5l;Ws2G-j$ETF!rILR#Qn4vnNR06i~I&F(XmJ zF*G$cBzPX)>iiVP#83Vz;-GDjlnckJe=_N??D8K7VG zm_v^y#Z@`S6rYys_Z!JSCw1yapvkU3+L`BZduV?ywQD>j z+fcuqAicmUAL(xZWJ=3##?$QKvpAXWKq?u1@hdOeKE%85mt5ddou~Jymu?dmrVW#5 z)UgUYw{HMF{~NRZBfV-0GgCTcoHTEY@tfc=ygI^z7YWBq@(Me z32OL5E+Mnz9!NzFT)-mrF_mqo)lmgfi)}x}_c=kbMc0x4-;{qJWOy1g%MCO!+$hsN zcg<0$`{`8rY);iInEOe!_LW;*ynH>j=CP?QfcbSMjV51`BEVFDpy_sEficpnIVeZF zD67m-T|Y1ao}S+%ox){Lpl< zH&4C%{Sow&IiOv)Kw^DYj?B29&1qhSC$EsVbrS(h1eV9 zo>S5pMs3hq4_0HRwtG)l63wKk=wEMSgm?%pS)MyrX(;vIajF7Ch6E|`AfIvox6v(i zW>}Qw(T~onlgD+TW`0UPb6GwkFkSijKdbAVq~-0X1sQ~}iy^HH&BM}sfMh*qY;(zp zYi=z9hYy3kmLg(y{tE(?Veg2X33ba9Zzd@(6Nb1i-M(eR`$|)#yAjr{?XoNc98cag zj`#GLzi@)rW3#om$!rgGIeT#D&iqD98#yCrJb7}N96BUs_ZFq-s zrxy-tS@>&rojrCCZwuQ*ev3Ubeit>B#NSc4(kI)S3-aaCj@+DS981S<2y(BzGSjB^ z;s>HqfR}P`v@Bq}ET1RLrlh&Bk3O^*l+Qq9BhDo58=4}AvYhWda>82PXa=DIx1xPp z!6ea?tuJD+(nNsW@hHt~9<5loHt7-DzLWocD$r;=7;{bIAaz;u&=^N{kK|J;XMAH$ z!)9bNF>Vhd9Q<7UJu+m?FdaZu<{?Qe@48d+KTk6@k1Mbd1y({qbchbb)|Ft04-tBS zh7=LOwl@fZT6e5aH=@`_DCuZ^Cj6b7&WqN?BA6z68V`L7cr4Q!5fkOpzr4uDNJ$2& z{4zlM4_@f!t-eeo@eDCwzkd*&(KKFi&#|kI7x{qZj2R&>qjL5lfK3Vlv9Kp*pr|)MW8;SzBC<_CHCG`myc@ zN&K4Kic0)!Xr#fvGA2fZkA%)sPLTSih+B9LqTctueH$^Ga9@rIYoYd9-F~9i-MD{;QxVmrrZfmL^?@ZWg#i$*GEKUaZJI)9Fg$3XnoP?b7e5 zJPfQ>lmeNp3Tn2Gk;;vTqzKchvl_e~5R9X3YH?dyuogaF%ZT~gwEK5?IT02q`EDCb z)8#Cm)*E|4KKUH~G$ZC4u#@~&nInkviRSkVlKMUK-O#%QD^LS5`44obT^2eEJkl?l zyq#r^M$)QHZ2mmWJ_X(nVEbcj`{gSDbtqRdXzRiM1ZMSx#?j<{d+-_E>0JHfT>bN@ z0Mhl9$@xN`I>!rYe%~I>v$Ukr0`$Xg3K6^OH7&@VTh7@_NGhLf2qLJC9mL8H$zzP8`DWO zxH_4I6W;!eNN(az{o=93yZOWHbTmN2E2uvyC!vz65ptD`zzX)IK)o-MvRDa&Vm)g#h4zi-Z7y{^w7Q z`>u%&Mfe_|QB~TQPt>Os`u&tL>A!-Rs1#6>06c+-p_YEj^LVAytIkjHk4#-YM!HB` z9TnNi$OY{sJC)J;LB)8{rSFY(kxJtC#@;e133L;ji_JqFbbI}QiS;~M1ZrOoTehKn zB`>+q+$Y)mT^|tpbB{2QV7?~1+Xde^fPJNXNbo|h=D#&?YyqyWA+npOPoGtGK8p1+ za*vAflRTjeeeszU6@HL$N$>~bxqD%TXl}K$u{f$+H|n~34J^yx&s|bBXynhG#J{T> zb0Pi(O1#P_38S=zixigfK~VJXw^8M;`Fnsz^g=m$tt+d*JH}!wr%bGDYemHcHle$k z$4Rr+`8^84J^Jj|h~076)g}P77D`dSx=CHVonYSLdO92S9;9EEXrE7&eBF<}`~-_7 zrcECq-Cbg7>}W@QTZD<5koUJrvJ9t~$qIP_#*TNSJ1J!jwn7AeyHI2--&PJP33oKC zhyO{=ZxMbFd|+JMW_ermU=Ap}c%sl}ZS26`{!N;KuvV`s1Tt?ij@3@EyZCkfW7uIu z-5xPAG_|;hT<6Z@&tP9zgF7B8GsnmmlggxsV1@T`EOgJzWf4Q>dcm3 zSL(muCf~&qUGjl@@F{UUt~=FWHJ9=vmu>jBe}R$71|pD)*GF3d+VO{W_xOS6Bo0iNlIp zhJ7!>potxM?Z#}<^WFk@=#!|;v-2hk&!mV?d_ly_})`uO_%(8 z6LL%xkzYgM4t$~4W%DoZqFk0@Y49KDGn*8dwFmDh;gIJBu_vem-7mbgxakb7;T%*n zqiPZP2h)5nu+SYZu8w8@EsRo#8k3u1oX;`s@iM*bzKewJg51DwgeAjBi31tu*hUD_ zi)9Wu2KaH+qa<)+N-gL7Q~t!AS&Q7l=LEpz8%*smdXEV698-T(Pnx zhRx4(neOs|=asl9hQBeO^%(X6Zf~B*-OaevfhulFy0t9-Wc1Mxz`npwv3

EN&Y? z!)7n*VHx>PL6uciOJdwab)j5*M&*PH(8GHOje#zyxj{3%3dl&{Po7xoUOAU7eTE-k zm{P`*I{H8p8@A)xpeEA{qCN4!$!zX`Gpndc@IE2rt?3TDe?JI-v4!;&(y#Qx0nRu} zj8zq~Tkg*UAN(})68Uoi*s!E6+l@{@H!Rt1h$dB%rF&uUZvf++oRP)9MKS_J<|q&b z+7{7FQQwJMrh*FCZIb#nm}VUEK8n&QMY}ebXCo%7wtte?K6k2gDPex0359z|aQngT zAK$X74DZEseaqWaybpZ}jX4ke=)u1-eyRak&hK(G<-%e2An-vqT^|+=4(8~uKxt++ z!-mWFIq7jHe%57>ZA|E}tM41taYA6<>BGYz2;YVtKucD-_p1>^aqx-!pYOp&Z`m4n z>!j`-veYD-@8KhsPwJUA)B|G5T{D;PDV~d=ktwCd;-Z*#YuLwbu$kRPyt5Iwhb0t} z8%_)oZ|tu$@+Hl!6M(A{xJ<14=M%4a31}TWxCwL64gfhHEYCw&X@xpq-S(&bcP~U; zp!sSYp}x?LHB;kTfVaOOJTh7lO#aN@QJx;$_OzU$plh)|F0;NWqxilyG!>VSx~z^5 zAn)A6*UHhbJ%MEYqNije>HDQu7zBDV`)`4pLUXMQ3jO5?i?G3H4*zw$zD;ox7ZBsPg7y78=u}^(znvn<&@4c)`K`E0c!o>= zYy;1l7sFrgrQL^hl0lw_o}&R(_n^dy2c#LESx>m&*1w?11?t=Ze3k|7;P>)U*W>;T z$8^$A>Q}rj6IjdO276xp= z#L4O@i{tr|6=s&nLmiR`=cCcno&QcX`?w?wkhaUQIW|Jt!We!Mxkf;3cuWQUnXYK^ zsce@u;A~ua4YhSh)tE+l!RXQx7AVaq)SMXMhq03B|L`K2VD4+vP=aC!O(4`9qm2O+ z*2HZ{a{5{`n&Q~3H?IClFW%@BV79uizUIkG66S&95ONz(^1pedQ^|viqnjC-Wa$?GU(;eQh{%@68NX+(#f63p8sYp=^|K(Nf zZdeQ0mj6*7yd{Icbmg5VtKZEI%#b4`6PGEkx$L1U$pKKMu#KLEdb zL2X!AssP;J8G9>#u;Yg?Ee`FKQVNBGG`vNZL}v`gWV>P|OHc}^bCLaHV9U{@`Cg1U z%5iPiOi*Kj>iW~v>azKP$}q_iI-2Y@6_$Y*g}Hl_UW^vqPaExMR%k zKrL7~>_B-G`azNa@AW3H#)b{p-vKmV+6Gn4QY@(#j((=E53&c@eO zE;D=-cg>x(BbEP~T^3Pb7U!+D8{fb$^wstSKoH)*iI)cWi%u4@Wz0hT1LY5yE^Rgxx`$`lfln zeT`J3^{>ye0CvIdI@i)X{YiJ@I_J8jrVlsOO%aTkD~vJ5!3J(xJlodognL!h?{(<# zO^V~8k>3hO(bGSaQ3~dhJAv=skhX_Hxs4Bv9OI{!{AfxFA&Si|FWJ$dEr{ZUhq()WODlB@J9cj7LdNe6!`2yh$Mv zMejA#-ARbT3T?)->UKN-Kywop4iufnu4Ib2I{uR!edKQOlv3-mAu6LJUDK?_b@1O6 z`_>br&*X14C4m3gtaIb+qa?Hl0-9#!_hSx%xAEIa-M3Kr14v2VlI}k`ogP!t3S)%F z+_SH%8mr&a>wYuky4!svjHHc^RFb8bTL_@~gmTz?7D33G=CpjFoC5@hHgl^c^MJ5C zTTL6GE4a#4(_8B?2i<{DUUt$aBag%1z4ZehSn>4W`IhlLzJo;>NpmJ44bLY+XCw9d z;sF5}%Wfpd^$&}@ujGfO4KV+Dhw#!45axYfW*!8VA=0Sj)($uab?IMT&qpIw-{@7l zjDL%{>JZvzw4|@VxZd#4eCD=hRUkKybm*CI{*W^S^$}-J&3AWQd~Ouz;!X)>Uk|~U z;q^eQZ^S60wPN4KffX)aQ71h5Q)`a_KG;$NI?pHP1Jx6RtT@3JCn`cYmNq@QCJ*R- zq0ACuw`#DkSgD&xlqFg+rk4>MX6yt~$295ZXkqzE3qH?`vxNV{YbPQ!Gb(4y8CEom zeR5wNT8B8qpx}Ixd^R>R2m$zqKmQth8x(8>eH15?y6TF+g8mL+(44LI2$C=C7(Rl2 zcvBuhZ3wo18Y}4okL#;|ftgAT@jg21s)svh5G*8;E(g8mHI|~ed$EZtNLjnuP^5L{ zeWvtl_<5(x99qvj29)-q_ySXhCOE3lo`J>|f%j2U()jo&@Va0AhkkMBE-J<=!!%mr zTjzu^Y5d@6)z-QE!_eiult*OL6`z4k;+8h5bLIwE)~n0s#XnTDf}Z9LyTRfX9Tl*O ze`wTG>RwPO0^H3;XMWP$Zi3_!p!}Z(TcB*%R(znedN$>N&uY?H^c{;jn_UZSiK|A@ z^RO#)f7nhF#oY|=kYhTVhv!m)gmYt%zHqtbn;wwNdx+#;rJ7JL*4x8>GYausk2|Oo z@SG_~5oy3h!9>$rH2xUU60t~T9mSrg)RGhMj4$I!1vpm7V~%MUy?Rm$L+`sq{+w}< zJ+3Njz!yv}{1DXh`AbEOlKi%0ft6#zh=#P3*;-1FFF}TqcpeQ}>eq?L|EF^c5sT26 zs;{Jq1OuY@V={ChKJGPDzJ+7^od%^1*xJ0SF90_Ts*1qqb>BdWJWG?_XLR3o;I)lZ ztV~SuBuPE{C+RWp*?aiA)5z}3PeO<$(r~Rkm{`=|L}SNtvw!VV zKn~bKQOdD5|CCmYmV`z~_Gl}PA|=Ojfn?RE39uV{Q4$YKKl;Y+DsgqA%SR#_A zn*qyeG!NkoJ}fBlZzS2wTupw<-$Lnmo&Wb3?kae=5Xog?!jJrv^N0fwzFenW2YxQU z#l>vl(}R?9_@5&x<8^ktw_v+K0os#F_%|}CwZ_0(>TGo554TWr{x-*JuT6*_vk5CG z5Aqaz_XUO$MJ`x=gL+)JOb!^3@{hiW>yVOSFA16(1)7)5)|vu8L#E>@=a!|4YRNr4oNV`i0*0ts?+e znkMdku^vwxqKEyU4s>^gYPT9UQjc~Dx=DLhnEy7xR)~! zCD`zbZlI?8WxB5MB7|gt@nt1f@ETjV8Wq7G z_6}O-$iaSkq-wV3s2^bS4Q0F|; zFuwqd2kw}tL`yI6J}DMDJl|O05fVqqQ?Jzo1h@@(b>XBDG{rdT@M1gW;ShecUi)@> zuKx3%wY5&`O>k5Gf++66TPF4y-C@azY?1o{r4Popi2mubU)L+#p<(cI5V})k77kyx zuN1AIb0^vI{*e1jNeyRxm;#BFVM#U*>JPx~7(*p5#Ra>SW`P%PZ-WhWcoBs4$UiWu z64$OaelHggR3gz$4OTi*gmc~hSob@ z6qQ6if7_xqL`Y`nDaYQcPx1;=2I-l9sq`PoKZByY*)S{{uC+|zz4ks#U}{X zZ(EsHR?`>(+dK4g5(ZGXV>2&m_XUW9AEP=}g<(;i6$* ze{GrcvwHGmu_#`f96^(xlgs7&{sEh?x)got8MI)T9gQdA0Ir>i^j=HsnkCl%t)nvF{F^(t5tH7 zGXFc)-++cb=?>ob=^$r1oq|L4`AVC)wWX$URs|9R^j-H_oU3w zQ4skM3q4A}2f1Aogu4nly8djtHC1-Fq=el0Ls`=+m!lpR-nuP*0%kXQ4n6Fpa}_2C zTSgU>Ry!GQaLQS^>PPN$E_(lQlP7BN1Hne7{Wak4AeFW^yhs`FMt0(VJB42i7=JaJ z9bvc|zVRI#A^a2o1BXb7^V*(4_4h2}3jMWMZdtAIJt*FZ1Q0HY>m02;qyWzVv@tl{ zVpq>9v8ZF%NQ`jV6tg$9PNZ$~4bPWv;kRP8#72$@8>!Y^y~`F*jUB$?{DZiMXUPAy z36D_f7RWC$+Gm)1r-v2-i!=9wnlnUC3rb2ICaqbVbRTQam$ab*{zT+6BV>uu{FSLR zz{5xiUkOmfi#cq@eX#ZTr@`6e#OZKdqGJ|6b&B^VBtGV(Z#h2}w*e||z7ao1GJ1MudlJ?m=^NCd<=-;-6k zq!+v#07gA|3or}hknJBvN!zH#`#NE;F0lS5GIRv#9r4dvDP+CnCH^KDa)-S6Wh+tp zUz9oGbM<~P1&|})6dG2P z*Q%ryHvf493F`1L`7&|sEzl4nNCK5$0^PG3N`EMrv^64PqXi+A1AMTC3{6$(?#cjg zu%VnRR_5L{D0t2MmHI-@N-edwJPNR@zEGZSmUP>mO$fz#qe#P+XP|GnpbdL=fS1nU zw$k!ZwcM~U{z%Xc2=>Z}bK6ogq0=XSn!uf4f9Tfq3UgVATYA%w>B(UqT@=OeK`M8Y zbr!$X=tYFam%|nIHDEh=e7!jRxAEjp5xaDz5opfL;9r4HCa&c!>;`rs1E}?*K%u-J z$rX;bwfU}Qb%7n=&*Ng(k0Op1#7g1m1m#4~>k-98!@>i94hVidg z%=s%sM0R8SNBXIIz>s#>ZmM*To)BC-2z{89Db4swx>Dtq!?iC=1yCk7tZW%AIfyR3 zslvxBwCObHAR|)wbbxo1qps5PPd5kvWl!a}pCYB*7$!ZshB*{Un6E0U{pec&*d4zE z;rkc2i$T|(OJkjx>OQjMzf&7f97M-I0AIkuGUol@)SIg6G~x;BjMx5+Jsjn~mLMth3Bs8+!K?N&UZIZvPCN@U51z}9Fiw@!zNcqojhB=RstVJS-e|lVmG3?tL0_D&#t~Y<3DU1SNSH=FHL7`V zl^{`|58QUyh6y&*Uk4`mh5jSXeSqFdFuzB6oJsjPq})x(hv^kbTUb zE!5s@GGuAMl%~++4R}|O6r(v`d1TDh{sQMA$#Xl{DzI?a&6dfMu<{LqbgR1h z8o{{<7wx^)PZE@&(dZ6>QEI(=SCpX+=bOwZ;dgvMklwe@_t>8EE7W(!ff6U0o+zul z4>nfcD-&tt%_(qkkP75>YEF8tMSf|YJ{-|%4+`o?u5K>Ig4bS?DyFfs+Y zODEU?(0A?}s5jcO&Se5|b5v)T47Z!|a5?@@-K4+4i^dfe>x0ED5j0LFYKSWW*rCbb zJNX8J<^~AXB~AW^>bRBYa)h#b1O8`@WoTObcYt1RdFqwJh@a~`;L)F<7s|GX0~52= zEk0?H{MBiNQuQYOvk_ieoqmzVl#hC7)AuijfxF}{!cm`_$%x``Qu_=j4iR1ig$8p` zz)LSw8ZPr=oFjk?!H=2Ixn5jIWk!A>&70=zb9wJ)4{Ji?ryb7#Vr(hAHaC)cg~rsl zZkW~{QoGzZ=Q!eY<>y~mp{@Q|{#l@dP6ztefp1_t4fx|avSH;zOvD;S);MV)v}`Yl zxW*X8n8DcC4GhTNF%H~BD)QDJ=On3(SH z^rqy4h3EuSnZu9+{;15^<~7Z}96%s%0j2x`fEG`U^NJ@v zq1znR5CemctJHV#uw}AG?Opjo*Es{gp$s&})$q$KrC6cwCZ$X;*5>5M)yd%o;;kmc zsd!Hh$d*F@VwgmFRIh6RZ=f_^wRklmc!Ld3{seVri0*(94a?uiXklw!tTu1#z4Mh6 zhdrJz7kTP@cMu$DdVm=c&a|U8L^jIRE$D|)z`fp2U083otNXUWGPPCQOOu2ChF~aV z5;?{cH=10UP8fK&6^h1D&S!Jfg_ln<-&hY0?)&o75d2+dY$Z|F!*X8 z4`i=7R_ofz3%t21|7V6Uz^1K26dPP` zE|A9{tZw7dM?g#1HDSO@8Uz;0vsh3FPuH;wWPU`%cVW#7J$7e{GTTPm@exug<4VJM zT^_C$y}7{BMT6u?1aT3KWpcW|3^dH+dvrHsT`c=4PIfX z?hCdP48sb30U%udF3|d=EwO6-e9s}wJGzmewg0NR^VXQLse?=VkwKdlU3FLR%KOD) zIAkkF_|Rd{9wNGU=IX^$bHw6cg01PIC6rWtClz|`xuBv97wKAZv zo^3)Kr!tAln^X%4*=pYh&gu@(;Wan*!$drCFV^xHKkuT6f%-DSWBKkySiAgXXUL5n zn@T(j9%-&&3mLt8FM~#yoVMPY_r4VO)WibC-)v?6J%|1Jv}r z?@@_LaeLM`eYG;%@Ugfo-?o%2^Hs*{#ij@^3*{?4620x$^5gMwSj;o3-?euZDvEE%C26vic9f(kLY%H@+HWic&5=b5#$qt>3_+o0l z#QM~`=Xdl~2xRseq+kGs(?9bU*#HYW;EB=a4|yd*{zt0|2%o7tM7Ran_W(B*;5Vk$ zCdg;XC$Uy#i{{pp*#*$8pNxYg$Iq)AbBB06C(9h4;tYBE&m_jDq{K4Gk*3^8R^)t| ze9L%pd03+(TOSI^S~<3q9gVYK&|Rtljm1heAWGhV<#YV1Pxrn_FkV1jjs@3#ZOHZG zMp|=O=27j3->6Q_4g4ou+JSb|?KudOo48#eAf>F7v#2!28>%4$a90%xl-0b%P2;Q) zKo*$G{OIl8cmZ~cW`;0MSMI{fYC#mkWfCjIlg5~(0WLa*2ICPn_&!{&)=f`GOxz}n zI@C?J+%4s73L)Vy> zGZiE@Q6Zj|g(N?hzuGLQpAG@b$Egbd;_~W)@K_bP=dW>63@%oIlw2hy^p4_|si`#h z!0v!2W|{B=?cN9e>D=mjx%pQ#FFZi#>)TPCw-|iwuJ}x;Hp1T!)-H!7=hR;VZ|;Db z^@R5k_5`HznHEsH0r8@olCW^Bqk|J%L zXrH+JX~M_Y^PsGC;U>Ww!PL&mv=AtsYWyZTabGn5JqCh$E)Uu$zAxC95&T4ggZ+i{ zF&<)FKoiV1T3kN-P^v!)+|(*N7xD)yj_dR^1ul(rfw*`+KU0g}mVfRGLT~K~x?X(E zrFFiVhS{es3Xdeqi=yiD^w)WX;bD<~H=Ni|8|W<5z&IAGb1QqP{yXbg1eEM<=PAu=JXmqZ&@SDysESuQ7O@}1%n z_iX;Yh*`2iUGtRy{B#z4ENH&6P&T{CP}957cMmg`!~}mZHOh_bu*il|%vr*tS17=? z**;gUpO(enqv^0w%Zvh?Aqn&?EPbEkCIL<}kpAXLYN&~~zUuk*oZ@}>(k#ahu9 z-HqESC1CLRej$Gw9h~47fOFJpui;piazG>2APdTOW^}3%>SD$Hp9)CY9Ep_8r_LL zu^TadbB{SOusIZa)vxBT>3CRIX3IO%7D7|!I4+EfHe>{Obt#{ye%o^r@5Uyr^&#kOnNz<3p+fCkU?+@}a!&k4NWTU!%bBaSx9|+qC zO@^1S%Gk@L==?(4`x&gG#U(W=q_Pw1DhQn+ZS(x4ZuaK{3H?F`c@al6k<}{19iLG< zfiYcv<|IXf-Sk=|3KqO9IxebxQ)b-cvS*6etW)$3(`!EPj{=1z5I`_XmrML}0RK)( zXWQ zclRb)7$MF2|^?2l?%Rsx*cgGYYRtt%>pb3Cl>ZGte@zI zZz`4&BR%E~*wLHN?LkIUpR&SC%!Xj_pBH-OpecD9Azk;dPt$kBiG z%^GdZboUnFT(P_!2W7QL$~NxF|2B z`5$pgg-a?tE#`E$dCv&sX~HP|;xhbJTUAuZVbDL%ifjOy0Vlp(0FCmv{o}0J%yx21 z2aPd;x;c{|T@XA1RSqaF!@gutpPO@BoJWtuBiyE$Y5hvNM?k486^+$(HWd|Qm6|FC7oFOd~ zvhB&n3#8}|q;jsf>3^2Z`1r*%c}P5gN_pkCy?F}M`A1VPy!n%g>wl{#IRP+>kCFU; z)lak06uG<$J4L6H&nK?UsnmbU$r%Oj|}dx6I|RiB~E6u20l z;@8eR``0`A+iBgjSd-8&F@o z%3rxo{K$@Ggtqrm2I-aERK?n+|MAxYZ&|(^O^o=PN|Pp94K)=`&Hq=Cr-kV*3S1=x zVD(RDuTay0C4!5VT|Re?Z5C zJ)!o_*WxC2(alN$$&Y-bk}{>kqHd%-4UzO|7g_wjT0$dR*P+%N)1*CBy>zxCU^c;W zjZK;wumF^Hu2kayPNQ`m@!T@SIRBoy(a&>Enb`%kU-JcelBMo*Ev#E1n)^eUaf??l zuWdlP4+3aMsV58t@6%KZpZ|xM@AHeFkmhfT2?=5HGfUIY9lNuKRWzzf|DP}o>P~}Y zW3F)rDU@k;0eCLmObs@5P!?mBh!B+tcy-tj+|rn{kD-q|)`diJUzM?Ma4f@yE|)mEK)pz~-t8+X{2&+{whvaLx+)C9Azs%9 z#Mz3SCzhYI2nli9ZUW9001SnmL-PM;xj!Yt9d-5ZCrI{USvuh~v*Dt%!^%!{|J|A+=v8tN&=!@RHu5kP0u)-U@ z3*$JpH|pu6fS2GpXf5d!Z}GoC=l8mI9JN2SGf~+|c{l#M3ZarhK7t=}*u6G2YSnpX~&U80yAiAAG9OmH)yqDyAJtbupsKWWzz?Nh5q{=o*wjZmY zHW-Tyd5f&@hZiIC!}l1I$vgA-;e9k?F#74YIp1;AI*$itwSVbTSPV;c1Y^)OA~|u( z;N}9ru9PGs&T5#VD|E@eqcY5BxIG`1WwMmD1WqRk*o+A}a%|H@4>_Q_2 zT^}Vq#<6@aPSTIwv&oMFUz>C6$LBiz6`pd-Np`!dT@q@&7nF^SGGy|Buhi znYG#5OjDYvNs838ND;G|ri3ZUST56Q%5t-Hvs}$qGiqW=l5A5#=(@wTMPORX_h6DLT0u&ba!&*e&hf(3nvs( znAro3ir%Y;@zJ7}J}L@s1UHN8x+RFMWFweSNl75Y6HoBF>6XtH^dQdfqz_IL zGk~=AxwvgIXMN0wJ|~P#{_`|5`X2e_XHx|Jt}pcL6es|RthBX=@3aSNh2`9Howrpj zFtq?!-{e9xxzhF?9Wq!aT1vtn258iwFm4mRGf4KwRl60zQfY>fcKy7Ja6U5Tk1>6XM*1)9u;@Z5JJHX9AcoA^ z$1t4@?)rn|I7=Pugd5+voT2oukk(jBr*xYFprlxPh>|%#4!Q0{_AP9v$~9eR)TjNvj*QYyC#iittlejaM+o1K~t zG=6t}4i`pr^Mc5(uzqMmJ{~U8v3{K?W zTd~2bA?wx~r-Kj;eL+phj1<%qhK_VACPLJZFJ${A!|xNtn- zR;M!`e3e^3^laZjWbt+UCJZOVS5q49@2)vWy4jqc-slN%BTB@Xk5%-(;2_ML`#}`c zi)>x{lcMIOd|PSb_KFaNxPPe_aAY?j+wPE@{$By^XA#hAgLigDMBF9*QAT<%<)1x3 zoG{#0C}B|3T>Ksqfc8Lawe^5(dWR{i#o)f*XzAOD^a(X{$9CbpnwK)@%e51xHs4fy zqRmLId;pd{v$Qq05Wn_V*MkGK76toxj0;)Ko_L3=26@54n}|=5agmY!dkz|hVzkF` zl7?-Bx!Z<(-m#{H(lJ!X->=2p?->UqE0$!b_RMu!)F)>j1^3egD9%x*Mz3P1avQyz zXAjboCHy{gbpbmxGfVZfs3FQwMW`9$+{HsN#PAl5`&!?qa@8-zY0)MJ`u2G(M5%63 zTo7uWgK-Mvj{}zh>8`(?cIApf+;JBe+mlxcm?-OSiyVOPf0m3+ZPCsc1DF2+`U$Yg zqWlZfCaT@M>leId9e7JC4>io95#BU$`CnmrIw1lZcli@*;2Kb$OEblr;G#yG{D!YZ zVBxM55B7pq^o;yVsM3kDKU_BOI$b38HE82do3?5|vALHQuts}hv`E?u=Eh4wO+?*F zuJ=q!P(LZ9_fFM)l1+<@Xt}Ww+uw<%YG6R!j+HVh8*IL~QyIGUagcqjAzS)5UF9*| zG^oKZv)BDjo7Lq(GMxLw@}Y6R)QbsiX@%A3lf{F$U8m!B8=K{j0AvV5C=MlahkMBTQ*gPWy( z%`$Bta>sD_s;w)5M%oj^5Co^UV=j%dpt#41G|`~$!DiXw{1G_5puH&HN7M3^7xKC# z?dJ%=hmh`H!OLhTJNz1cE=Ky)4a%F2JHF6xloXVXDVGoyqO38@Z6)r4cDUSEOOA}> zx4NAV;TI0`nr+annEdY`EKa>c{Df(mS=>LVFb>fBtuLuHhy6Z>YhHomRZBX5(vW$! zZ^*{v(OasMYPGtTSBek$JAwvBTm?d4&-|*O{D@4D==3GOlQ=-;g|m zKU|EQJF}At`+eqGt0G496W7Y6DjyU2ksaaLE)#!wV7nC^rUNuHST^>L)o>8 z++FmAB>)mqD8N>kcR;SqqZ1&j!Sa5beSZvcsIOlqG7_fer*AvgY6Px>6;I z+j0Q6Y*K0W48p$ax|83iHwrBIx^}1w=Nv96nGq*y1=3z5BYl?G0c1P?e|K`ae810N zc8uB}D6G^*FnaSCrb%fM<$6KHC@;0QC^c9T_1$*TI+nrD+r~eYUDymqBY47aLhf-MZc1&6F?++#QDO~~oO?8nOfFkW~{9GEQKOq%3I-wZKzB+CIZ z1=~1k*`{GcU~4}frazLaORzmfrZssagDI0AOave}1wYv7C9@S(eMW^C*=j@qF9;8d z0Cqir9UZXR`X*cFxyFLVPx+Cr#xsMyePN|c69uBp^U$vZ4aCB@)+0>%BFAS|*M4)e zcnXW5_!Pv+n-1OH))GOEGNoUQ zk`ez2zT=Nbn>Q9;dL5QgI{z_Bwe(Pc6?~DOn z%M%&k6oAAYc_A0G4pINQWbjvbD0)J`LqOITfH^6wrZ`Dryk!g@R}sOjKen)DiNp{N z4l@<4DxWGNcSU%F0%7sZ-w4X|ZfuYl|1eG33&VIKe~YYRy}ZyGqHgwhm>9F4UWXmb z0u}q)HR`p)xH*@l(17$$;C{ofFB4CMAf_P|Igx<5a2a!8m$?^v`P=xM=pEXuOgh6Fg*6-!#d{6w&G zTmP_X3-s`R7N^!Dggb*@0hGgyNzMu=bQ>+gDM55DGjV%%!ZpFjSf737^134FOY{5u zFMhZgoCZ_24xFBH-Q9OO+9+##G~Sg-vI%wFXC!UyE0Ib!xj6}NfMRm8qa;ux0a zd`t3N!`q5XBhobmPJf4{qLn!BC49}%XxM)T*}<)8CN?V0|rWBS-ATxuT^^ z?sIz3p|}dJ^$5{NZJM+jS$xxAaLa;4t>izxqRWu^q!!@){>PaAHwcpuGYTJKHj%&+ zYCxR7hFrEER=iS>r`0f(@37#kUv~pBX9ItOV(Apco^dIY(h+(lCrZMosN{vjRk%*+ z{K1(svuk~gXJL$Hw_C>F81W(c`Jd5qTNQs>$(s!6rU={wwCw;)TcjyVA9}pC@KBa& z(MdBGQ5@Vnn57%=0z^S%`QWtX&Fp_gl11qUr_%uIy^!LfBzWQBViH<)k0B54iZ{|O z3v!uNpZ8gFUDhALx+xPvIE{Wc4X(G9_c2hQDy_!oi14g5IMZ=|!K^yB26XjyXM$^5 zx*Egq`%0?)Z2G_sxW>QNRiu=IlM|zjQivC}f|t-1m6#2=bsaQBsSez|^YacouR*E1 zO#id|1+VL(?6z(1e~&aPY`>~4m-J($zpIZPDw6%xGJ>7HrMLiDxhs6BiU zp?03_77{mI#tgU$g2u5G07-mcjo=-)Iy(#@71)n23rftfn-ct}@L zHAOKF*>0OXg%kIZAwzQFwlNfmj0z!eco6vw+!}A&Q&wA$6m;z?JsIg9cZ&?ZXhJxn zdVXE|l!iF%F=%MVET>X;)D3G{YWpSJ%#>*>2?Nt5hQqc=Kws=Dw&k3Mk6gtB8U3cd zDjFiiG+)Wk-G58_ZWUn3{{u76O5|!zOot#Bxp9W8<4uuyJ#BE20qfX83pD!#o#t;w zX3et4d7A&O@dCKs=y6l-iJEC&#`K#3QM5rl2P@qUQ%^(+-jQB4sC@vP`5UqJEAB}V zsR$O#yNvU~{63W!g|K#_u86#2@Q94aaKYWso`taAx@)R_V06hw+^mN6$F?d@T(hf! z$|_v_Vs=`K5u9dP@tz7xv{#m^7I`Q>S))Sc00Cao_zbHW3Gsz4DH49p&I+tBoj^Kq z5J{P-WU4Ln+1QYOg+eqCuVtv#WTT$RmEWO3U|C%HE5kg{`eAa=GP3}4S}zE{iYItT zEnMN<=}kza3n(GA?Y2Z&@sYmQ#|_bnryoM5wF+8swfX!4;XWz7m`i=M9Xh^AMsPXr z(l=Y~?dI7JX0rtt9eEwCsk{U6B;y3V!qp|_=kya)z)@}I$>n~JI))7KYhSUCdSJ6w z{JHL>W3iQ1P&); zeyjIIqfATNy2AY1dy>VfuX)E>!nK}_1WapPFs}PFFvZyn%FYpZ*GZQPAIp1r&v)j@ z)Pz-+xco)bNa0ifO{|{5KXnc^Xngu`hUuoS=BJxs6+m7Ujtu|rf3Woo>di)xwwITp zCJ{w}$}SPpl;mjEEIeqc$yV?S!0fq3_$yym%!&cUwa-1mh>6e@Yo@AXiV(g09RFOn zs*il47bqw!d`eV9ezvM1-2wu(%nnN;zUe=ysC=cEyfuc(3^h$Jq0eTt02Gh`ql^L6 z2;FJeRH&H)>!;0A{Mnv?+%|!jw3B`lm}Z}^g?CBs0vsUL>xUdwHG@r-&1JVTD*BMg z9UL!W3XzOA)1Mb}Pj0Zr?nbV1j;*x1(2j|S)3G%L@^>!e@d2Ywu4>VUj8L=JypH&Z z**&jjSH-qli20WsXqO0zrtYaL6m>WpTyJ32OHuF-#pa+MpGGcWej8VH+$){aW;8{h zre8)cms~~EvXJ|(j&6r!9Y(Up_zJKXEbz?b<#ax{J2qi6$g$6qgM%yoOYA4Ds5Ax~0s0(;(ad4K{q z#IS534s)KZ7e!EX=mQ+c~(wZ~~YcLgQ=Lo3JtS zxtdNKC6p`rFy0Y2ynTIumYuF&cCh9B)Ow|+8F^^}XyIV-fmVK?k3#Co~hMKjH+ zYO0flECv}+YasRc15e2@*zl3KbE0%GBBCV))$~yp!#D(tkarnT?V724>|eBhIQ9-A zVA-ikzWI0tHonF-FE-r896DwVMoxKGH=kksdx$-`m*Wrj7PNE(*mDko56r!qrQow+ zh&{U?OzQqyns&{P&<+2iKS~16Pwy0A-DgU-qi`%R=f;uUH^_eU zzl#Y`nO(dpwz*KElz$c<3$uK%-J~ji7ndervx|m zr>hG#?3@hw-%)4T7|+)R%E8*U_$6q-0_}mD>NTbq*K`)z2T-jP{a1367d_NyaltaJ z4tD%c5s3nqXjH$C?BN#{^G7omm0)&P0-^=B@E|#|n!fsRk^3%w4EGGo{RM=#4QVVL zm?wfnwD_UEPmwiW1(hI!d+MG>K*z=bn4KLTy41_I4*#g54Kb;ce~=dd)Wc){H3LgB zbrNR%J?bl^M&xxO*}&Xm>7%850T1s~iLyJgJ}XR`p%4csl|$gtb(06RXe^QP6+D{4sx zVqbDPnzA_@#i6_@kPU|mUb;A%C&&CN!fmo{cx}0lFq*odONg^%L`=&~#2@Eg^BVoL zb&QswT}b*0`$3RRm8*63sTNZf;#Icz12E7SM5g$5(*~cAPDKWLYx?&u*83z*lL&ue zBY#7^>E~1IGIKFGPFhE5=79Q;eq07Ex`AJkElvH@c!oH4Y)Cr0Ay$?sYLF|1ni$;6 ztqmo3C;-jg=fX@gI;|z+8jMETC!-^2SCV!zxWZQ0(ggodmQU5>hlhN!CS~vos7+2( z?kLPU`Wqq*ccaLd|1459I?UQZ&1iM?xw7&5F8fADkHIIjv3JM5H|bYxxmW<#_z0D) zFubJ&^1aI}L#jmU0noHuuH$O}c@$bd9lC}pUEx)C9pL0**ikW8*g2#6N5#u5q7FWG zX!=6aI`iV};q9wr*_idXMnA$;{)REz1teG1I_|*Pee4^{1RSgR=cDHAV~Pzx0hyt@ zO5W1U*1L03X5X+Hyh_-Av%h-Q7MSmJsC<4l`%wE@KZ0Oc>9+nMZS(lF8V*_X`hA`A$9W=JS*JJ=%Smb2+=I z0=si2R(#wmXPkeR-&$4mVMURkW2!{C(k0C%6yi=&-z;i4`-~Tr?DrRwyK1a;1oJ)w z&!KK>?MRol@%u)2aT$ti{FMXhYZE%Bm<^a08R(^&)f1qoKS6NtMjlqYk6NK=%n?tT zXzfM53t7?@p3%l>{($`)-RUF065&rq@w?eKjogW?_o#q}K1uo)uRu4mv&0`01aAA+|8_I!w==+I$|d z%U!GkH63naXjT^bFTFFtTRHP9>rlLx40po3CM2JUSPI}t55RqAZZYP2kHOdMF3QYf zruXPdnE#EoP0~C;`ZOTwwQV=MwdmY)k&99$2chM+#&9s)s4J)Ln$0ybt!>ED90mM!~{FXe_ge!YZOKXSRkR{Wt$?ChAh zu#tHAPWxMXug>7!b6DoMiV+IIBkO0&bWF-i;r9UP zX2$8SAezvoA1Yj_J1PgYYd=mRGgD!erWg$)+NxB68oRKxzrfge)ll_|ITv^&BSjGr zisA8fc=zo_ynYn;q)0xZ4CVmNGOiBXM6s`UEpvv3bXUO%vgK#XF!=S*|FL~6$pEvf zqMxk?Uc7F8jxcb)-^EHU*S~%Ixn1hP?EI?H_^R9x$4A`q^}x&BJ0EnKwDJF>2k)n+ z0fG#liINtNgE;jH2oa(4MGaKU`3V~U z%AhWaZOSFMYj29WgP)R|g}P_sC1_TESYdP~zo7{Ro?RRMsO_M42|T12-gU$^M^!4S z=5e}2OCU!gva;FS+i7?S!;W(ZYLa1^-{bGpFOhKs)ofb(^d^<25x2Dpxs)b4@3;4& zBk?uQKV0JhqIpBurRqk@J1>(9|?Ob6agx4R*@J;t=f^?y(jF1m_3-v>hxmYiqpx z{@Na)!VS{ap$aAg&p?mOR~+STYV~X)o%W19tynGF!Y@s*a5(`w=ON+FA8XEYMf5u2 zgKvlF6&dMC*sP1fF46n(oD@aNsd0 zj6iR5gi#Xqn`~8;7G~=wsNE=yPj2A7Kk5PnvV@(_@36n(vv{3HVB6Xp@#iq8^qH6G zAL!QqhK5SML8pC={DiDVKKofBFHn_SEfRNN7rhLcveKY-%5bq%-{bg25iN5|mQY@* z)nR!n`LC_@!^~r>WN*!EQyjHAT~`tYo$~<$g4pH|O?8=3R?cR&=oqNeWwvkTk_i8f zH8L>os}_YNJ263=7>kn}Vq!7scBU%q?H8(7q-y7NS%{t7=MAbs=VXw^M^Q-I`s)y~WK`vIxR*j(V;wXzv6PynvKnp2Q1SCIEe<^qd;c}a(B9J|5Zd-T5oo6;~Uh4Y;*P`pe6biKbZ^y z`IF~+IU%Q+(=;af;L&gdHA72CGmh#LTOZs|Urb^j^_CPaDL%S5-^#VRdTb+dp*R{t zvE~Taj1Y!+P+UnnuGjW(o*i;i)agex>yeq!Z zhm+!HJsbJ$B;D}c{FK58_yqp!Wj%80x4PUC9&->_LH>UQrC@&tz$=Y6F512I(zG@Y|~=Xu<(zW8srij`wq$QT&Krz z&R(X`5x0Q7fayF@N_V{yv>f<46BdwUnF>%&BQpxOMRHa5u!Y-k%kW^~Zf+;EZ8aJ` zyyCw%TFwHD*b`^SXVA)vScg10x#ITwbQOqc{2rG6qUN5__mGRHMT-ef3b9b4yB zH&2)KvdCGAc#KU~i1VJ?K7pKdpcq{7PW5Vy2i|d_NNK~p2!KEaQ;_kUC!W$!shz;U zzvVSqbX(}2_eoOBN_5% zEmZ2K=|1IhW`MWe!p4BdO`KaeJ9}Hrdsw;dDj;$U&2B(SuvPv~c=a}1I5r1wl6;iV zu$%)Wo)YO!MV9XPa%`6qc<9?P27sVHJ{B)cU!vxsD?gBCP3su^z8j`9+N%uIZ)BfN#ULcVxs%3oY3 z)+xcYK_p8DRHd^OXuyc@agccDa_n<6ZDdH;7(XWZazmq(LC;v*23S$AsGTd#9&yg> zqws&(w?(E%g$F9;w%^2=H5UczpiN=x3()$R;4k`BwEz*9Uy+HYdj`F8@hmw8zU@0m zciEX@Qt3$ioN3%y%MQ>hmi692)3q}&?Q^*oxfx}K^kPI>$spM>U4k9%6_Ol4dWV&^ zMY7)#RJpi&GSrngui%%~B*R|zS9%Bb*>SjLJk7Ar5rKUkD3Kq$3WmSCGZm_%z=eR1 zu8j8rXw*}m%*(Zt5XWiQn#+oBelO4|J7N7M8AEa2JH(UGo5RNj(0q%l9&kU|r%aH4 z11%4JgDU>>jiS^d^_toLxx?eZIGpR=pq=CL#-mXiT~6i>;Jd_!yS}$Da#fIFQ|8jxCJsLEw&C z%^sgtplTi9r6gm^{FUF-_g8SAq`$)wCxgvz{9KoywSop#zNF+4CM>a+j!xD~$62=2 z(5GM5b${7q*THv=7?71e*$%B#UHAX~ju+w!8m0mcYA{*SkQ3bbkL))yUG)g4IbJM~ zG?>2a3c|7LjgDx)&ecF{DE%`B^gdU*2K*~1`%z4!yj)#%wiFbi*5!wApvp52CF(qn zO-Ib1ub2(iU*(6u1+lq`?ps1~6l$({ckOrffs|iIL5h1A|E9hjxtfhlo~Z31YwN*`LCdfzgLEjYcA;L zLh}QJ2a& z--?t<1Q|0;Q-|9&qF(~ga^u-#uLiz)G45z`9N`n?tgC_6ph*|+njkq1`5?Pf}bWR6KU9Q87B~s&=3}YAk0NmHJCQ)p`6sH9ANKDrIk!s@20(z{X1@ z*4(h;FXH-1-H&7Je?~diXEs3Gt0}K)u#^!-AaosM31G@e%cZzG93F|>VC6r!NX&siYaQafhdl&ME+xpP7e9Q@%9|nPh5W!D z#r)a^Yya8lQ_7wOqTplHx5J$M#M~y~X!(K9poY-rdgqER(TtgVcAp}e1Lf6l`NO6W z+|9+@FmB6PYW)IWD5*|_Is306!VKxmZ z_iowNF9Ek{teS(Ul_*>@c0^AcT=VCurLF?Q( z0N1)~g(fjUc8U1#E8qvl!xh*RcI1$0ix=|{_eZmCDyVCuF!CBL*P+xEPN3MN>!Y5V>+>0n>wf$NiH({tH@Y9TzCF0> zl@p==5*Xbmry+8&PUrpJO1_+g@+y4h9_@rj%=1bt^V%B@Isn3Nu^`O{bOB?IidAX z0-ob2YsqGT>-d-+HijB-&@YyGx{Q9wiCs)AUuimMwCoQuzXA0H;%=CvOunwF93B(h z#b;F0tK-f4sEZ@drDP&Nq}ulc2|vS&VF772KJg$7C%>FlSQ-zE@EIzA-#>yLERqNC zHwrI&6W()!Lb_>tJi1N|&6r_+8s~pFT*%BL+24S!?G#QE9ek)Ch^)J7I*T04Z9Hrm zL9F@29|R+B$vJ~yyiA=Sd; z;-12#B842#!w!gmmQ!x-}RRNjnxpM5HcII2Og2#VcfmjU}e+u!RXMH zdNO3wY&kfuiVvx@8Z_D+Zv0n?P9-C z<$^E51gn!P83xvE{qL^KMR4+67bt|TQ7W0*eTd(P0?z7{nqv#ahcqR4&>r{8g(8TA zbzvbFN8{hkOl3t?MAWx^FKTGP*Q!)+ve3BThHZ$wGZh?mI`NWbTzxhDy07dj>JVN3 zG#p#ApL+x~tC39Yv|d=c1}VRcXz;E6Q*q3?QScNzcW+2*BIMsNTL~|Jh3yGMpAPfXYb3*t z#i`@esoGaRVH;;jvZjs1=hXpo#q=N0SlH$`Kho->9h z?A!$Q6Yx^2jLrLM!24xwrT3!WNL7hFuxaBE^=P!dgqY$GHK87s`(Bq)1O>d*u;$lS z5nheys&C8(K_!=vv9sA3INu#4BO?ukQGFSM_0Ja85KJ)${p%v-_R(DjKA7r>2PlqL z`O+Plpiuy!D;b7TcKIFOAb!RwEVx~igLMcNoA)F6YjaS0o|sR;*1tpdf%wWOk|LAV zX6f{!MO6z^xi@T&__@G6qMTG%hIDHXs~Etf+x=nyHh=Z@J>8gqcry`<OkX9P8s9$l>zL+N3mCRI=?EIWGe9I^ij5Sm!pO{MtEJh zp!Z>kWo0oEFMVhAd5Vp|!a7XdN1SG&4=$E%(=G^)+YUfGcOIQ|MqxN(oW0X5A2E~( z*sd<@9Ylp1JEMnUDIdZk^o*ukFm(qc$tovxBLVh`?coL3{or zMUtoOMNWN~(TrM+4)_;v;BWn592z6WJ@%>);rjT}ppkfGR+g2h$PQoM2xJzBShX!l zJt4Wqr@IA~O#z;{;`ZhF-Gb3;2G_MD{Qqn%q+=?2dNhaQ&v%sTb490@)+l_{`!VIG zU>Y^TKi;JhR%C}joxj7Thd&=HD)LhNg^cj`s5j-k5x-hV$Y1~B~}<1zjol52*nwg=53v1PV=8vtZVj( zfXh7FjLJG-Ckx^0$88>hs@*G+3-`)4E7zDo#$Ya$i}bGo_$MrGXN{LS~+i=4+7+bJ+6=l69^_69noLz^!^%)=spCFf1i+a=tzA@;@H|_XY6k5b|a!D#!@ z7&P!7e8>lyy8%C|McBN_Vo%pS#GSstu)e53R{zh-#9Ylj$OSm$1gmhIzrJE&-A?{I zqWvf_Zp73BZQ%6$V)uxFE+iT&kiB1FhwJzZHaKcc8rkLfIe(Sf2Un@DiwIsIC?6-09>M%RQ3U!6ue7a5Tx#7jml6F^nB^m*{iy9yC#JQ%h7><>H9|xis@=VstKZ_D zf(3qq+6`W^#Mzd1Ag#gPoq+xaCK3}3FW@=?*;QqZ5$xpUBmN5_S8=3wt^;7%D`y>g z2dYM>!%9-e2@kwyC3vSItNUt@NcI5O9em`S-35M_B^ykW2=~v(4w_=ds5i)#ZS9Di zKUii-q@%n37#ya4`dEbRs>f7TGHmm##>?PQ9Fk9h<3EE_({#{?6QTRg13%|Y#FYKL zzl_KBFVreV^CM*;+E8e0m*+8>Hht4%{}ucZ!UFR3pNyt$=+I1tm*Ui){5)Zi16 z6E(@JZVWXA#{DD0PvV$g(*uY4T{dPEBTuXr6aehcM9qy{Gp85lDH@MjIu|kPfYhcb^^!ek9#8&DEVfPF&}i!GB72DLlMG{+OI~EecdQ)%Na%t z0Q}aX>tQ&PAG&hvh@2P>Rr=JJPnGl6T|-mGONX=@Ih}~TufhMwD_%p0C}akXId+(S zCtS31nPq>)lS-t|X4uQ|Lz`8lyuytzR|P-M;j&-lps$5q*^T)%9u$*~Z@_j9Qtz~@ zlzr;ET}6(LrP#uMQ3u|7RX~)!9P#6C)M@VSTj071(vCm_m`rEn&jdZ@8yH3@v<4lYx%vX zn-eVohOF_;tHnFkOS*=@R5i@*Bf%;Q;9aSgT3Sf1e;K8@?|D$pblq0`f!|>52V~PM z#IN(w5+<=N6E%ey|h3ZS1CcQii;=8?%mZB^(`^B)|kZC=z8RuFI-k+>T$k z!#$YfkPE7Qq9w>}gy4(Gnc$w}noyoSvhUQgZIZ$UfkZvlIynW~=*?aVv8%NplzHDm zpQfzTNTzo_3N%kf8tk$ zhB+V|-+`kFuCRan$-O{-W;w|`8X>x)TaAbcxZ^^UH`z|cNmBuhWCZ3E zd&JC)tlzlRx|#SAaL99Xw>E-z?C>ZLO1VRsG66iGAs2Z?;IWTXAPJyjjTrH zzoI=SIPNb{=&cLLUEmGC&o%#Gk;H`?X3$<; zHDJB5R4O2@_y_gF@=k#G30uPkjm#wS+GE->Uy$=*XXviEHr&CSEHh7-7{%sm5lPZm zrsuzK-3#U{({;E3N`tLl zgY3;ML|eCEQlLY@*h^&P#F#f;^mk|%UbkxM`jcZY>!t&A%!l54yU!-k{%6C!R$ypL z()i6d_W=bDj=!n3I1&5CSeLGRr@la2`vrG~Sr6R#Sr*t*f^LXL?k$Axpmg->|D#%qBPrg{kCx71~9lA5&ga2xzQy{ zi}PUA?I$pL&(CN$q~KT0hAS$=I8pNSS?FgGg@GkqPfYWCntuMmy4#F?m8lyy6J&-8 zwX>)AuMylsKy6_1Aq84d@s>>0{r9v_CN()|KRtM+x{uN?v0rZ@nFUz83<0Gi32!U- z^Nz{p3s>uF^pB7w1H78ApzjErHQ)p`cSK*kIY^rY;*JT|(3SRiEjU>zVdS9#jD#f$z48Ixp9E^~iI zvMeiKjBV}Ez|wcu@Z_-ONWS0;t2(DH7(GxBP)lD;)n%#f6O9hqN^w7?Ya=F7h4g)4 zxG=+?o4y5J=f-*h-LA(M8Qy$PA81R;t!75I0sv`*_Iv^38i{}uHT#s!yI zS0Yrzb{OvEP@Zqs6b~1LBqQc@ni{nyRe|i9qt2`2^Jn@#f4sRrxesm}(?qj-PmHTg zOUL*_QTrlP9$f!-4Cg_FEX!73O0VnXoik;Mv$73aE2`M-$hP@>55)$rItl=8IocH4 z4BRH^C>0P@b^8I#E6Xn^5ERzi#v(z|tu!XqCewD1%{mxh1Pqj7dzbe(I0s^}$L**&O&8`*Y{OzhXddOP8;z&-6R;2MrA*dzw z>2uxk-;eEbUklfHd;z<_NdJX5V83#5zCqnzcRofwBaW=bhB0jEcEr8!tV*mik&WeA zw-i_cNl<+-cqC>Qf+c)^8O&u4W;IVz+QDZLBnj}6AJA?J_rJ^Ti6vP&Z>i`D?I_v? zM(^6Jwu~A6%LJ8<7%k47Ctijf4E4ENP7iA5Y!f?6T)R<{$L0Hv14OWzJC6UN zS+aHbc03D%{eBS1e6Ijsug&DN76C+A&3RJPrWzl&o_$(3ZkW_q9NjRY-a3cvb$ypL2nKd^(JKjZvsNU0Ofy zQDYDDwv5IMqHSRcY3%{0_i++7CXwtwmKIfuUV(UJqJ4<4KM!*m;rG z4zBbo=}(^b@)v-vM$J9OznQK>;|r^O3z~_b?Az3X))Sua8kav;P4D(~m|J;;Cc%5O zW4q})zhj??xp62T>jjY`^YMZfbk832sdVw$?-6D+0XpkvkD$#ol8n+9R6mXa(UB^RqZQ&)+sOsxewr71|$ zj)2k-=h5_|q@mvr)Bo{rL`w6L-#;y?`PYlSFeIo6KBBZnp$XDKXnc2ZmkjkRs=~{=|z} zZCgk992qcG{rv^W5skJ}KrR+BqCcrc6Ex@37pI z#b@>V$cATe|s=)}S%%>{vrd^laNZEK5<0 z4GH?6HtmY$Mr{%Jp30@sOS!uuTJG^;V$H>|LFa4}NSrQU;VOJaeq4(JVF1HFv`V0G zCL{VF@gx3wdQ=UgVgy6T(=p}ch@}rT_#Ycq-#|=N(NFHLpdax~7ndy(yQl#Fk6T|w zBU!RaWk49VoCj8+R)EDqcnPuI?f5mk(fE(QnO=j6=Tu5x7Pj%8moruczVm*`)K$Ob zdpIJ9gQ3dhl4wenJLl{XYc%NDKC0&a=4F1Pi|Oa(eI;!g|NABIDw*UGs&6vTbC}RM zGI35U7plATo)`5PY$au7OC;Eu@%Hc=2#?u$46RLE{5_fC4<6e5^tN1sj zDIa0Hp;gNw{d+pCDkeK|A2zJaBZ8PEG91=H*OU$wyCbD`?)uNIrtC_xL}K z&c(0g_W$EMv_so!TgR=_PN8(LYEs0G*5p(Pldz>S#63CXaNDsqEUoS&-EpskxZ@r| z4&U3hid2}yozs06IVJ9#i|X^c?%yB4<563m&vm`uuh;XLBuE{Xw9=*YwwdL##)HEU zrjBn-Hv5H)5qovN;JfEYkLfqNj2%IABzdz~cvFAtyG$e9o4z|jb z(e6z4Yl0YVe?ky_*-~>m;|CpL;ff$a&okdMpZmGNAE|UCX^+0@cWo) zJQuGd`e;v5IjG%Ea7>Ld4c5XY!`8c-KF|Qx7eh> zvea3AV$o5|Rul&)0O*xe_Eya&zqG?85XnjW z+kZg4+k86xSL$DERTSVB;P-N^zmEw6ic`ms_nW@P3LnQBIZdz=RrdEI#8ZPM4kVcf zb{rqSa#M%YnI1v!jda7W>e5BL>OwDZ$o%v;|6cOVyLk8RI(;Uivtl2VVctMjqFg(6J zL`-K`E@Oj<%kRRc_Us|YAEQ#)qpo{d3K*N2fV`7Re=DE$it9*dt)JjfDWN8hpe}{d zBS+g{;0fk{Jc_=usNt~xGjWBV7%lqQwCJYhov!?wb&0B#LaTr3vVl_{paD@Pbo>u) zg9t1kF8)I9&ryydd@wCk<_fm$-ehLEZJikK+`qkz;kWZ8esc9eR8kbgFeK_QNZ@uo z&X-IF6URUB)f(jE2iIGT8L=Qkwt6F|(QobM$2y+7=Y*tw&&d)rdRDua)-g68ZTc^gY-E3I(ZMM4k*H7Y7%{n0L_4plrrGYAj5?nfK5Wi*v?tD zd-gNTPg@UXs^Jx13B8t^I5!eu0cl$R_Dwi?8Al0vu#^qYRZmU(VS)t#JFy&a=%3)Kq-}e z;GkwGF-zq@S-JrEE;t6%zL$I+{BZ~Nc2I~DNa<|t0#4)Fue8oM^h{dA`;|k06srzO zasuiLDy%uZf-5@&99YKb9H)2+a!|>4-c|OL1B7ViXmMEt)YKW+V8h%>;c=v z^2EPwBM#%ZSldn4KB?5odjqkF4hN+_NMf{SdiHNrN@LVdajRGGCerdNMiP^PdKBok z7|>Doy)$a?o(W9zw}YsaVK4z_yNedC+Ox*=_9S% znh^u=W|+I^88=(il`?Aemgt%gx%!G8JiV7Rwa|l5-wJG7Mpq3Lm)+}eEh9gi1Ee<; zdP{h?h$@!@SUY~kO5};0>TPeiXWx;gXuKS4?&8-L4`;nfG6OLsrrL+@yMaDMo8bah zIR`A~ATz%kGN%*C6A2-szG%r|{cP5@{cz++V%IOp*J}PitAj%oCkytc0CJ;YbwV@U zN;8+Tnghi7Ug|24^iH1YPoq3Qxy2c?2)Y%>FSo0$zh#jqWG!`4yM?Tpca z+so}}m<@x}UR(gAskdEbLC!|?1UKiQ2NrAANO6cz9yq5EGG?^`V`~~?St=S`@whtN z8fat!N!#*h-Fcydkm(_ruzfciA7NZL$Rwq@@}FSx;y94bzX~*fuC`+@zUOwQx6W80 z>0nG*1G44&w;JO_`R@Hw>$b}OEG+PC<``#!ph1H>=Kc#K8tnalfebO!lr|9J4iJ>p zT%Ue+Ev34jQmt{oPTiw_@xCeoRxuy+(BS0OCl0oeP*LE5jVr=_xRc2jYpcm#PmH^G(&I}6OMHi zTEBpt(u=6zIRH=@kWtJQjBl~zT4#axSE4oLBTLGt4cEFv)rO-MZ!~wJ2bP=mM@shN zLncS@?*z%Rw9Eg(1nrco|H|$;3-7~Jyn=wf{V%xF2!FMBJUV~09rno=$(aBdCZHAD zh($;sls-f6vu3N`=)~hBo^=FWeL1Yaca5L==ui1hR(51xIfZi}>SHuWPEU`qeT+gT zjAPr9NapEvvv4(@L7e0ry)W%g?qI2D=r@@8$23iQ01wnLkSVj>)?Sav_zGGvKCy96 zsvmyimM*2(#&lWbkRnz+ik$nC>=pC)bg=^L&cfO)qj0g}AuQq^qZfQl$?nN3cux_3 zJmxt<;6}en(lYEdh68cyon)72_X^1~0|8+}yyp5WI3tB`aE-pHewK?4hMoC^JT6$C zkak2~9wWG=9gkJ~L&%r_&dn3#7FR9&(xFc@zZ~f9Q!v|7ch1YQ5y9n=1!mIukwB~g z90r?AAu~WJGeO`&1Xf6NhY2;Aw8j-I!T9hzf2mpnkNu8Yt)LI%%7Ntqb^AUzKJ)lR zL`gDpCW3`@1xco_-35LQY(yiagmsX7`W3fhokb#3$71YZ zg?n^IMz~d?eDI_oXPeu8gP-%#hJh_&q)BNTj9@irbtj>3#Aho&TCpoXOMMyFB`X|w z0}hPd*Ud|gtIToPqVQ>`qu~;OG5)L49EaKenPlolfJ!MSChBwn*X8QVfbN>x^U95P z&#koy3~9ZVrR5qlg)1;lp+9Zye-RJ;yS4Gq9`dL zicL4f)yk0Q2mK<4d+HIGXc@_KPA1)g73 zX=|yZbJ@;87k?a%)|z);Wm~WjvY}yPeB#PXSfIz9W|-gTSUWZpN&fa5uU%sOpVh2K zQ;?kZ6vi9Ez<(Y(!CN&1Rc9x(RwsuJZ9c)iDC9Wq`Gil_w1ZUK=P$+Z2E%6>XIYFx z*U#mo%Fuj8BY6Jn+9r(`os=QwuFwuyuTM}ok+pEZ{zP^hbjpN99^#HiAGud`9WcC` zagpMY{y1<3{j1TL;4hb_eT%W(7qs*OQNxBpkAEqyn9QjF*_*zY=|C;ou5tLJJ{#3- z8{(!LDgg_074PE>)utVg@G0h-`&k@N(ev8yU3mbq#)qXMzWT6E?&ZB1;GR^G$8ywF ztD4kS&n+is)ZHH{CO_NSciTO$(b2|}Hrm?|6~h%Vxt7n^*}+gR3f;ZcgrzwSINx7ou(Uc!e|^vG!7&O8#GNGC#Iv%>)`H`UL=|TU_ES^r}nMOLt>t3-rB>@(fX0yV6AxGl1qc&)J+33tIE`A30u#5qumF!_LL8j6 zr$d#GfKB?9S&Q#;tJ`YZr9P)gP`s@ozXTZYu8>SoOh8AXh#cH8CY;*&+TLRHLMN{@ zH-Xl{!?XXb3kG#wRc38aWs zmE>(R;Rz<$2AG>CT2y5d^^9jtSRftJ72c*+pBC)ng5mqkmcgV0aJjGJK54)4YSCcW znzKX1-BZPqtNhcqHP;ylbxw~?m823rn{|eW=8RTO$mw8r2MH1 z*TuT@yd1rOO%bhgk1)~CnF)hSB$8vRT&4t2#$xE+ldy{&2iyfsF7JId{h@h=2e+Y?P{PXaB{g-{NWk|^#m?g-o>P0`xU~r>C&0_PpB@MWH-^{y_16`9#Ijj zm)-gz#ocO~Dp(#2sYgd?fHidqYGoiMEt1Xu-`RD?)qMMLr(qa};$Q!VE zo~?lvl4u@W@s1`TF~*sp)*@2HwBE782TevF8ghGuoKsJ==l~hjCfY+p2mkBn009p$ zuA9a@Yi^sSKi@M5djWK66>bD}44{0*s@Em%o-eIqJC6Lz&6uA15jG3t<$JizpnUDc z>L#+U*-P;vuLnH1A>IsIcT<$)V`ZZI*Vi_#Yw6)^E5{cWMv(I+nOm`KCo(#k4<&=6#CIb3@EElCDLmJ<#3rNVLP($5;s0 zar2zdKXaK6n{d}4YlGbwuoqP7HjnGxVfMn$z6kYx(B#4{U$g8+9Zn^kI1Kl@En5n1 zC@>^;1yDFaz3Y-dUEbaRz?+!dWSGwoeYJ9p?!hZR-0b$`b&&-;^lHOrT?1xR$u?-2QL0h?-nsrzXj ze2S#xncFkD=!TciHwjwM76A@n;c#3Yk=6ApeVfwLqwD1uW&=0h!z~As@VX?Ga~1i4 z_UAcp18fb%y1}lWqbZ0(&M77LE>|W4ghpk+e{*^?n(!Rd9AamhT7wEIKm1k# zKd&Rk7|C)bC&Gpri|KJ8aV-kGMJ(7u@4U-HBnc5&9*{BK2vb&4i^R4&5J{^@1 zyiO3{a=Mc@#|)HQJN8h(sN@csKhFvJVpGPbU`&PGfXezxT|~DSI3RGaTQZA2+2lNl z4cbQE%Fm1IcF|wseYH(oF0IinLAWWdL&^U#Z_t}*q)E11{(Vejy&VLGei>_;dXZqH zWU6x{3Z(npD3PB0veA0z)<5zw#|XQay4mdiu;Xvis1(Y%RFiT5p+&@DDQ zeqwiZh3oY~uh~6lK%-W)5YGlg+>K&h)#Ob>Zr5tPF+HWO!MjhxQcL(r>m@?}ZNvoj?V=)&iCkUqPMn_ow-U%B@b`4;S)?|5cZ9w}wyR+L8fBSaA*;O2v3EgZJn4lqZl!3?G>I+Bw%C(*D^Y)6r5qCa z0W7DtSNca=`fS#-K#!lCU3QpTAey2sxSu}6ntOGb&^(~ZcVba<)F>q#)N1}?+5f*LJqpwM_fm0z6j(1AHS;lqKz62Ilef` z=5X^941)(Jjx;&tKV}u zaVgKdb4jhs$D>8^g4Si0O~e^bkvEH>ly16^`~kV*e-7-a#gr)IXD%{)x4=z%e4A)l zv$3p-Gz<9*uDl7m;PdGEC~*N{?k^_NA2!Dzcg}w*T1row+$RQ9H1~5!f2-=E^?p`h zXE$6}IVQxw=&y3^=-G1l58CpvDBiS31PNf($|tgrS?4E!uP5)8(3*z42@Iv0u93vd zrYhnVx+I|M5q#d5ef@Qf3uevON)R?!C0_(aquznai`s#idM>!hg8`mD$4;o4K3ZpRU}E zKW(N^|8pMW`r{m)fDcihDOaQ1S*ZfUb#8EvGlKjUM~O_GPPH@ z%AO;fT1s#VsC|j!>;9njdc*2@ysRKmGE+eCdDElF)T6^$PsqvtHa)os`x?yr02y|W zo@|rJL<1)Z{0cT(u>pUY6gfve0%o;XnCev3U9)Qlr-vNpp%!Sza1`^S5|l#jFi*k**1I^)MHVjr-D*j37DuI!Lh$s_PA~L3rBJu@;ezx z6m|Symob1UyCbYE!3(V(eJ(|14*_>91N+t019Njb$gYWwxokr%A=aPTJrFCU;@Yh} z38+12v7&19#zN(Y;dnk4*||>5S!D*2!SLGv=t@TezULFnnrG_y`c?Xuw7U7p>uE5| zQv5>H8}mi;IevY`aHc@*JMHaLp|07f&qicC(4S|6EP7;u78&~IpQ75R7X68A+T z74EDChTZtYqQ3qJf++i&0s6d+=Ojond*&h_GShNbm3+jH^O#_V80VZO>!zE=N_QUr zy0LXBshH06$l<2K__>Df_zQbn>)pKu=SW`aScuNL#M;a{8mPmj{cTD<51!nF!DMwj z0CS?$jn){1>_pHKcxB$ENsLwQ`U_Cq94nQSXn)JB@E{d|3h81UAW@|Gcpc!y=F5I{ z?VBKJo(Zj{Sr>YO5|F) zV725pxifjC{%C}l0)FfAk2c6tGl>ONxvw%Sh$rWhUQExs>GpPT3@RR+9=9IMWqV&%i?6HtY%-oGA`^zKDIw3|c3mM@t}|QR zOtMM5PXI;tiAqiBjNn|9cTF)RPqB?4Kf!~qvfoYsB?|eL(Zqe*I-1eZzmbz{-Lm6R z%r3!47v>s!|9|k-slLfK_-$cmg}C5EAqBe|A;H0>)ImBey!^8HlWP}%1b_nQ{2&l| zn_?WwQD2xqx8tH{<9|Th%h#&cO%yAJZ(uhdGrYT-uyd_jDBmAo^S3pt(+0Hv13sJ_ z862Q<{KOZHx$RwHnvon;=#xI_W9CeL=Dznt6Ay&m{&~xq@opyPfsSm=jY| z=vE({Epn}a%%Aa#aBc>GN%VWqUDFjal6b#E-IlH2x8cY`o009}mqlp(GslLuxNQ-m z17HJb72yD#JGjNI9%_Y6YNt@FFX+l~ms{sx3&B_GGFnZvKTgFRe_LgDnpFJ7E2OU7cx z3ML)XzWXT$cuz!%sRbgRuF34RJWl>{Fr~e^0O9H-DqNYVUsG^;?=bQ9L<=xJpa-X0 zAi4%K+d1giPxe@6#_c7CmW(F$!$uR`!>njAXyAfu2|kELBHGID@IIlDwKZ}Xuk8V$ zr!b;*1%0OVFto=4l;~ z(h0QE!=M$AGhN{&OcFP4?nw6O4iSrX2~O*&GC3;g0BNPY7e}ktey5RBNf))Z)W;8i z;T6nVSf9`TI-_ADAun>%enR-q|GltKEE8%jU@xvK95)O}K;YoXPY`(Gn!M z9k^Yc{DVrbkzBXk!!^%`N-~JQ@2su{*^7)nc%2O7(2ND+UvJ)SUAP{SuRiQrHiP{8 zucXbGT7T3ZG|M)8=j89j93_~&H}t6ac`U~ZsCt`w`69p|jS(EeJT8NOnItJCry_Ls zXsrBoBxyu_MqvRVjtUqKO{&_MR2vhLN8N$l&L^FtFk;fpd#foGvR?Pdztm%+7+0W;#rt$arC93i z_Z*U!kK9nKr62bZ_gP$8VmS3Bt1gWRueQOC%Xg#R6B|7(1ren#HC>r%iq21L?HZw# zAE3(P)o>KAKh$`sHMsE-JeKOQA{nFp;%GXgA)go!mYwS9^!EA+j=lGusnV|4F;Doq zVG!Pox`UnT>GT5jkr;8^BNb^e&rOGBvT6s^E(|krUZ)MY=^#Cu8=fN{_Sxxfhg3bt zEsV9_!Iu|w2y@=6>PjHSdziml8S=$XAvrR2!}#7mXU=0K$5;H7QaZT{LsIddzk*a= z|7dRMw*`zFqA*fTCdoEz=>OD@&O!XgTgO>H^9@i`l)cF(pqpSGA-LvC64=^rXCT8S=9tjo zAB^1M$_iek3uwWHX355dad@(K6`-dJ_b|H7aeASOxQcGwtr22`z&3A;IO%%H&$n&Z zNjW4GCjAeu8PnW11R%p3WbY6ab_t^i_6Fj;oi7#*L5cJHTi2s5A#*0BO%D;to}!$$ zRfFVk8^_)}L=1>ECp2T{9hw8l z*s>Yyw2EUaF2SORu0?hJlpf?2^KL?Z8dx`gDVU2f-eipmM1LNV%hWHxYq(sf#hnD_ zjFO*wD}lMGAmQXqupj7dH~kl{W5C^~Db3YC-0$nbg8TamZc;bD)Q1(mkIzAhCZAma z1T@J6BB%!vVS`_RDO5oiv>rsT)t8n zGFe>-#_6xgm<_13aj8`f z2Rvs&QdX30Z+zVbsQSb1XNSS&hKx8$O}?dX@ejG$12ogo@Ule|{;S2jXXKK}l-{pL zI62O%h0&i-U#Ru|n73&l%Ti!++E5s3_*}tu7@_AX8qcU(2D)#NYkLn1+P*o#8j}-P zO|`@DJNh;ea)i3K++a<#EwnG1m`iDP$sdAUGHVt{`z$B|(r1uXzK>q+IMBn~Egbny zdt_B#r-W~i*9J&8yOpY2xWPeo`5o-NC0i|ort|r6^|Liph!YxUPb-B z(!RuHxjS=F4nIQ^0-T`W8?re}+#_g<&j;D*ap8r$5h&zPo;elxtB>emjiw*PUenpX z%4X=h7SyG<{Cfme&}$g4{Rp&fXXpp`t$erBMV7x;icXy72MGvcj4O!4t`zz(*s(ra zs^^-I>?M0tNH)*7{K}m9EBU>be!IBw4t1=l1Az%@*e9CU#Op0weu!=ROfL=Uim|!? zgyVF?@4uTrMI!fjqdC!VcT zpQrWm;kzd*54K=u)sSAW|J4Mv8vAm@`f21jS&yT1ueeB`>Ad!yxl@(Hm?8*_K}U&m zeg?KvG>3i1*hi|3%hZo2l29~Ype}oAjwg!qcSbp408p;8Al~~?>&!E#_jIMj(oB)M ztl`vo4d1XCu~?Aj*|@hvLwz!gdDP+3lB}{V%H{OVn|WKK)c@KH)lf&IFUTL#xKfK#AA!nrAvmv z0xLgY?8cmVMswm9uV$bOhr6Fa27|X_Zm({!$?1bLVyV1Eh4wH7s%Ws3^u%>w&$Zuq3>9Ze0k{7@NS)ZZLo+ACO zK0edD+bF`v{zhIjCLF!h3g~lqTc2zq{R8UsQ%drp&(Xa02=h5UKv~X4nzz8Nj)DVA zU10&W!q47rA7d~B!-)}8JHH7VI@Ei@BL~(svm<#giHam&0&hDnEqXbBe!*bI{Rs|UyuW|;XWYBvqhWw z$Aqk}|7pGVl+=JP<186a=mgDx7|)D@h&LLOp{Yyj>CLLsw81V#7P@lYfIHvA=XbDw z(1A+sCVbKK7(om^4jh!-Q_P^lxZ@im7cK2|cS}-QqXpNC?MQcm8SQiSF|~KBAlOA> z95M9K6d7ZN@jS_}ruC|I4xBhnF$)M=w1&&Hv$@_Ck@gAReE$FfX&Qf*E-lF-A|_oS z`TbozOuSV=->Sx)gq)uND2;iJQ9xrg=PIipgU`>h(U6;JxX+ZH!NNBhDuB26S)l5u zHlvlC?Ntf)Ibdl$!ef*9!BH=wzcD6^=}e zv*Wz_8t@T~wm0aEx+uXWdc1o}x?+gcIW;)JjE@x8&H<>w2WGt#x7Kpx#Z+{Di_3XJ z$zl2o)M7$N4qpiK>gWjpmL`^BpIqNZ7uQ{rt@b|o3;dW{)>p3Ld*S{{dW4x`7=jJV zZrnxyyA%7HUo`N;i$TXXVg)1|C#&Rd^X!|WAT>?<30(Ozy(`;DN5POjf2qF@(HYR8 zcBRM*f*UGViIPyxK@ffz4^B~NjmA~?1&R<0WL4_7MF6&c!e{#wgMDencIr2C669L1eSMDuW`GN>em z`=`Lh&l>mFBZdOsCnv0B?X81gKM;DgWOGvhI&~0GHMY~HvKn&LlM_ILJmrf{8(`wE zhluaYQI>g!M-po>XvJl?fmFKG7XO~x#YP9y*fk-UG9HdAuFZlkLKW`=Rq1M$Q&mAAD3vE23?`P6Xp?kitH8NCUsW z-pWb64E{q9$7o!Sme$ermhcK#X*#;@U~5>Z>K#Hop8K3zghSR8`sVrF&xN(dVvPxhwHN$Vzg98t8%AQe}S`7wfuY&JdC&J z3BXq@wAB!oPzEN7E8dZSwQAi@-7wg|pSzT25cs{2HCcb(3Xb+I?xk1}nZ+ET^sa_` z{6@cG>o0KxWN|1^;-n+84+Vqp3e6&9nIL4%4fEq$x!tR4l>QH-lRLa%Q-c2ypoxj#Vbetj#)*h-2|HpM$Kn^ zD>qUYg~9;(*`j#V zvS_Al1oel8n$q-+yPXZzP(<79A0R+!>|DdUt1Dg3V|<|94bZf3C2k3|RC%~jAQolu zq)xh~fS3{Aa2o#mD*XeZN%F--GDYHXb64(Z^c7TA2pxlWz?Xi&`OL zKJrn!@rg}c7DvEtyqf{<#5IRovP%dmKGmaigZ%-2vu2u%9^3KFR97?+jUJNHYizp9 z{`E!hXEPdEYSunWb`*5*AjRhC>jo~XLuMUj-vQ_D$hctnAyvMMMi`jMm{thIe9weV4BTwbh3jry?On(299!Xy~J-A+W zB*Xmk8Rzt~1Se&zxay!qj*no-UkY(QAkxK=#2UFBJ8v2QhY*Zb)Q;aiaFYZD8+uMs zAy&ktLVaLu8U`~FnQCSRv|$%wq6q`L>SkA;|Ey}f0`L?&F%feZCrFFzF?6`{^_anx z*W`Zli?h#=8q(xAOs*`FU&795Vxc?vYIIl)`HniR5q#KwT@ra~tMOo(JW|vQf*k89 z@x*zPL1~{^8XGq)wq9#VEVjynB;boVhw+qHUDvx9P}t^MBk?SGHEK&k}9K)M_yA zn$=AQ;D`SwKYw2(R@7;4Wr^Oz=|26#l`I#<`oG*MtXY-A4xS4O$KPupe|pPudfghP$98*OGRwNkFoKr#V(PF0c&uax3fMf2mhc}LzFCdZItMMD7Ii0p+4!>xUyQoDa*)CTfU6y=>SjwT8 zpSG(zbZ=IPyg-M5bdmokiv6#n(~aY>Fbe9?NpE|1%>d%>4Gd8G)yvhOv&{CjbF z4R5xuV%IA5X*Ti|rVc})mJGo5@G-k6ayfSHO8Qp&M|^#(zWWF5C}pI$JSXKjK0OD( z1NQGoh6K}5#q;V|J&_=8yrbkPWAV@F=Hb5 zqz|lpC$C{)XZ80JS}_&Qx5rMkDU>Ir#+7Q3J? z8t=1sFw53FXe428z*NPyV3|a~= zIyhpEMs>Xti^(EBdsq~;iaZm-q zA9Ydz8ZdxtHz5zLzl1#{fnWK=EnS3GUgqrymmoCF)Px12iNsjZUDSQtSvDPX(XlYEu95?vn^JC)ej! zxW}WOBt(vT>3#xxo3t1I+bu09MDZeIb~`BEr`9!vO{|+{fB(Js7&gnDb1KS)z{T&e zz~L9l$v&|rBaq)t2Mgs3)fgi9v&f>aH!RALT>($O4EGI)j-6uB1q6N+^TUt)n{&-4 zZaui6RUl*ck)K72Ytx2l=?g9KCFGXs!Lnv`)iH{>?F`h~i^}_J1-camXCa^b&!i~g zcUjfttF6cI-EbpYeIi>_i@<`Mei(%=hri#%?@lK7DfHbo>|Kn1vl{Pc&*-bdn|vj+ zwg11?jfL&SNa_K=)MNnyhW1I#AM?;k7t0T?Tz3|ez~2&8(?afu8ch8FsT$pkpVgIP z_P^C)W_KLnCtI+5*-x#A<HF*fk>2uY6@-IEAiXUKDSnJ()*6-mJv(-@G z%|Z^~ruKor?E1#%^5GKr{PROJpQFwU*hX(w+6YLNt|bs!tL?B`e}P8~m{A&+fz+y3 z+==R~-nJVH*dxN?-yl=Sx`<7yrRgpcQ291tMvJlPn7PWuQylyptgiNxs%~L#>0}!# zD3s*R(2!j=pwV5jmz?s}4s>((VaG}$X6E^ZY}Fk>=fowPrSym0#5FI>eV{_$z|jZZ8ml46yDFSu0KgGBTyL6 zoghfdNvM85S}b`?`p4$*7sSv3e9xoQq~IV^ZA}&QUo5{b<-dIj@r4J;X(Hjk%%mXc z=NKD4ReD(ff*hiQ8lPp>zLr7S&AHAYZGAZE(H$_Dy|+F%3hV^M9B;58`3i7T*35%& zf7nEA*=CcnSlupEGC(l3tblR(j0+m@KIbryHK$OKzSSEFCB8-}!XFz$oEH;K|LcFG zf9c@`jYaT`zZve&^{p%i1XA_eTceoqCOCN#h;eyTFq*M*XGz+U%TEe7(-S9kY^m@G z{)<(>NNQ&7e`^|)@!i%)Zt4eO#0}k;-!cB}*l#|pE^_M&P*%MoJ8JzHa5Emek&^r@ zAbcO=rn>XJKDZY$KJ#B6DIv7MQy^+e4XuS~4rmz28pdxLSYd&^zP;6`gIJk*a%OzJ z0O*VJefS@}!ZYY=%sI)t_ppWIomxs7EILL2w%+f-BfO)eG&T-PEh%kRajx(*gymEl zc0+LE0xc(<@RhaZJ?2;RYImC-Kn0q=Y_irBUiQzK)(SU)1GW1DexW`*_yk+vISpV5 z&9|Gr6VDUNqQ;uE`{2j$d2~wfJ@qOg#M)UrFboay)UgE1Shh@i`5^hx)m5TFdno$s zCN+G~2Ijxsh)eJ^DxY0j%5RQHEuT3tLuN02eU85X-ndC;^3&a!mN>(VOBH~J4dSJ@ zl46_fr$Ar~Ux42jTxV13;7>7r0pBszy~i<{=vOMqkmkI$!t}ajGLq>oEAVJic|}R% zfoED{-Gq+utfkyb6ScYA0Py%EppEw{=>nPhiDBrjJ(%+GwuzK#9JTruGV2^zH?)z*Ami&TZ;)PhOeBC#uStH6&7@wq9Ry~bzwxUeS}#LP z@$b(;qifBuX_OhU*ifNn*NDLj9L%cw8JIEpq^11gApJB8`L;2j9*jg_UP}iH$5ryJ z4<{;3V~JZ>!9{8ZCf$n-Ubm7lObZ3T2cEjj_XQu_dwl5&Gm3UQI%>!i$;`u7i~NLvSVG&s~~~Qr=*-`B^(un}{)V-`v4C8P6vt3wDK8 z)nHpW212WkUF9X8Y3X9Ntdk&FpUnebfog2vYS@jy;CxDtSB4qhS*064McS&~iF|)} z#BdqJBo6mOM=s&*qr@q+Mb~PGar^-TDmJ}>k)RIQMx~Nbo^yb4Y72nT2Ya`^fxlE) z$<7gQ+6_=vY9HeFc!(7T;cJ$%YtBzHFGECo#R~;5Y}cDW!OQLDVbdVrO@Gf`$lENK z4%U!EJz3X{Pu}rsU6q7UgWk7(H~d)199<)dX~V8F$IzF!`o|Sq!dyb4HcU+wz^S@E zun_S~%~vmqRugxO5+}y+aEuqUjxBu_VRWGeel%F&X3bFcQ6j>Q59)e}DxG3v{f)3JsW$1aMkJg~4w;R9WpkFTT*nvtBE6ll_VB5g;O$ z%|KTq_GCx0kl{~AE$md7V;S5vq+$nSCY{CEo_q{R+9GK3dAVtD(Q}o_+3v?LHGcKU zMPL`@^Pl;?d<4~fi7^=he64xtx`GmNXoh{cX5t932zZJb9)xn9HjUsWT^l=+JwbYC zh_)-45k4S`1|2M5>U^1z1%eg#vEUCwP5#@Y)_crx&lyrFe;g=*H?atHv%gYF>$ams z6vsWp_GxZ8)Q-o4roCksz~~|VADy000o@D?Yz($;7~>{U=IKwuiWfx-Ja4NMBF6D~ zSu3KLzD_fb7rx;~F*ewe$lKbbb4P;cSDNjeMg@^jzH8{h4qcYF7%f?N8|#)Lnc0Gk z*-Ktz;l=oXVk0oV;7F1xp8s}2@<#ct%q-E~D6xW%nm>ckQ{$6MV>PLA3*wO-Pg|ql zXZ(A)#sIyZ)42P-Vne>4rSS%qbKggj?aICm^aq*ARzf4RRwSt;b^sk zGxww#eJND>8(gT`GRL|CoHAu)&k5E|*v=ocAgeW`AbWbB)@ON=8mT7V?EyT5wK`_! zeU+kLv?aPbcQEuhAq3WoGqUFpTc?WHP-5gMih1FfA@qB3mPeyz-)iFFaAeT|pe83q z5o49;KjOee!HrR?G+^SG8TKfM7PNrSx($_~1!66-RI9!pM!?RGu_gIQ6Lh!qUoTl$ z>j;Bu8|k|PQs2bz{Jo*5*{=ED4O785aQS@QlGebT(v@!KkLfCgY44|i)mRvz@ej*3 zzZ5c$!#i(pqIMW=1ctja+#W;L=yLdyf58GSj@Fi=Ke`rO+k?F1@-kMGuJ(>-{m=x% zPXke~5nbn$1hV5Z3(xBY7wOuiwH|)cedybH<)emu7$K;MoTH`2@kSj+j}h7NXu&|? zeMGApuW>D~RlHKwazHBYPlEEPc~D;f&u{j;Agv^qjHiIObC!E^g!MD_03y+?S=A#B zkv>$RKR4)=lj`LHLX~w@*SfOkeuTKk6R!)TM z;E(OV;~2JW>H-oN&M^A#(7(VC{_YyU(u?pc zv^al-hU_6DSP9M8FEHs4S44^a`t3LPj-^`ia_@ISscvCpN?d$`oSX2u?SfJuXb6AMyU#F_p`0GW{m_rGBMvOL2{jQ3)b|veQ^N_yby!MJQ07F@;`Pkv4=C-z`waU2@Emt5Li?XXIC^A)5YRFax}A{iu<{8npne67!`AMPQS0&#AAp&r>B zCy~QHMbwvSXFgF$1X+UqM!+?{u0p5%LkEP*%zl;PNMNci%GQ1la&{ovb`Iueif-pA z&fwFC>38kTu&}F;&Jz=tVME2dZct#wzb(;w&2v)cNN(L41oA0vpC0S;UjtHregs?g z4s~h?#e5HyIRL-|k??(~lGv5{<@Ly~|EgLw`DU;e1}Pi5CnxVZ)-6c-{5iL4O>*5> z;{02tiZ4i3hpXh^=>Ji4?g1_Ce;nWS*;ZTIx^CTeONy{+C5c_t5LQBR+fs?+lH79L zwYC^mCnRxJhU7MWE;$EhTTv)NoDgRvA*5W3>iK=o|K|^&0iMv66a0 z{b|yoNWo!8gW>2s^|2W(Z}WY>GDhv}1u$h!LqJ+iHK3HGv>B_O*^YBXB99(x)Q7=<|Z(p15y*%eVjhY#B+L@u6f~YdWwSS$Hy`Qk{=BR1?l_$uhAQoXJF;cGy?t14mxfN0+6MitFmI%K^2+*_+ zx6~t`?wazuCB;OaV}aA@6;B2$|grs!J(U& zdlKu@7~P-}$}Yn7xjO_o{)2iDtH=yzdve)Z5y4Gh37qp8L{VeZb#i@@=uS+$#eFaJ zWxuBBG<$Wps#PNr4PiDC8Yf7v^Rfv**3Ga!M9&R&B*#cc$6Oyu=v1b9s=h@q9iD+8 z`9Tc1J|Y!i_f(OiG2Op#GnQIK{+^z_DiBrkw#1;{=^yKjAuQK1ilQ*h36ACAD}Knw zp=GLBb``W<_z!wmYk(7~53quV^m;zJWtKI3K9t>#o?VZaS4j7%T2A{wfF#RF-*Al+ zxyzw!i*QJNv1Bjuw<7{~9j});cQ9cWBVKA@-2tnhOps2#>%1ZYsRR%RMWwI6VqpDdRo?_5c+G)ic@eIu+==ys$?j26}2 zQNhjN&wR<1I4SlDnP$kpDOw|DH~V=YQ_Ur^X0F7qmNKSMD4>cjY{pMhx^bzrA$>j(cy^j1%w>0Ns^DHm)LCJCcm(?|71Bi& z41%{brlxC&X*JlcUs~mC?_)%6Mw5|)^|r5!^)AenHv)ZqWlD7j+k%YK0A1d4nMHBt*3o4;clJyR_a?93c9g9g|B4wl9emQN^CD<4Kb|G_vG zm?_vevVqq?WJpH@osUrcR~GXEf%3|w_y>gVE-e9On=YycSSHXG@75vsK5>yZf+aL(huXWQS1c0zlQXnTx9_y`1Nz@e#F5$9F$XkIr&9MqDa;>GHX9sDo*$8%AtDNQW8wJ%IqMMf=M20RjBe9{u&I;ru5DTZPKwP#0jNzoM zX3tz};N;|1ahn^7lbxpf;FW(z(1h7^nMVD!7NCNcscsG^brsfF#?v42M`kR^NIG~h zT~~LPAKz)YX*2jAx5@#XXgm>EWnspOo65Yu_fSUxwZTLv=x@M*3$8=u^dlY*V+YUaSo(@61oM@ z^ou@EiZL_4J01nboMwLKIy%saoC7{Eox&kF8|12h8ka(}?m6}FOfw4>z8?RUw?5b~ z#>i!$nhNqCz;F(ZRlU%#*^~#C|CH2vSo`t@de^^z*!-EX&}UG)+ETE^Bdjoo&S77m zSImvDWy^er_O>i3s2(Dp`Ae?A%;X5dWfRcf1Hnl$5jmg--VsLz#UpEC@&F>**L}M6 zE9suh3Ce2`bbC8c|7wQGXCE;C_rM_6{m*t-ma_wQ5IuUjJQPeZ&@1NO#;+YIni$5U z%fHbZM;fI`t}e`sF>u9VUDcEob8Cn2_X~T8njq{(bjt{*=P$<7vDRItL)}IbY7f#K zfRxQ^Zz0xVc3w5SU8*Y7X7}%>$!a1*zw=s<%n7EU>}bdPC9K;eoi^`4#v%x zC?nfGQ`vmsddF0gkFAe1X%+sC{(!(LD5yrh2lO^}_6=RemYkp3L;n%wZVWC{VJ750 z-$~s#Cj?Cte8lZL42l@foOAZU=2c#hf#p0@V&2*#jI1_Ff1Nj785gd)J4dQ=e9%9| z+zXZe5N;=Yi$sf%t$nbf5A}_Zdy=?EEMMSK9;{v!1qD})X};`R6F7+5JDFiZ=&BpfK>|%!Qbj{wo6jB4SeRNfpw|OlS1$}9^u!# z-E1Dlt#}lvzOy9Qf^K4kqb>)|JyPoe0P2S-2nUc@uw+8V^ELxeU)PlV1A7-bK$kjg zWF))t5V9um#m}OFDnTA$@x~35Jo>vBHgGd34P+w@|U57#O53`2a?* z`?WFu5t#LsS`cU8d|L~mx-l8_qOgIzDQiGI3siLp+_rm&$K(x+RC3BVPFy2cK-obS zO+PHY>y@#9Qov2OjEA!GfJ$?LJSTyD5kNMcRHF`JkE|Km8?%|zc1HVTyWv7f5%S5r z3{|XG29%xe=UQq<#HPRHpS~luOwOZ;TvkD)tE(Q-k{nd`wK?JOsY%EvpB{d^WTJ`c zu1K^t+A*Wz4l;!>d2TakMc9p2sc=-a{eQcSvcK9VXUSFLK><}$=O1D%m51L{ihNM28K6Gw(|hmi{cSBR z$@LNpp!%Y6{DeGer?|oNN|~AuGu&|i-;p&`p+(5~g9*GGbC=*!xFFYiMTOhUJJuQu z_B}rv()~j=_WDC##<%XXI(&Uoz}(rL%%07DT?aSEw=3g&pDE2y)rjUC^l}t=xnMy4 z+Gut7fZb!U!14kvJ?V3OE+8#6x34rU1MsFJ)U%il>ev4G2sJW*8^Ol%k_!Rp2^}9} z#(0!#TN%dg_1Uj)f*bJ(ya)3g5ID0j%&<-rsr-?Bab{hbOyr=pzkz8-mZ~gSrAq{) z$?>U0&RnHYy%cxyd zFt>h4zdTbFun@B|HK$x_;kK!Bd}@;1qCWkre4E9rx(YH3_5c^T`G;(}C`WF)sBL#AespR12dV*X|;AD|>f_nkK^95_=oMZ3fh7rxw6c(g^ccWj0TJ z@6f>B6W3yCHkFrKB-KfIY`}ypQBLDA< zxf9t_JX3-1SvrDIGy5l_sK6P2G!L(csoVxmmTr{M5}FlN1Dgv}*LU||_v9vw>QQ^eS}<_c0z z)i4gn^C)QopuCylb<8#}Z-K*I3;@$zuUecZC`QV@D5W(bqq>(a_qPA;!YQ6ms`$nT zOkn=T>|(`!GT5-s?f9t^dwJvx<_MA`PjyDU)$L`UuH=eoXs}`VYX;XS_&vqxJ)w2T z`VbgNGkbCSDa<0mH)2a*)ol9tAY7`gq%w{kaenZKyMxxfe z*(12wrYva%kM*Yc((fG74O@$*)~97h{$C!{4sdg5tWzNeUmMl%88+#L8Q#$_J(Xsr)3?1KGy;kQY7b~Mo)ozj z!LR~5hO^L%Q?N|_6F~9Dm}#JIc^Wqoz*;w(A0!1kry<_T1M}W+ww)Z$S$Pyu$4>1U zCa?RX)YVh|r)ZW6K6`|W09uSGC68TYvjpsY)FWxMqDQ2*FDBW*-facrI4vY&PC_`h z^4K^@rt6s)a66{e%};cSu-Etl{2;lUbKm>{`7TCu2m>56rt45BgLQYC;%*aVw?v}v zdGrsiDCl?w<9B`bjV z?Hp_czx%isq73F)IfjHld^&|W2P#i<<6%X9tkjj4NMo&}5&8&dbkOcd!L~YsRLs@e zTwcM_nR=rz()Ru>Y#3FB%p#rUfcGpkTstGa1w`M^q7p{8WXiO*8@gLygs2_|<@JL_ zmQM>PjSubhyk(lbfZDXY^e^D(%(7np1For9khF zs##KTD_n&U%-gNfk2VL&bUFEGOkwuJ=aLuaIJ40cb+Jj zmFjch823s9^8}#hNfU*4+rSl5dcFzq22i%C$?E}jh2wIF8pWp5%s0|8e|h&}MSdsM*Sjg;q;UMWlBke7>*w=HnP7J2&}L-vA*%F&3vA_slN_(nqZ z1WNMcaAy6uy4BJ+du#JO1SdIG;wH*&;fjECu4o{|HB(xT9*$qq|v(c`?oQ6UD!dH;Dwjdx55Au5Xm=GiDbzH{3 zydaD)(={)57j^k%|0KKcbh;!0>b?ORTs%W>D6%T|i{&2$8fuw03;nnG;vi#rCCT?K zv6lh>b@E828t%O}Cig08JT`;Dn;}m3%brlR3crYem_FY5(3O1?@wXha(lxhLE%sgf zP(5_7K{fyTf6cTrwYFeeWb`y<1Xvq_bHif+$Pj~A{N^HR_sGtl2!E0_p0)poU*i*4 zc9gQ*%kvuCzT9Qw4b-)3;%R784JfnJMC?UQNT?ONdVeS4|5Z=I5pWPBnSU4Woj|OP ztlWJyT;y^W4hdG*7WVOj77y31oKk(?v|t})bGFWQCm0Gt1aeJzszd6OJ)+ppl+B&n zT-H+17hmAcyLzuQhNwY(^-+eZt4C@0OemHp3Ja<2g7{Qg?Vt@oo^J8fmO!lKo*9U+ za$&4+Ib%O$I<+PzB*NjrK!0|bp&LyDA-(KQ=CLJKyhfFse|$#jW8%z8?kCOR!9S1@ zMU9{k?J4uk=vC%8FL3{pX)mrhG<>v%lr=8Q*-p?Qiyl|ZHA6w1(+xx9D-4TITf1hT z#j3%?xf4IwBDCLkXm2&D!Uy&uSE8pK2S2-jg&?xN#R)631={WR5U0+V(Ek1kXC1C^ za%uv-cs}!(PYP5%RlX&uNv`sGLt5vz&e!coyOWF3C8ww)ih!}cB4&wb*Y>tFXKWXd=T zMhC_43M#PNJf2rt(on)&+^LZEPy;ozPl&b8wSUM``A7}xzcK!_cm|=$uV?61E|RMj zBM}$K5B95%38kfxmB*&mMABp;|Fnh(+vkbsK>@2O!n8XPzufbM=}$!D1}4@Mtb!g- ztD=Jj9%g@p^Kl3|Y!DV}{hrvM1IK!U3Z(B%7VW|~@gn4`ZLlIUv~C6wrhZjQqmhL0 zVX*6+;8k1e)=jqlT``sDo^RzYL;UrNpGMOTqFhnU#5hiF-f%))bmI7!rpO4hXQ{In z&{``@4iE3kv|r^k`LI5^n`UzC2iMz`m(Z5csN1ug1-{A0>QpE&cslve97`MC?0;BTE94`vr& z3M^$v$5c6VC3lStMWkio*pt0Anu1Andf9kY2j256Ot+%)ss+_vtWeKxE+iR?%^#Cn z>;EFqfHlOqZS>&;z0e%Kg>Q0Lc|RGU+lD!DhT4-=J-7o)jm=hVp1*Ik;WMgyJ~QAv zc#Us%t#pwL>pduc*uHYYL^TBWd?}JR=PQGnSoLg}Gi_PJPD;>qBVJkC;pR;?#UnUD zODZg5!0+q`uvm`ueDI>l;Gb*^xrC8$tUU_Uv72CKDR_SzHutM9~6GM_3@Ux80PBd6SOmRlvQcBYh2RO|k+LB|GUCxIfR33hDo0^{A1M)(U zWa=-*L2V~J@1g2uP;scVU8V4DiHV0K&k;p;XhqZdVOfIhbC~+fbMN(nr+9sBVV0o#OsrHmc@$G0(`i0#)vA2M&ixtFu)GB;|z*4rA8F zhTW`ed1~M;6I{ksp}Xfm(wHIrGG5KU6$&V_ou5MBN$56S7z~D9ZYVB0BCO#CILd%S zJ~=zw_B@LybuphA6%Pg3@ITns9)Y)wTPM>R0InY6IhTi6bWM6-LriBHty9qX#6K~- z;kYicp zH%8qJxK};F3Tjs0xE$W!Du-*FoLq!nfL)_!{ldG~hk*kt=Jx+6nMR^jrE6{mnXe1S zU}~XHd)5aQ;_OBBZFGsO2<6v7l~$luPzG^lZ)T#%KB8HZ<8vcd=(uu(wB0qTocegk zAjC-8>+wxPhM`5)mH)ZNYPaQKA_Ts-4OX%5L742GUzMSYea%n16+bf$xSS8}L;l&q zxVDg3eusWOuNX;1_9Bo^d&zB8KXGjs)XU$X!p#i=M6ELW*f++9Txm(9XgZ*osX=Z& zeB~fR@j#ik6PRo=n&Y`GD@z$g&jzKd^*_;pDv;@QMHIkQQ%M;w01Z%$3H1k$ob2q| z#vG_&pV2zgbp?Bn?3xXw3WgFM>OC*Zz*7@etTp!DQl?;uraRw&LOZZv3zQYxn%&6* zFY_1p7=wCLh58mI^gJ~{Zhg!hzx4PHX{=fTYNl~HNsovr&w=WX`$P2>=Asg769si% zjek*o^0)E!Q&)~C+ma&!ga4>O(;{@AH(SDdfFk`1Q+|jKJ(1l9mMSo|=sgIn1`uiCxEun3e~pStv%g>$ZlEH6hs5GVu>T{pT`Mb_c> zEz|WQquuY~@Bbsa;;8g$Pl4(hLt2VKJTiZ5jHmM*&HEf6<6D1{GlfGpRn(k{Ze1y;HK*Lx2AG^~F@ zXkMon<~*LxoMS2&>roS^E7g>Jq7RFcNAW!A@Ys9t;2h>={2m(ND#ar`sk*L+R$UZ+twnJG!5tEUQV;vd#NgTN)A}$`AM-j zQrL6BBy5D=lLuM4k*Jzi<`F??fNX<^DtxR(psN=51)lyO2nsCKv(^qW7GLKwlcU^s zQ58{+<8bq!8b8`|q@xYFiOl<4^d%Z?IfIT4xb5b7e;7=;7{vUO1A9BCN>R{>O$}yd zXQOxPcf#9?Awe0!XB6sv#K9lHMzOSX0DLB4ykX9j6qCbu#K+14>a+}dOE~*ZDpX>M zuN%iJF%h*f1=JCMWICr#StaaUPx!`Ind{Y&De+gAXpN{7QKkHf9`R*#J0j?B?Zewj z>BPc(q^lsb1Qw_JbO1qF>Ql^@n7Bmd6c_Z)qhJN)nx}h2FS@%)Np9fl%oOkzL6-NaETkbU9ERxB8F>OvyE{ zo~5;{Pu)xmr!G!oEfdC<5M6eythsIEa?I2F0grF7Hj@&s3y_@Ne{q8tWvYEmaP(|KN3H z$R~L%l}vL5*TL;u4HH>f1f>wp884>yVvuY7!$NJV(04flK6B?su&Za~nE|f=czWdP z1pDoiNaW?6I^3#-0+(5NlZZoWw!{2`i5-$ZZxV=Yz3RfT6xVAYpe~-U5YZ|yG zqc|BS1J(!OI-Y>GDrj&(kO3skm>-7jtNb_05788N=g{r%RW_192GlYPDX@yR3Sygk zm8tFb@#BHlY@1@E&2@5KG8hweuc45=am~}bQ+ga{;w@zBw7m7|+01Dsv4z$?6$iq~ zI9U7vbrOvW<;0aK?6ruyLBK58g#Qs(_X5NjRn%jHgXCy1^eydRfILeZnJHsB}@j#qa2J=0`WEY6M* z$9z(GwSxtCVfLGLe#mxPILU|EXd?uC>uv(ZH%xj&-UAc+`k57*dkYKV6^az60?TbD87~O6$eAXR>~BR0p5u$$D@f@2047&$~{J4$Q)# zQ#cX3JIB-j@p+!;ZWZ`K+VHz(XP+L{dl#8wbYl}$d1cfG1YK5~^)FeQUA3Q0vmF7f zH%DVZf53HZ{yy20X)@ZRJ!M^i0t zH!^g6(V`~&?sXC%j)!3CXQwA&ql;yxzT^g|sn%YE&F@f0W}4g84O8KEBx0;a5g7j? zCY8YnYNMM2GgW?oKSo**bU(s&Yl>n+#I-T#;6#!iElbVK~D}d?;A;!ZZ;sN$8gzK{ca9~fU30ETWzJ&O&>wL=H|#W7vx`` z_?8}3{VQc2CDL|%uN7ImX}I=1xgjVNy+y9Q8|rz$QHxp+A<(CDrldHVE6GJHb0MYJ z8z>Tn8EI40qdvmsp=6>H1C5olFz9K3hP{8eBIzdnQb3wjJ1aOp1hv`i+LED9N-G^M za(4-$RFKv{7hAqDeAhKgFrj74F6~nz_h0+hia)WzuA}=|gaLkKhq#)QREg^$X3KzG z3hO>V-Ybx7Q56a!$eiQ~z;Qp8s?bG?1grJ`EY9&@1#8b}TkG)mFIug?$aIA2@YcV3P^rc?M43u6bisk94Y1;pOAQOkg?N`0GnWcb%uU)3%H$W& zw{amyhHD=(TZlPo*D+6QS6l?%ue6Km@DKD018S!+tTbLLEH3vv~4&)*ekCkqB89>ZPwV%dh%;bBdzY%oF*kGiI8cKEf?mI-(ZS^Hc$7f(9y=SnC~UDLaiRS$B;gT>|C za_R0QX(rI-_|wc4y=31|?z~DG!X1PAM+w#ShOoor`Js)^ogs=0)#XdzhzMKVR1=URND!o zG;@r_D5&H(+u23eA0>C+#%ff?1TLN^_$+Rcp+<44uCt$x2Kt%OmI!u6bsjO zpgj#%^eV->PDWgcV5Bl~SWk4=9=WG_D{!1R6pfniS?p(f?UC$n?{#yBu-Ffk*4Y4W+oLm1z@nDcsy=cxx`-xa}aL(Z>X|3JRnp_yjeCp?T_H@;yvY(6sOJkI-=6)>;}38~Am z(U9*;!v&u%G6bbAa>>PIyo*9xKv=#zTAE_Rfg0A2K6?jop&#?`8u0WQ-EevYdk0PC zvP3$7bo&doCI|F@&7dq?x&ZI%Y7JQ`m~o5}$y~eV$P-#KM~6IfHdFP}D={*{*5>9H z20&vc%b2UcRj8Tw4Gf1b41nTE|K4|jscT(B=M9Ue%?#_&9$TCW_7Z}Q-;v!Dq>+cH zXG*kxdM*e?yw|qYtK2tQFXFz82zxEe?o9VhW(?_n`8|m*_y=TlvIJ++1?$t98)r1O!~~IhKj>X?j$tZU#`I4J8i`OCA_yx6TMRA&?9|IiKaZ{F;W9^WAhgljkO&A zBt#(?i*?@KL%sKNZ*qFAZ%1=~en}&-0R%uJndnyc?Nz^3GEEMzbYf5lb)Kso;CwweVQDnVVP;7&!FOSABFsp3Y8vyK=4d*Ib026kK~3xj zV=CW3Djb&`XV+2-$zOugDhShZq<7kv6V@)9%mKBb1FA_kL49SVJh;WJiX)#nNS^Lb zlnqgEz+FwQiIb}=gqlDu%wO>^VP|R$-)>jEOiEXEj)SrTHGk5cH}jFaKEiR-{lhf?6H?Tv_OG>1*h#$`H)xN6v1x;l@YP z6h*Gbiqe?Qo#al53|NUGf3rXIwM>?)j)g&ar~hLG&qRjYMDVt&W?sep@uGJxHR6y1 zGdfK@oGH1CO!tl>2x|dFpnYuTEsxVlw-Mu(vSL}J?9|Ag40P@ebyKlO1pH113kG`l zao&_@@gWFIM!$!1c*})Ga3ns3sAr=qiNb!5$Jd!_8{D%}X_10Oz`lulvsAWF3?YYw zchlqJgQeGrXCkRn>0LlE+3<8UzTW=DE97-J`@nd(;?yRAdYJqyNuk;}b6BhO_1_8$ zwYe}&PD-jd=Uh(oy+V{O1`Kh*9dBZ9n6~7s{l9-q7ptt|wGaC>tcOPCt|BFakib}2 z+z&bkx_X=r(8k54PHf>S>12ffYXos+)8PUs1Ey{tClPRMv)?N_xpEAS$VnSO-0o|R z@ade?snV3y8A8e{;^Bl0yt!7Mi49w1f5?mB(S@K9a-)Fu^ADuL^TG*xhwK&1c|eJ( z>Z@%ql>A9ojA9bATOw=@ngYje3U@qYw%%_x^^>nBL1__=XF?O@CwUXpu!;+-yO9Q} z?76Dg`9196?Yv%!TrvYkVFV|Gz3!ocEZAs`E#B+L-b{YvHvqGFs_I?CZcX-e+Vk>+kfKEuf20ZoxLF9 zb8#PYb1`);B)E<$T$k6aIt1Of85_b0>9r1z(A`7&{eHcF23)X}Q+GV~b`TAIEMMmG zE`D5-?fDv$O?6-b_n#qsxP10kaO~Mj!u=IcHrR2A?m-86J8&vWj1brW2VIQN5|^b!5WT~;2>etjJ_ z_Es`hPHfo?$|-Mg=Zmi4&w0RNFV@35N+{zJQTm;E)jJeLw+$zZ_q#+BTa>A{5T|gz z&^M#4FW{n~M%BvEmJfnGD8olel!+!6gtk)7BMQZ-zuemLmr7g?0V`jgc0Oq|z#Zb) zjiLA{&51gLYw2|PYqV?Fm*Hg@qETLyd}iY>6LELfB@n4_nTIWW3!4f&>jGr|qd8wD zY$Bo4cbcflMcPPq#uQ|bRox|A=h2v$@ya=c-8u41Xn2y3tcb!`O1itO{zgm;5&@pE@_$5gxXq4=;(*7(0I$M z-cS7XO3p9qZzoeG()#$DzaS0z*L*V?D4jEDQi_s7_dXl(@o! zT}qd~EI0@)*9ju&9Q4k(h9;2FC>{}(W^TW0SXd=|Y8`~8MmMj=M1s5-5w}zOI8yDw zwcR1w;)^cagY(~bm?Pw#Ek_tRn?piPQjE^x2a1(g0sRP*FO9RVm3^i zXHA9MsykfKi+aTEzZ-S~OndmSKEn>s}k&d}i#U-J*m z9!fmx6KNoloX0C1OXJq>LrH1B-@~LMD{->KO&`@f(@HlJjtp>zY z&*sm&s8KI8U?JzyPwtz*Y2?W^qvq~CP4MoZtfTDn3oBu%hZtQm)UpJ+D<01Qb$pdKtb4q>GXD_mvh<+u?-V zkE{gXi>aiTC0f61Fy?<2kP@xM{gTtMD{xWkxc6@7-U2q3&ye}8AhiiU^Qbez0NSi`Cp&8KD+wVpRo`Mc zL5uBC9;Jk@6B{ST10Em}@PpP{yOcQwmEU{kR}ul&(8#J=+Fueb_XJ zUW;u!W3}q@T*ov;GLJ>2dO8O0G8~0)Pwl$%&H~AB(P7Hnu&N@ovLg# zEcC#&O)*M$wy%^7;cmYJ-NXeBg4E@1w^uQzvkEGTx!0S&;t6Y|*@6Jf z$t7k5A%c-c=Bj>=3c4@eiI30Tf}V(Yh)&l%E;N4+#KX9Ak%RU4XWt1t#QHU{A(~;< zAkk%`v{8JQ0JVCh8k=u0*ed2_@sJHano;q+)`NwM^!yD=lFud|eoj@MT zFg>*MrGKKakuiBi&n8m-2BYYDM(b6hp%cH`&x#M3!HuwSJbS`&=na50k_)x)3RZev zECZ6=9C!r+)7kd?g&{Jj>aw5$ui_JkN z)4~T6z9HgfaBax$?;A{8?MUp5Q$(lq7jE@|h;XZ*7~MkW{sG*GK6|XjUdHM;4VJtP zD)kTsERimCO|A&9G@b@&cXz+iCOlOoVHRIaY}Vl|u=s$7#?`;{FUmBK+d_k*^kTZ8 z8U%L?ns@xLSeihL0VVk3(IP%5L%#nS$*!KO6XkhwjKJp}6SUG)jOWw=B6~ia*I4B4 z8l)C{>F#tHyczf*7oUNc`f`whXr44324}DG2?1$0CCp=;f{W34Im-m4a|P zX;m<&JoRA;bE{5J$7=fByt9aMt-VJfnejV_Q%D!P6 z8v)HGj&J94*#7pJ!h83Py(*38Pwpb{4LpeK-j-8_^TVDI!JO)3!$_Lx0;}#Goc+#w zab9Kr0csB)s#4l6!wEc{;wsQ!dola1DTJxN%SVc@BktWXFOEe!0rkOvnlKjw=Cqv@P0;0 zw8$3;(-p_Spz*3-mKz#fcBtZ(`o$f?2XEcpqD6Zf=HM@Jy%%CuxV8N<8fo9Kt@)Jc zbouhv{IFgcWwY0QoPC0eXPw-*f)lb3$W%QVR_83jrVCtW^@s5|>@49H#ji5DS%Him z;%}j2U1O|nmY58|s3*g<6Z>RGo$pjs-%Ca==y##PQ#WZVz~`1vrtFSQjZfDlFiNn; z<)QESlBY_^QQXP^&c%$MGIx(kgsqVy5?ye$`6kCj#h;^tfGpdkP)4)qBFh(M4 zR3D!bA9SB9dNeU+4C^y8=q0Ni-(yfUsePd{F-){b26Nd9>Qq>+!vp`*1uuE9x14QW zjXV~RZ4w>b4=~z2;A`(TU(%&d!>)7Z@K&i>hV|}NVs#<)MF33QXup8S{e^m{ zfo_IY&H~SodS%}H-EU8`ew836n_Z5G!I_s-v+cj(QI}vhrGvIMk}FV3w3PQT{LfiS_DGL{>QG2f6SF?r zfypb?9M(?p|Bw-1^+o>qzmMsme<~==kAhnA2KT0IQSVk)%O(9d>L}TG(PR7iS`i{% zi^6UEV&ex*?adffb1hSc8yU8j6NPJkVh2IDEIUDs+`os;67EXFh$EQ|&tPk=>lpR0 z{?_E6EbWM zvq#knLRC7_^Z35K$R?>QhO2TQAC_v@f2CLKK^?kf!@H%(mb&C!YE&Bhr#;gb;5d!D z;UX6~*N<21x?nQlD15YrF*nUzsEG_|TqAu=3i7lGQM=~H=QWrwcY#%k&}9ye6fg5d z``F+L?3mn8R0P2@fO(1As4^@_%>>z=R%2Cu2*>f8v0+AJ$$G5}{r!v5qJj3uw->oQ zz;AR316;aJx^eqzvmjkG?U(f3VPy9>+7RQ#n%+vXuM|J-sOQdxo8vi+iB$`Pp1d?$ zsOx%baI0_5(R}J9F7}|y*eUW3pt!pQLV;t~^HsHnk&D+Jja~?x3L{2Vp4YD!TX038 z0PC0e;jF8)BM#H&5th@M{Y#t|F}r;%HfSOvP3mYwkZ*&{kog?ICE50kUaAK9VGO6JZ{MGmT@u1HvXtIrgAyAL8f9 zpG;W&qei>`fi^M!z%KBHORU;1|DA;-e+&zEB2C;u@?3IZWNL;myWw<9NPxHv3IJL=Dh)AttX(_7vVTe8aU|Q^H4QhEFl{O2 z3aEUojt{o{MEQCfn{xv{Y>l^I1{ez#i$3!j_rS6x>HuJCz8ve*Np4Nvp2u~p8`*dU zrfxuR!e(j0pcw=aV1K|c`BT4UDW*Hs`Y(;T!QU~J=?4pkkrU2u#>+&s9d*58%)Oij+HH;Qjy3)pr^=cFd_&)|@!M?>aX;TVNjP z!Tp1JWG{SF=T`@cP~80eVz_-+)Blmtcv7A(-J{;z3(ikqksZG$D!w!K3uyFhxuw~M zGi<|tb45$Sfp|bW(K>$>lwB^oUJn|&J!^w}Yf5oaa8S?u**5Bv9^&OE@kL0-yGahgSL0hYy+wNXbX-77rC@JBpvv{3xFW#70u;6~9Q8otSXREA_pQaV6n`vwl!Nx3kw)u%$#zU3?zojY4Sl9t_Sec_Ba@&fO!QVZ!V4$kf&HQ)Y$6 zpVzRP2asAd(DR#!F~?Xvs{SJCLo%-3E9|~75p!D$fq^Zm+f(Da&MXXgOB~TCg*vaf zlF??m(XfZY3G1O#U%ydSjkLWBd?7Zx!{pFFcXmcGF%@|+M?dh3-RqbC=K+c zU4&_QURnO10k`>Z`$qPidFvVM7Qun{;va=(B0Ey>VG7|0oO%=h^XjeJNJ;3aIQ$Qx zFP<`9{i=)Kf|51ZYQ5Rec*5=6oDkLshIMnuYRt3)9(oO3`p!)gi3 zS*@FAmFaiH`qDEv7g!x`dUEq z%FX@};Py-0kpS@8uQ3kqjq!0Z;#RWWxor@jJA$lA+p46h`)0HS{}g<2_r#<$DJ553 zCOju}&5nn@zMWD?HvNLZ9k!bSti)H};trCgKJLAM4`pzfQ({~FbGGk!J6`aR#;z&) zh34|ryXCqOGfKBNf2haLfMM1S(XKQouLgkWH>XadW!&NC^rLH?4BnoiN#v}^2)PE% zeoZVU!(s=r12Sn9YwzQ4Yl+rem|xNdK=5OcIC^8BxgT|2QHnenqN`R1O#mm3M1lW( zuuW`x2kPLx3`I!TOX_C)?Q_gGjyBZ$Ou?}VJ2CW}e1$oe`R{N-^;TddzS#u?PM0xp z+vMlJF#cRX==7_?%728jQ`lG%I_UH;r#nb$jb#3L*~HTn2hy4C=>Jo6?r|;ee;nWa zQd`@)Zr!%EPz-A&-PomBtH^YmVL@kh-2iudAXEp5dp--7I3q~8cq!|Ype zCtfNoxN(uzYYoMCs~IuH!M@XNAiHjztY6KAHdDZBAoz8@ev;5XjHA7!p2(NVdT(IX zbc&ti=!4e@fh3D3ofTe4O9-;`v|y%Aw|);g$gsw*vfr$=Zx*L8_`&!b4-R)kbo7;= z%TFq;v1=DQ-G`a=j6)%;gfvJ3M6*sY6U2Z7UwViHh(e&kL}#3j8IKqaNKaz83{_S%YwY{*Jr= zf?2)cqwSV4&7iCQ6}mEm=QksP`UZ7DC>-|MH}pGlqrVY&RCBsLzrYH%3W<8jio}(@ zw-iKhTBjOSMFX0o2m>%L|MMLL>gmITX>#eX^Y-Lr<1rs*`rk^?s~-r1BU|!^9kzfI ziHMn2&0qx;`%}pDiYYK0lZh6MQG)4rC!zzz3#$yt8s@|H6kYAQv?&bsDo_4u9C1tX zE^$H&_t(ym1YL#N8^#Q}DlvRQ6GGrmSQa054Eew60&*7!<9O=i zM1DPfC4Z1l?VFt&twl0~9kJbJMCY$0S#1!ox@&Qnbac-@q(Q!KIm`eBq1m&`Tv+%Z zpFZ|GvaCRO*g;XL)C?b{RsBKz3)b!v1A4J{Gz-L8eN%kEKXCdQz*#s3f~gu&fEqRSY6~NP^mv-%6@nhwUP3b3wIPPm zKH@r3_AKH8$M{dMsUVo^4_<&8e}7{%O$iEi7a<6d`)f78Amy?d2LM65ilNBRfU%}| zaO4h@SZ3OnL~1L*`tPE%M+nC#5i_BXHssJG?q5bfh<57@bxVtjYof}pBVG0-rr#|q zRC}NoOsK!#w~lLT$v9lAcxEHrfOL$<<%Sk|{EziNxM=?Zn-j4q8(X_x(F(`ZzbGmv z@#Y7K4QM>3sq?9Pl=q@x6O2uvAsi$djW?Ph?5j;)P+&xoBUSjE3j3a@@9LLQNB^2yiZLD!9 zS4tFZTM^j2bspu0f8bm`7yLg^Dx9f{bYGB$VxtXZ%Bt-765?{REY@D~se=5Rvl*pFTdT2J#XQ2#a{&Fop!20w^4iXT1oVEz& zPDi5~@-&ycGJ``J0WuKcTu5mmM6I zuz*_>8e(%M*Qe^A-ZBiH+*^wDf*6I~JB*W&Wk#0UoBZylk9p|^Sq`sl%+x%<%w86~ zm(3BA`e$cNxPiIrxM6xC=ZCk-E2^iO_fN3jBgg%cFI)~c0SNOQhn&Oqo4#3G`Cb`7 zv-bzkbWBEi;fq&EyAiGVHJ0y`(r0>L7Z8u)ziw;0DA6)7p`BYP6Ool zrj$bbEdPrvBxW-hQXSEJucAG;1>Z%N(02REKeHS-dM9b}7xCn1YbcOtO=TFH0mAU$ z4TK|I)os~L$t4pvFuH+qR_}w6ts=f(Zw7U%rRX3s*lQUT#9VbKv$m+$j+FHAB@x)3n|)=D_X@|`f57ZsO*ihE1zIz$twf)UJ1|T#ze79Yr~VD&m%ash zHtZ-&xxbT(Y(EZ6SsxvCZ4nOGtDQd5(2crb%G62YEzQpN2r0T39uuWmqfjJl-xpe^ z#4>e+{x|0J@sdg)RK6d;?Xf%?DKWc+3q;YC z$aSbCJ$%zQBeFL^{;Rfz?tRr@+ausMvqL!BQV}m_)hxuE*{XCZx<|cVogv!3Yw%#W zRJH@N7tj|+2_5xWi`Y-JFQ@A_R=)@8xdX^bcM(u(9vW9_FR~crnZDu0!bj$B2Wb1R z2#<}$w34Hyo5~^ipIWb-FxY^RV9L}I%b7X%uIWPvh;xXC>(sf<2h(%~fj{)&(Tc-! zb@ckU7@J;!arh@My)({Z&*YW(Kn_3iQ`* z(LN<@Us)R@2k{#p<>#&_@b^#NhALv$8FaN<`gxki_@&1PvHvsL5bZnM#@XwUk}u5qwdh*} zkkRFShU`fJ!Gap(!ae-vMPhY9^# z-Qv_)*mag`ucy5I3>SsH5Nw)-;)EFK)ilC_-C3UKp7XL=bU@a4aPw*5m1C&h7T9*s z1SdZwZRF{36OwG1h=~(zWs}?L0=qAfj5UPmU=m0i7l45nuB~(0T<=!=+3ErxG$#&~ z4#}z|sIpj_Jvx4c%;!faZAL)r{5I^Z{C?CMLE>{QQaP=OT9DxmDo%95RfB#mW$F^T zyb^Da`65i6C<27q>E987T$~f0Cl#&_1iECqf zB$?fa#`A<9S+5}R9OZ-FnTKm!%=)ShJ*UmY7y~w~;&Ms!>R9Tb3;=pYI^J{{v{G@n zcUZ?VU#ZH9`|~&2-3HA}Y3WA4?sd{!6VDHD@wn-hlYFVF3At8%jF~(GtTBcn(aVU5 z-=J+fX{EF2Sx8maQCak-PzkB*4*Q3XAuk6TLLMu6tmfg`*R#;VWyVU_rXzoH?h+^8 z7W;=ABcv*n^!6uPH!@z-N(-$%`JF;0O8sH&>GU*c2x~w1POt<>B8VF)U0+FNOS*1^ z=zbgwTH--gJo$q^CwGY4Iz8)G6Dv*Pv{o|QED^nV$>i3FG8w(P@=x8?_ge zIK*sMCBHzfTcjB!Zg7uVjB|ovMJf#ld$~`+ii;0N&xI*J224#H^we)`5$3^7!j@0@ zW-%2O)Mx8J%n44Ihu*neze457}U#t}XDDGg!00Fj=JY-BTm5wcRV zPh^0rR}}-i!Cyu(6I4i3{VA*m>4Oo-3=4=3(e$5&v$k7_Ai_PI4y-iy7T`v3d6USw zMzpIhl@u|Ld8n{=kM5gSE4~tYrP$8wT7lF1*z1NVM9;P%D=RdlhptQqnQ=X@3^FBR zUJ>w|RD%)svk1|k@`P_$8LJ&pnIL?R+={;IjPY`~d$SF(x~(OV+aoo;;LR8Av-%Me zUy5ekAj~A5bn|z5Gb~y*#9RW5SQ`Z0Ae|R1MHNW-dB!+LLoDNfPGui}TO0Jw`)Moc zwPfAQor)dmd%S-vCrP-92?1!tT*b!TobcA?Mn0+C+9o|ZjD8oZU&^qqdi1p0r59sjdpE&#!lmnbUK zNZJ?Dpop1OAAL)^#aDUC)3Oyr3eu8_f>;s%!o3?P*^`^c?0k$T*zs1<&OR{ZBED_{Ln;$rrxmOL4A<)dCI1T6;fV(#Se6-7wgB2eHRB`RPr4if`vX zgu@`bN3$=;@3>6nZJl_7<#-cZ@tT5CKtqaJj9}P)Ix0-ZaT@YOyMTUJ5|JTvVwgSs zV>Hb#1e|kLlKvd!@ki`-hkkdd&U@E#*=;cFt`9>HTe__G9_Q;vVVH0pkkx7^77L<8 z3)cl=zV8z1?u#b!o5vhx0AXhAZNfaf>2<2+cH(|@i{52r&yd8ikObQ8irr0@ExM3z} zL~F?z+J3mj?}Z>SuXM zu&aJQGHoJIf4wqwlpd)>UUb0r##bDKgD&v>I@2WcgY6yYN{*@4ox`bbzlDfpf(Egu zl@sS0eYk@V?*!96d}4a~!oAPt40+Tv4O2>%$-DvC*num}z12eSY0`%ImWNujd8WL= z^39fqCfx)-Kx+0^Dv1r4Wie2>r4K~w-c~HQPH^PaH0X-{>?162)*v<3#jfW$RkAzKrl&_j>uf04!KUfM1ME4BFKJ! zHXOt={kE&@kZBhjJ$VGE3^X)%(D@8&YFzY41vB`_gn7F23sUg=kM$;`LLs4wH`w6m$|akkZ{5rpwSQD;a_X{$%YK zY2GILu(&iH&rnuBI2Z%>^U`0`;&lgb??i-Q^VM4Hk_7q;#Pr zQUH(cl4>6~1Ed*~3KXHLSJqfygj(CmU^D~+MKTRZfGXq+n5wW-x} z6U1s1d}22Jj&R4ZZm3VW0d-J|L#8K)n#P_;l@xPvt@hBl?#f9`9f~xI{xb}cR83Cx zRz9nf4q}8oy{=(N`hJam0nY!jWv-;HTQTX<6nD>=^Swp*YEM_xPN8U3TC%e=M z-AjmWh^8xm02i@{co8+tDJP`7M79!;0C^2Qm_GHVR{~WX&vIJ#Akf%Ap8RQ?J!wjv zxGwDTz??z*<9yukATcfddj4xWl2b!Q?ctbUlNMoja_UOUrMEnPE%4{jo++URZEdjz zkXo$JZNtv_D2SS8{i!>j?wCnjGNNZwVcLzhVIOEnDCrldbp@k z$|&s@dX7gwS#1|PR+25N%G9)H>rmJ33$hsBncGhH=j+k-_mGs7m^>QeV1jMUJ84zN zXzx?Ocjp;z4p9fpWnU?JH8Hsg_sY|Tn3=Ji+2gAFInQ7lL^4S84jKD_N2v-8ewL?G z)=bt5cl`z97alil!Cr)-N` znLLr?)dNh@>G`UvbYTLX8Y`7;MtQ1rjzC5CgZ7(-;68XLFDe z`s1vEV{Wp>;FOTbrd8;5v${EUNjqU`8l6=fGWZT*-huzm1zm}Le1ixGqT1m;L82yI zA=LSxyDr#+(p73Kkt>tIF~lr=CNAI_p`Az~WhrxC2b(4>&1K(&Dti^!&?YC;R!8?Y zc1XNORxx6bPhl&`?HIV)XRgd0@svYZUk^2mX_E+wsm3l0NNOJ>*^8IKyhFDTr=<3A z;3jm6O|C3TU(z^5jj|WA!dCJ4LJgsBU9O)rt`a_*zCM}#mC27ArNoj|t-jtG6OPq( z2IxSc5p>f~?{sw2N8EQivq1t@RyXLqFL2%I;1%gWQRX%Un+^oo%`k-nM+b+X{pVV- z7!KD<>yV=p8DtrnwWB58&+Ld)=o+JJ8dweXjvPjwb{592W?e3I5LCd5kb3qF!oN|% zZ|6bz*WuWc{Ec#YcXbGwdyc&VQ0~e;E=U~|G(0Y(15c9$#G{bHmpS+S2b(P!!hc)A zG<+d4j0bWQST~4hjpL_j9BvpKorex$&bS)HLYlw9#*>8iu61m?qrdWtCXaBd&N!&9 zS)!VyULdmE6y!FFeD?J3=of0s4ZP)mfDO|Idgn~xG#pADrOdx+%!MgCFT<)*BxM>H z_;b*igycYfKHRdz-FC?7f1I{q=7j%R>I**OslLcNRGtt;ehBHpjNs+3C>^702&mUO zoyqUr&`!u0gDD$>If-02W={l2UyI3pp1*Kw@&L3cgHb&;S6WkkO`jx*emhCkC>nKK zKsn`Aq3FHdMwt5Zxca%n{<-!A=)@asgs-z3->d(kyaR~r(!Kodh5fb^;mxad5D(eE zOsXOTi#vk44+%Oqng_Mrs1N9m=Qha8TXt`gsv@9measq*v}b}-4&9|IivYl`0O?;P ztiDT*+>Pj$N~PsdfCKA2LiswQW|{C#eqAZ~oZDkN<`r3ALi?V}I-@!G`S;%GQ6<8T zaQiN&VIeQT8}tXnz~6=6s;dbOKh;GlcVNA~Fe_nG2pTPR?@uc4#}gBAjUH-}w2@xF zfe`O&3L!a6l3?JX2NPIq6?z{nP-r>-5In=uslS#kyNw{DrO77??wh47&N;O5oWU&D zwfcaM-Me|T*i%3P36b>D9&~Y#ZEZ3AjgNN*$=He8ObLr)4b5saU_V%MrnKz?>$b`{ zE7MYh337YW7}Il|nE(|zf;K8^KhpiF{Hpr&9GxQo26S!u#yt5|kXVI2r4EpM;B+50 z+lDFRIno+H#3u6f!3T|MHIg|3>4(30 z+?MTpMFa98LltWSWi15fhhVjS!RyjSOmT45ImCAK!~L3?RCBx?Q$JB5$^4Bk9Ei_q z5}l!9$N`%3lNz3BACS!#C$(-d@Aqq%y;8#8OLMML{4*ZoD(}d8w*l1J~O8w=IM<4 z%&e!d$;+3O&f|2K*taptw^V=O_wy^!43%I{(3rqvmk7-JW*tfD~>J(A+AoHbzRC3u!^Bq+D8RU1F z@$QH0bPc)vy#3t=SP-|WgW!bi|4clK-e1Gor9@(W!tZ8x#|^-Pe|h<%m&arGbBJ>|oVuuhAei6iU zRVhdgxr2u3X#)S}f@DZM3vAaaW9ii=ifH=_X~n71-2DYFF?D0`-FM@ZQ;pT@6wnAj zwRGMGuqPD&tt}yH)~cNcH=!;#C(44vj@#-E8VFxUS4z4G^M_pTEW1JQKa13=$reGL-tjx%2xY(}LKLs~TcMrV|cxZzEH4Fc~m&y=gHyhWJO zD3q#4JKG4wsh!DlVynPF^m>%+M!pP7KE(oDI(*wy`};BQsJQN_>giPzinrkU9g1j2 z7@54e*vxP0LHS2CC$Us>hy(};6_}0F{im`PO%~2G*sR35aTt7JH3D4Y9D}*xIy5-_ z+z71f1>gJ%X$^!NIY>)NhHmM8zW0OHw+DduCxlqXb##KCHO`tsJ#WX?HTw&f&uBbq z*3p1SnryOJ!n(_lO2D4*Z0`I{on!v&7;2U)q|kv@(+g??wffB< znL^Yt*X-V(CDu{U3-Q|y?mo0$ct$CSn`_*IMt4}q$sh`l?zbEuZe&yHNZ12M=jt8k z_YmkC&NWC&8)7}das*!`rOV4^q2CJ?;NFjk;MR|8BNv#J{6PRGJ90(SNWKU&gW|D~ z{>~R0==~9`fv;fNCFcoo05UcemmDQNiuENA3Sr8;ESqhmYz zn;WCyiq~?Z-;GeVyw3NZX}QPZ)@uI##9VMDbqe4Lpc(7@_-NM~g#UP~uX9b$QPf|K zc#-}=7gOaB9Mhj!;b!a_W2Q_CS;uwj6Wm)!bi*Ud2njFr5@XKB<23Ab-4J_$#VT?@X!ls-bm59r0m(AGZ;vRZCycE6&a ze779mlCqyx)xeNH$CW;07?FNPR=WF1EQ$Vs6#u&|+i4BJ)BdGR`V5yock3ap)NOw! z=n|IK;V&^B24H@}ZV2aI6~2S8vpL=TtYqYJ(xp{u=;P7{qshyE^pyq}ss_8q3IGJ+t*`g7tFV4m%xC(zA^ z?&(iJA|nwO1NJ5 z@G$kJFoP!!2F>}hNt}i-&16jk=^;{!;Z*2ohPDOh2V}m-<2vnwBzqf>c>PYyW^j*= z6-~^`5w8x60Qs!X};tx6UCrCbqHywu2~)5N^#7Egh2o-vQGZ$8 zErdTA3w>DkP+h`>8yRwBqA^;!k--|NP}2ax!MVxMO$H6gA_)}>z9kLqy>I`fqO2fv z(_PH`|FL2lpD<`{J)q&M5AJz8SQ=Kh9gfa0vXLON5!loe>x$^R+bH%!=zAz|tKnXc zN7hYe4=9O_eVNI=xJeAj1@adHr|b#46V^*WkWAm=6vJ6 zfGPI~xUIy6ZG3SLq7uR!#2)T1oZyF31@Kswe91Np82je6&uUt;655J)pQcAfc3WJU z=NpA7n$>C?XyJEL7}ttQSwB-l>)+l)occjY4W_Zj!0FzBctQ#BD#z1HpQB$ckk;g( zc2C5G3^I38hWwWO14gybi1+?CmR0zZ5PMWF9TVZo7jHq_eP-Iro;h8pmLE3!P+C3A24_YQzL#59-qt z{|aLdetHgrZvQtH_Vxyc$jeD@w9E-IKW{KyD-$^t8` zdNbm#4FZsUp5t}gf%Ux04B8GZ13uZ*WAwGjRhj+XQs2QkT;gSk^Rsm!Q4#2%@6A7MMAT20zGv-3YXng!F+ zr)IA!+IM4cGd=MMDrvpC9`V~vLWI1G7Wl0i?1$@@Lv1Ztf0GP^Vdjhk)`TfNSbDod zDGmm6BH@Q2N=F9ta2K^mJw-0tuaxX`ktHZ}4Qqu;M11+{*!{>Qx1;Yf+gw!%8A7HB zS_~bU1dn|$S@^qfsRl6qZ!(gXlQ#MU1W=#*8uW7fQWCHlbK#;3+`IQYy4Z?f@V+^9 z3=SA6rcFSbA#ZYvc@427Q8pk-LrMGlJ0KzuVeN7 z(ZB$ztgbq>nAE0qH)iQDGs7Gh%9y*OMKh(AeYSkisLF)N_Evxg!C9{hy>IHf9^s1< zP_K0KaZ$;-!khs1>PQ+5!CVMQ--8NhE_%-aSoY<}b%*A)st@E>AZW6)Xp&sDrlp1A z>_k!_yuDy0k=}=sHN%t=`fzr7g_m^)L_$D)-rn2fAPrnQlNZyXH3H{J(kOJ8kb~dW z7_DOjrLmQm4bIQ6!gU>V<0V7gY@h~m{gY&mb8t>DZqf&g)9s9Mus{uIK{E`-TyanV z?TGuKcMJwY?xQvTPP-LIC>o1-t<*(OcP}y9Kr<2=D5iB{l2hF`fV3r*?88m{5syBtqWcDwQtx^M^!WN7;#4Ao z_8#Sh+?_gDH&H$$Xw6y6+BfLr*`z2~dthf=@ur+#>F)| zVd}pXu2N)Zox`e4z;5^x*KabN zidgcJ@7L_+{bdj&ipGAIeYDSQA&`BHOTpprL{MuDdLR{}=qT-3=4=39j$2)&MtZ)K zM>1H4Q)HJ$n9Hi6dyZ>J_)vmHU+$nNW~coD0DQlJu{avdL2v6N#)I5s-gHi)N5@=N z(|+;PNy7A5oW>O0rf~-ALQrcZT&KQ6xPbBR7-oit0))=$3{|&g?=(>V<`S%jK-BY8 zUaI2dSj^6J{c2<6S#uWp&r=X^;?Dp*C;|8+0Uf}7jq&g~u;NZk5g)>QWY-@h+{HT0 zGv8qE(Dj4hku@iZknO(=>NO9q)urPSE1-MGxW06uBXZ&FsF~5{29^xXOnK{{iA!xEO-u|}kR9)B}TBU-wgkxGW#4IgW zRwEx`A2<@@yQ_b-4QA*HBf5bjjx~aF2TkC*qU)~yZqNh1_yubN`F4pOD8mCc(oH9H zw0Ary(6(M&snG3nmH%gbLa}uc&U~aVh$JYk0-IXJVGv^X@Q}`Z4)8jzooJ{~JI(N@ z`VZz@B45`n93YuP3E5YaiZo#(!`;JV*Q9$ISJYkLUA1Ox5?$B+8PE5l@S~fVWphR2 z3Z2falOzSZ^-*0wjC|!d`z-3iyL?qe^uTF&P+Uy&TnXaJM~F+mKyQ(txNVY3i1Cs( zaZgF!9Cr8r24#i#$>^|ty0VsqZd{R~!33b|4vpeT9^KGn?y4X^@o&fpp~^$B@gt!> zV|ZYC#Vb0Sy=M(>*CZo2?xEfOxa7akm)w1Q%?%$xb${-TF%jGBkUNRtItj!vreQze z+n$;u5bvF2yR^Che}U!^7$7E^3*`Td7VT?+**=*#4D(uv8GN`onZVS5c4+G*KEZt} zLC*Nq@-4v5)78$wsT%zXn7W;^wE~5Z&edgz>MbE@Rz5aF{)7({%fOF^(ec zqtByP!oUlv7i|sq3Tkt<-OA>{wp$8~ZNlu4AyriWQd8J(6JYqpbCQHzEU~ zM7@Bqkib4^-+?-H?KA%5uku-K=^nNy_rb}hKsRah;tWD7b?yRlS1U;O_@mhi8*s_t z7%uSs(ORiYBdjP`VidbjRCfd%ZYX;JBBB|9!Z)pdBgpy}WLBt?Ax zU<9C-yMe$})N0{-p3sLlgK+j8{z$JNWJPHttk0FYqRchOjWcU{<_vp;pABwqDMPLx z1PN!17j5^RT5X!>RS4@L<#37j2yA_BHl{k#*^9kWCI+yoSA7;p0O0nl;)dnl7>DHk z!LbtWAd(Dm>4L%EVD>6~*SiXg>sJso&YZA%hTPFdq7gaG=rV)Z?vzcSbc{-<{$hET zs&l=f*Eu}E<b&IxIQBM6Zt6-t}aFD>bWd#yl5#Yu&TE}!0}(M-G!9O zxTgJl>aT+zkxN$aOd+|(-%JMm70MqY=xcIL?#|Tbl~|=VV<3 z&tDhCSfQJ69VWqd4H-fS2A$Z+V|@%p`&F?S4ne(y-7YGs_Wn$lG)p04Zi`bzI--c& z1Qrb6@^R)VrN8}Q&T~q@+c$OU!=EAU49nxItBNq}uHRwWD&|XYXUZaUGb`xT=f_P^ zcMzu?8MG4)Ri|LiguL7yxainYBd#uzt_U?9^TU~)0UZ2ueqDSiitY}cEY;?ql=UmL z4dTB(83xfcit(6o;5S6j3t{1aaNbs1LUNm7BFE+2TGn>zdDtw6y1LugyWjtUlk|=; zciuwWbkv7BwO#~rg^%7z=Z|8hwd7YYY-XioGMe_rbuoq0xFw~6?I#c>?3n_MxR-BK;P0sWTwjU+sPHlz{fUu`S@Ng#;Uxf`z2VV1ZO{&$jJT($ zubj>$IN4!`x1D1}j21#5qjcqV&2fhb|Bw?dVc5blvZ;e#jGAQ8oS6eYttLd~WMM0ui zyz_D!ukf-<>&g^pev=jL?Ve$5Lmi(feVq~De;kUZs`A7~X^CfoS>9FxIh#(N1}j!U z#B*uP{a=Ld5jQw-;Wxn2ovEKhJ*I6bN8USwy@uunw~T!NhOQ<La1GEUBxNyxgN8nEqX#bcSip`G8K8er-iKzKEn&*DjUiQoA0U&hx zjCquR{K^k0Q%uT(8qIz_YeE*X{l_%1ILWSP2Xrp@`(py`XXS`%;J7k}F1z)M+;@z! zb2rTMT(%+l7H%L_cVICUL{L3<3B1HgpJVdOiV!+2#i^DQT$|!gVw4Ve;68^mBkrOd zf5N$f1@UOi&iPW=;t$M}ncVX&&7^8~X9A$s<684&#vox|C9-TH@Ns*Zm7@O|En1&& zc@U<0n(m}h7emMtYp{NCeaI2~%Q)OZ#0OFx8*$>D^+2flk0omVu(rtvg%azHLEPe6 zz6zVg$R#JCqxe87tqP!+S||EhSZAQ`s1r&e4aA8AcwNIN?n!U&T&Bb z0?|`H%Xk|g0^ag0f2&{1`K+I3^6rT4qgprEa#Nvr{%8zwZC$Z}`VVWA*e(FOt}y7B z0XCj{Ddub^Z#n=#hp7qdkOpjZxD%%!KRuu`bwDR$N)=CH2PaL zmzrZsMD#h<%`))5%QL?Ksxj#v=m{pISkH*Fy+V{n4$SA>2o^s8K!~JngX~$#DCLhW z6}C^@#y@Wm?qj#0vL|b=;lsL0o86D$YEyOnPRX6nbF%N|Hf!-9lXGr6!*W}F0}&R z^G$`b(NSE6{cI6kA}rs`3bqF?W|c&Loxl@6vUh_>6ZDFN=8Ln1g$wPmyO1xlf!Wdj zlhMU>3GFt-a5R>qHx7fCVhdr2?`NRj{q+vQD{GuW=E{$vcRWFagtA{utSKM4fp{~j z#s4eXRzdF_K_>ErufAHgz7*UGMW{SiLS!Nj!0ekEF}vCK+!A+5<5v&znVuLupp(z= zSQ5h*{`Sd0h!k$XO*tS8BK`io5YK9r*Vqa!zZJ}-PBq_s00Q;WhJa^cG2$+9oHG52 zB||jkcw#kO-m$@$VGL=U2$#q<+F#>7srg{oO*e|=RjA{OfG$J!W)E^vBTZ*of~ur40j&OUE!v2UG!u}WChQ!TeywR zP(0a9Q-jFqN7DcfN8}kEvukoq(Bgz3aExz{ z8Rgr%O&6n#bv<&B_I_Hj5;H_as|?Oz;&#HoC||SHK%#zyUJ-tgtKt5 z#Xo-V?r3QZPk8olDbjNSOgn*E=bp&!MC{JR>0%A9fg0D_^Pn+w))A8=jfcxUsz+jl zEw2QBErs0K6R7%VHXF4v`h~KT919TARx6MhnwyV3WQ7L#jW{GJ_FH9N2JYuPuf)Kj&Uj@kr<3-Z2%poubxk6Lwy=&lJVgb^V%6bCy z0%EV#M$~sf*EKVWnc*&(+I`I|V&sCg6ogmNdRGH@Fk7i5I7k~GkZj4A8>9IId>%ct@hN2}isQGO z$MfqhhBZj-7@OIKz5&3SAhU4>omQ*&TjY2^096?EI31t-# z1L}b_apnfPaS5j_of_7q7*DgzJ!>q(y*>^b_boTF9g>e9RwIK_&_iHjTCbrCpW08g zn&zKyLl*~f3_KHAzD9BR_&e&;5VjgPGJQ2XhVmB4caB} z2&^Ja4ObU&E$JbCGlF=m<2gE(r2!rJq|44qjxLS7c}&1h)Bv%aSz*(t!-*%)V5}ch3;>-g~Wk zDeoHa(!G?Opq$(P4a{{>sluuTO)CZPY{sKgsg)pqAqphIoG@05mekfu53RBw@H|0u zMHUm4o2U9SvOSp7HtqnC>d`Xk1*eu%)Q zq+J)hcDrM|{ZGDXMS%|0J!1Rlu*{v$`bY^m9?beD)X;`RycG6e{y4875>Awf9vvm` zjsht2y2Zry6;i3|qS2Vv$>^qesM}XT7r#=M6l;rkFF;52fPk)rAewYqka3Y?G>4Yy z&EYbjJg0dcaIdJOYpt$>y=+h2&FboAXo*C0e{#Td^-~IYZcP?uH&49FGk28F`qPJQ zA0elG5de$o_wis8N?I{uJAKC->J$=X9h%+wLH_q3RkLka(7CQ|JHr|aV&@aIONW{F zsxov3PU$V9lzA?LJKC@24~F7fubP1u{m$|LE539N|Es`%n($?Cv)2Th40%xJ`n#+) zk}IcEOSNg!1ODat)mT9COs0cwG1hUN%vZB=ivP@`2OS+Eai7o8W^^RmiHB&;cL^Lo z#e({OHdGWzdh%5%qBw?u#{_qy{C90R&m_e~orU<$jac$Rj8`4>Y%h6Q7F|)`>z8Yv zXmw_RJeA|4F+7ICCqnmtu%*S1!POkvs<<*-5-`e6r?e)8c})mn)jHL=8TA>EYiHJR z7}U59n{ioI%yOq|ZTbKMomEPSP@$H6ZH{&yz~z1b6N#>nwBeGnCQ;>h>cr;&sXKVi zwX@LeCiQ!1UNa&HxnLA@4CmSk*=2&Z%Y)G*hVeYs{|LSJLxF3zftQoN;2w?p+OkBx zms+^KH?&$8gm(X=IDzTgVccFpXWUH;K!-WA$VS*^RtV3!TwL!`w%<7G8}nL%R0ZT4 zC3Si*;s4I;JCWbEL4D|=X@~j-gVS0CQ(v(?rzm>Czvp#zv%YSf(#J#hUn#1bcJLPB zzn&mg5g<~kM2H|C`asQJ^tykMu>5@It3KKe4NB9uptTPlC6Oeb-&mFSZ_^y&{qzGqY~m`C1e z-dB&|SF422_s~MknkWMF?#Htk)zlZ$@r!)RcoE(Mz|%1syu&stV*#HF?boCT0+qt! z_fTtlzNAg<1zft8C!xZdouc!%=9=5m!8T3j$T^40dPIDaI~tP`Y}x3xERs`>^`S%I zsAW!^YsfBFTv{b^|7<$z@Dkhpviw1*Yiqc%QIfC{(6=49{sI7TMt&r>EtB`~#iKY! zHm+j3Vs^T&|0QgOQUU8JN-gpMIqNeyQNE&_KVR?I@nMxb}EU^{SruX&OGx}ToO zipI@Q>`0Xe-tIwqK(*7%g6iAC@>&}L`GPE!pq+9IgJ5kPrOS!17tG>58|U03_Ur-) zJwaAP`y#W3Hj7%#peDJpJAO$9%iqd0r4k@dPS+`*N4SKoMmr|Pp^>D7oQUf0QrOBt z+pW$Mlbf3RQ1R_lf(8@gP

AmPr?PFvk8kr`;~7fYb?Dx8 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%0D%vja*yI1s0Qc*CTTQKJ6>_&=fW+ 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

TAe}BLh1L_%@!X`8559kW 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%0A0K8ejx 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 z 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

k4JwPmX+3>iE7@kS_WLE8GQG6vOqio=9F3g1F( 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

c z-_F);6MzAeJf&l3vb^OpvvG)WbgF=`vjXWo&S65|ed=^|f6%Wy{Bzw>sZUhUp*kR> zYg&iVa)Ku^SjFJ*`*25*xmbx@azXWEkXd3bN1i6rn%qQmY!qQ?uk2jML)032xQ-!> zg|*&9ut*)(de(UmdHem$Y)%h(>sj^|B+k2c3@D4n#wy>6H1G8Go5;2uAi*GZ3cWu+ zQgFtt_Yo|UVXnP^8y0)9$F#vdV)=xFAWa8X%sNAojA?dNIr?Nt8jr>Uqm=oeDNs!V zTNGhR(76D1Z?H-Tt7y$6u%zB1w?#A5>fQ_r( zUV@EkJIqd2LfATx7XI(hH;r+g z;O+-zF2>H#A?Du(2Oq%o{A5@MgfI2|Fzs1DJ4ig!dEq7KT_ibz#T`HHVLkutW z(ChZ>N!{70cv<+7-&tHFb`&5}?++fNRoNIUF_*QlmGx6};@ssLOhi^8d&5g=#Q|j6 ztVC2bE!3U8OxfzOfG#?bk7(Kgs5}X;S+WlNO}g2O$hr@rQfn13@;&3_&zUb z2O!uqDkTC~=Jpjp88SN6b1+3Q&^{}ea<>(Fb(YVh*=Fg)cw3BazfOa#$<=tyV*%^% zJ7t`fRxl&H4%jHuWLBaiIMQ-g$$7^QZnkVucCtE`^zE7l0)J|e`x1m!RKUC?_Eop@;rblpH|@-jY0rT(ApnS~{q{TVTeXRA3bVu+hYJ1A!;O-)bS@Vb-|S zF;gtZ_}G#*wmT89*M_jOaJDr&xU_T`YY)n8G5AH|)_Ac5;1+%dXoAHCu2N4Ih24dV zX659Avu9jyp&{P5)X>yyrfX~Hx)$Or3Rmsu$L?@9`u`tA=N{Mc{>Slc-(B0scgsXL3tw z-{0r=zemo|_Wgc7@AvEVd^RJ>P8ZpC&7p>@%G@Ble2#xVE-o(YWeT=R?Ax_L?grbx z7D70A%1stvh@AwX8BiDP8=W`}43XOcPw2t2vDPV-^_S;zYlfI-Nup-b<177?zM!-b z%?YKs5u6w%cz6ZvG-mDu{11y%XQdqhl(0*9?|f{{e*VmF%(_;Ft>}@hY-2RjYF6>Ty{r8ryq{!}`<2_P>4y6U#eT z->R}rf~*HhMGNaUJNjH6Ha$&_2Y z`r&i1oo(afQqsNYHrXJ7D8)?zu(JC+Ituxwi82#?5tT$wq#em8o! z3AVKZj6tFR{WAs;f&gjw+2&F zA>i=UupEEvlVE)t{*%)Wd{7xw+8yFIn>JuYt18bSO zQSYY3VG0*>b7qzM&2~iLzojinBRZd&Ab#LPMbvwK4Y~?5j#kc z#SEx^H}Z&du)Oh+ML@YR#odQyNR9MEq3^=8YbnQIusit1TsT_0**9&OB{w8{0RSLF zfcTtjLhdEgS+Z;G_-RE(xO=h*)V!(qpr@xqQGMM*-nvs5@ilV2r>&C|^xx!SN$>vL-vuJr`TK>9(s z{i<}-ztCCAnzgYYm^H>}Lld|yTSnK+wH>w*$cc_0%-aU&E#mKez+dq_UMT#;48JDy ziHw zO3v4vrb*+_cPQSgvyZC&!BlAdv!#sLvbeaGDax8C#T}cy1wY}BSG@B{=)ZsP!qr^i zkX{iXLG0Wl6N~PkI~HKGH;6bCHkr6o?6zb~H5%NA(n!wZL%^S=2@3Ad93RM9S^nk_ zfd4iODdo>0Swd=~ZR;rc8EuC4J*Gf?V5GZpOnsC09pb*b&{^cpU980}BS{jdL(XZh zyKP#HTJue5{nhUO6<~^6a{QwH77_D+Jf-Ys)L%iBH|#HlCmTJ2Khf(*Ibq42HckNv zywXv4Mx4jtGY`(9b6S^AGxnaS{*G{5uc@q zU&XLD{6@X&yEgv1LQ6Y6@qv8}xhOV6^ST^*XQs4xWyl1@TWsrB9YIRHW z^3Mu>xVJcbttyys$(lVtdF!#s-=&09@@z?(tz~mgk*sZ`$erwhJ+#|#;4ygk|G}~~ zRjMVbQA)(<8Tuo-LuwouDiVF>bwpwt*N8t`%NqWKr95p5wW$ab+qew64><{wYtmRS=jgKWLRLDb|3C;5gl^13RLLYE@u zZ);f`1fUn~I&UA%+us$5!cSwNv@u=xVfGU5=I7uMOf{0IbF~gCpfMY{VSTYJfs&7y zRgl3$A*{+gFT(o5j`3>^pRcte9*hGLksV+H{K5;o6~$$3J~7dB&;GkJ@Zao05G?%L zd`zkuJKyr>W7ug$-7%WZ_3)r*pzWLgQgcv5r+v^~Vdq~3U+f=&p8W?>a@VT*5TpeD z+dE2EwcfVmmU%sPBHjj8Xxl?v-@ovhcH;g_0Q8HWKx%HU_7W!Mx`r{pk897EX&xuf zf6t3~1B-;{-8cE~l%~%hFabUguKn}4Gqg{zVYWky0@)I|`IF(f3DKn=!kt;mhZA`h8@6NX(4tr$i8n zAWjwJy*9g%HHewpff)UtrGOR?>rTbp8)W*V!n9sZwqXFYBxv5&KGXrslQs1lh-c7Q zUt4yQh{CjNP7eNq%v9`5L=}!4N{=j?@8z`%c8c$Usro}?F6HQQ^5ODY^*XyskcTdJy+=ZuSVjcez+>zbd3-n%SMN!*RO;uvG>vHYOPWD$B+hu-~8a>Zg|0 zD<#DSHOf8*#gc#lxC=1}KDyiYb9t z#U-D3S6Ms=sz188pOPQPg0c(9Dy6u5*_n}H;fWb8zv3ae049ZiH9? z?45Jhu*%!RA`Y0(8fn4=_KrR6%L_6mdw>1GE7?RU3g={900^AmKilKTYl5MezcfqC zA5q)pHr|HuqfG0&dErB_{-O67N-I`OCnhwT2laksAa3)9S2P`YnZY@qg^F|i2zG&` zX)_n#HliR9_L5EH)Sq7rEDNfwD^yR207P4}-nxiQ+(PsBh3aKrC`HY#ix!Bii7#{H8GI`&5aVcwAw@AUK6};27}#C7h-NRkw%sv|=CVWvUpSX6p+3ZIq#Gb(zPJ zA0U0?4@QBLo4_N{T_yn%h52KUH~uv``HORbxN^p0D(t|DY?f;}MFNys$qt3fJDWwh z;!L_NnkCIcUJu|7mTuo{`s}sxsS=we6*;^XC`4XADc1EdXCAg;kJOk80;Y=YfbeA| z$Y<@e+7=^*O(VJ1ZBj}K&{b>ctQEPsH!|RUVp^+Bt1(d zTyD8~l=kotC4&dk`62Px2+8~b%JF4^mP?nx+*(wP#M(amD4!k4-(W**AyT1bn5K@h z?JuZ58A&7wHm>E#CH#yT*3?V*u>sw`T0eO>S+SKe>2g@Q4%G|VU>%}nr&Uw-pECP^ zwk@Pyjarr33M}{JtY7(E5>MF+BDN`6HU2+d-Ej1beCkD8-YNb#_Qz|jh^3#k)1c~` zM&~X(oz=**Q@yzq7a2uB5f zGn%p(!5(<#xJquZsaj}Q@AHmapG1xcQpvlll&<57AAvR+<#?=(!8*s6kr|&5`U#0L z`=Iw&EiGz+tkS$~ME3sy1q&BT(_$TF0{JlR!5*n^Ap3*ncm&iCD6ZiFIUcO6GU*S- zH}11BY~9$k|G}_n;5n}~&ZtOdKV0A*B;NQ0vrpj3vr57R3FNvw-01K5x<teH`oIGoz^$b+Ps(uXRI2S7oUAcXPv#YcaLx;`!6i<3nzh%X9-6#!a^l8RuK^ ztMd-MHCOS#(a(G=UW{F;)_G@)*oVBgU#j}H4|r?7yLla9*#6dG4qkioLD*HWc=qvl z;dQBw?3W;z^JmMoMe>EXzlrnjdD7#%d5L=l;qt0gmK*~LUj@jUKI?6M9SCtmngr0Z zy}u=OWMb=8{FM_br+7FA+14ua(JBCl*bePf5tt$gI0NnT1z-* zd&z8Fp#bjIL^Cbqx00_?#QiN`n?elE{$fYpcOZTx4eHxMx{gaeZlNdX{8)-8Ypu~R z)oWXEiP!&w#{p}=k5l-wE@~=SeUV=9QQ>py@dQoVr{aK(*4ZR+q3uvJcvZMY%V@ zn0lndumc7sren>rjcI)&!@me~pbg0kK<%$_3?Zj2f3-pW*b(%vldhSImUst<VJHd*G;i(8Z>x!{lJFr3bRjEcBSw!YIf z1cM{|KDQiM>KzkrUL!mY4zGk2;_zSXzqGh1x0&jriXS)eGbnCQHd!71L$=bZXkyj_ z=)X>_Fa!W8@pFZPedS1h)?;W&kc4Qr%N&N?H`sgC!yK%ow(n4i4TPNuNtB)o;Nbb0 zGI755?)|tYtC0(9ak<+6PNVg#^Q$l?dzl>t;M=(#Sy^MA*pJ)#2<9>cZ`Na9eaHdK zhBs;0>}K}lmi%J?%6D+Nq{QB#%hkh?4T<3^`C1)vkN6Dp$|k9-stG%7v9(&%u6@S3 zWNgQB>WB~NWx7$z_?Un`166&tg0{23vV_;PpK$y?0V(ru?3LK&T^3T6?}_dU2nKPw z5@x^PLQT7&hFXw`$w{jkR@069NG&l1FN@&heBG)>o}NBP`LojYL0!{|pYbn9Ws>oc zH&r+9^;5>|qWOSlPneuQJeI)sPRjh=rZY^bxyXi!SeHd#68MjTjRpz7A9p(hv;5ER zml1~^*@=yom%k0BM<0g;pKwRdqh7Aeeh4wV$>YSGMa*Tx&r`wFH)Igbb9h0J7+iY3NYcsT*gl`N*UW#vK7L6#9|1V<7Tc%j(I2bV1j_! zPiQV4-ik8JZ?~*5LB6I@-^=HZ9@19@!4>~Nvyem(9RUVFLoPXEUYm-GK8*GOK0(Vy zeJ1r07#)0M7MpZx+Uae`T2yVQ_ViK~0VxYer0_rav_6KVBL2u}*(z`H94Td=c5AJ= zy0#X%@hz^TIF_rcG0(Ne^MzXo_ugQB{>0phw$bjvO5iu(z|zeXm69b79(!7Q3E#LP)@DC>iVn2Z~w#uvjjG=w;mX@yI25y!2l zQl6YRE@3qnJG&QTF5{s(lBz9iHfrVyf#W}3Q_Nyjq3&GJJ)U5~s;#tz;1~J43VE0* zcHr_nf@kPp9tp5U|*+jlFSe09J= zEB8B&NXt%f;G+^OlVauLs?`|3WHS_PBV*GOIfXk_^&3kX9k)>udK-4cC0K$2`!I%=O#H{TUnR2z9g%UD&{3R!kPim1ELI zHE;6zmK>=98;wi^(XF)J8jEe5U^MBjv>O;?YY%4LVbJWZoeY=`OAQm20^nf!8jsdN zT9@k`aNfOSucUem1jTd((tcnp-L3d38%T=#+Q7!GfD(t5i)y-gh1j&&8tTt>_I;yJLn?k;cV005bO z7hz>PxXEF|Vpa%pSl{9V`*AVkHFuN>tL7?bkhGw7GR>vF?LK08Gke`mKnmjRuyrrdR@Q&}%GAoDIOOEwNrwhjY;%lbgJcZ^&fHb9K*-nPJHzq$idJGlLn z;t5Scna-G{>BICZCYn=>nd1dAP4*g?c^6yXFE*BPyp&yhLYT)~@C+Q*)aa7E1Lcu8 z!OAO!*$77m;ws|WG6!;uxyG>upe5Dtb!!t{SZ{fu<;s?&zh zVkIAPYsP zqtv_)v@F3voTClM4-<#Q`5!Mgd^@edj*i0~4d_W$ zWUF&9b6o$gvzmP^d0~?P*>5j|^GoB^ zf5^#I2^3cbm_;o-`BUV11Y$iunqzW&{*R*IqnrHvn_Av5>*D&D^CPqw0Hgq0{(!7~ z!x+DitO{*Bo$h4RxTHCJMDr||vu+q;D(e&g4qn?1w=)7Qhfs{|?T07~kZ;3cFpoFL z$EDr#_Dah=6=;4D0v&zKKfo>`IbR8ShU*^LR(Nn%&X{_P+~9YG;B`pmfTwk@Y0GM?f!=vZI%=x3uM`Q&CaFZvF$v?eTI^b5;i{of(Ii9IJNyT8)ed!`2jL|~KVCOXoq$ zLK~+c3-gB-^J8*>Sfm9p`UxoFN3;HslHMreEWNX=Ke0~3bm=FW+rfbyx5Gk^?mAtQw(EFtBKclvBqj}u_~+H&BZj7k)& zC>ukrAo}-cyw{k$SGxj^`fkVDC;4&esr}_U^X*xH(?x{tsjJQpX zHCt-8A|IYmEy<94vD*-%i@@ji6wI0buk&atezMfP`8^Mcm+JB|bn{5=GTPBo$SX0_ z8TM$Am7eT0k)$@P`B-V`6{SSBO@5f$vMQ!)32dK+Eb#-~&AB&7?%UM>`t^@dQX1P% z0D}eqDGZ$^oOKCtWqKwYR?2Qpz{Qr(S=C&q^%m=!J%Q{{R!t8{jx;~b*I|2=jjQaO zjge|{+*cl0)q6P63+e|jhfb=la(+gQx|g}ww@n*4NGZle-ieE|{VgI{6Nxub?G3b4 zgQfch{sd@c%6o+6NDHH9SPi4m?(TIc+p{V4x75Q|*&N<8k#;SSaUFkOo6FJ|+DJvN z7GX$rS;NoPjK+MrMI0v_0?3nO#m?`PVq$Z>3^Dek&5kC1gH45)?i{gVT%N8Wwb5cd z=f4sk)?~}qHB4;M*=>fNV#9ISI=_=S_%QD?xKR^qiy;OD?)D!K)m^-VkZG3zufiq= z3GAsll#M^69{mf6B3m%h%kQ8g$3W}lM-G7^Rn|kT4vZCZN-sH-5}KPSPOxR*4D*1M z+QmCbt$}{}!knEUXvxu<=j82Wbki(e_6VpmsPRMEnj}tEvT6^GKsW4hWq{UB|FXdL^P%Aj zKnDKq3fO}2>nJfT5^RI!{>#@|7Jq;(OF*d?ASTNtm*9#!K?ZF&Ejr%{K@j-y(KE3j|X{t;LsES#2393JJjb*DrSwy=g$s^iBnXWgNsEya- zSS_fO4tBR4L0O7TwBe&t=#~n??SXx20!v&Sx*P%wVLq!B@#qw$6D<83F2m%jKfs4v$SrLvK7BJT5h{ZMUjS5)xzMryc z%+XZQ$y(Z78eGv}zJiXYZsJ0d!1NE>`3CJXLVDL|J(B`e9tSC+Ivx0*n9;9lur2&f zxke_rXAZ!U*MEHEZL0wZ+-vKAn!_~>j8fzHt9V`WOv^qp9~KOiS6zTbor1rX2_IvN zg3$@W>k#EJm;YHkLSP{Pyju6KrpczeNaykb=|9%T-hszZwKnwDxz=iHV2*roP)d^P zgx6_Q0K-+gUXE8?qlrs&@#b8m^*(=Rg@g8Nk(>HZY4BzxNS~y1ty$#0yUS>z>KcXd z5aS;c7m(m?!0rodDC>0_;>ax7nmA!@py0?ux-?p_Vh~68C9`&5AM(P(XS~GS?6Y3; zySV%z^d|t<-K!l(+qe|hxgmR5yh=+r5HOEYG*92d#HI~^62ZO8$Soe2^8Qzk{@Zv# z0rJ*A+P0@k!@qPFCOl>$P)IJf1_jcJ>CFoeho#6RByqMmPWX03Nu910-4&^ja)lg- zA##>sBQ@+jN_k8Am29dWl>Q+z8$bCk?s!3{-Vbg5J;vNNqMeM@-F4AuSZ8Bg7HWx9 zRqYGghm#U(G7E>-(A@KKGnb%>S)3RX_4Ftxe8QlZ;>f3RKH;`J=HsVsyuo9vjF4KNnhOKZKxC-(3XS7}a-fR56ClpBh$HREB27W;tW zZ1vuSo!18zDikHM#o8e>& zMs`ctbe=%ikbMsO(Y95ubh;4@NM{Ln;iXDAzV%)KH0P+f(*H!il=@81ylC^nn<`=I zcp$Zx`~yXGs2ISv#9tBV*zB8qK_=zTZZ(BbuJ9D6Dt;%f^o^0*?YPZjP25hRE3%BC zt;(fN0u}r|UG;E2<0yUmVtx|Ktu)M~OQ)m$-briuLHPm|7HQHa7M;GNdhH9sk9jrh z$byi=SQ&^=i#rvnONg#XnF+RT!V<@mvhA;62cQn^SVwa9*i_Hvi?c!ddu61oR08G# z+Pk31T7-Nc=~3k9K=rc|=SGP8DGT}s_1gumlCpKwIk9o^=JeS50yi_tWpV`81)qH>DDEBwvZWatw=Xw+MaM1tF~ysPlSc zYb5IkvnYghCb2UnV)e1m+)+?&o8LRXOeCUsMEe8tPy3w5e4s{<@z@${`o(CtiVsCg zt{`HFKi8s(sO)qoH3(n$ERfo z6_N1(#XqiHb>^)LCA)})^z#cR9ljID ztqh0G@8)mHZ@d_od2OwP&dJdsr|d(FN#w6kmvt#WD>S9(tRV*&(CzM(7SqC~%dmX; zRG;lipnu!B02Ji)Txl%oa#Yh}S=zP{%|Popow50j<;BQ)1m?0I6m!A0bO|tXkVamT zEsv=wx37WoRc|569gn^Z&82DbN?|Q!0eGHlojs&2^G@E%x+&bhZrJV}bk?c6*1Nk* z{&eo6KsLDb@vmJ5X-IO}Z+`RPIM!V)E2(2E$@Cd{^?{4<4{Um{)~y)VX@n&n?Fe7L zl#;7?s%Fys^n@@yG4UTE$2+*mb#9Qk`tOABQJVLtv&hHy^=*X5i`q9zRp){uuw!6m zQ!8$qUwq)leaHkotoItyrzNy#okP39JJjLr%&pUW%iX;wV2nS>Zd}1t*C{E4GZUK!+Lm~6;j3nwNddht|fY=qM!wV z0V0A;HAu{0dd52^gC0v68DYzidPCu3?JeN+q#D$prNm-K4pOORvRUl^@9$!$sDjmS(IhAry;z9Q;kQ`(#!$Zs7QG+oo;0`W@X7iS)+9}bDxx3e?nLIkR7$!;As%K99y$pKS_$3L^L5REb0i6M*x|_>a2qFv zBd+YV4t`_qRkLFArK$qW*w1_rRf#;WzE2Z8Fr#+S=7SyuW%=)1)_s3T+(%|qx$udm z>OELvYQ_Z*9|btzA;UFvR)`SWETYY41z70FX;Zj7H4(I270($PcEkY!oCOrv5`60j zGqd?e2W|q8zz^%&wNf=^hxXDFS@)a+in%+ zIU7gHqoSbXt=yI+x0*EGn&CmFu;id8KJ{ssDI%k!fZ?;iiejV$NSDdi=cQGRcezpi zSnwO$BNmJ0o!l1DKI9vrxI~CvlPy5vKDbcVb96PtTFn1xN|V}bh(!+Ew1dDhhu-XC zeFF?(?3R6?pO|?q&smw!el)24y-_j~=($NdH=0C&mD9mVlgrY3wdmVFk`Fb~RwDXR zHy@GNk^kkkV9W;`l?+be@0w|d(+U%IVIb`U`TfxZfZX@+QZK^#ali{7;SmKbmky^E zvr;5<)jXH8wE8`$)!Rb0!KOY^Ztq3ly6_pj;f#N@S3D)4msJgSqg%JSR$*a|KCq6c z^#QVA=b9m9$!|WrBe0Tg(uoSfNk4xdgy9_Zo=kJ}CsoWCbPDEthX0c=tRY0YPY{&u z3crdc&NYRQ+@LO>m)P@%(XOpitO9kvz3tK{tj|4`!**CYc`t3u0UXIne^RS6*T%KH z(=~f-Kgucuh%YeAJ3Nh#p`Hf64NxWY@X~0V)HI(`Of30gg7BY9hT8P*r@9B^Pf1NA z)a9_4=$RTsZa~?u{#v^#YYW@Ih6-d5 zA*fjx%Gfl7Cw&a^T}sSV7I~oD?;A-x`O6aeqx{(i*tDK7 zJI|)o(-wxu2|tbJG{x%t7ILrMdRIDph8R@!_7;LF9KCxT(8wJ$_XW*4fqVh>uUC~- z*8Xz8h{$4Q*8`)gBsXmhnFFnFkKpS(`uvb=e7r~{K0DvAxEeF9i9xe>8ueaHisp zy|gR@*V>?xFG*qZ?J1~t6vH33kU=HMnMx=c+4u)J<5$E!}HIdB@$}NDWTHMM)BzIc6@e}_b@6_9W#(A_^oOWr~na~I~dK{6{ zWWRzSPZb*$!=fOB3y+u&*7a0&^1ajwv=QccE}T_3meWdmAku^!^!EFE78_rU{QtLcf4qQy7i$ z-bzAU*BLH=mF9+vV|=0WgEG|)1u3#tjl2qis$DIJ<$Sv@+ZRfG5_W$Qh-#`L<^VfE z-&bDy6OU5xkpCLFGr@AG6vmR2|x zO2&IcLxarjwemc~ShS#^m*)#D<8DFjyvGhvHf{xg#h`ypCSef*>R2GwO=w4!R^ewd z+DVd+P@ZUmnp;cTxrG`ASL`SB0GUNIau&?)RY$tdV@$|ni#(2wAp8Cu}LZFEp`8 zI$eBnSXgVj3W2B99CC?hGBSvQ0?zgVO3`Ot_IfFzJX)(`MTFJzS7cVV zA^iDWUbl#3n%MBxb%n6-0$Yzyp2@=6z(>|JK-k#sGnI6fkDTPw{10V&uBsYm7#QM( z)xnOPWmbj0mFAoHQM3$zu40mxJGA}}tvQG>e7dZ7Jk&fBodi5ooYVY04#e2!yt

tL?u{1+SIwmB`-XFn%tg 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 literal 0 HcmV?d00001 diff --git a/test/src/camera_controller.cpp b/test/src/camera_controller.cpp index 7312903..0f662d0 100644 --- a/test/src/camera_controller.cpp +++ b/test/src/camera_controller.cpp @@ -15,97 +15,97 @@ #include "window.h" CameraControllerSystem::CameraControllerSystem(engine::Scene* scene) - : System(scene, {typeid(engine::TransformComponent).hash_code(), - typeid(CameraControllerComponent).hash_code()}) {} + : System(scene, {typeid(engine::TransformComponent).hash_code(), typeid(CameraControllerComponent).hash_code()}) +{ +} -void CameraControllerSystem::OnUpdate(float ts) { - if (t == nullptr || c == nullptr) { - for (engine::Entity entity : entities_) { - t = scene_->GetComponent(entity); - c = scene_->GetComponent(entity); - break; +void CameraControllerSystem::OnUpdate(float ts) +{ + if (t == nullptr || c == nullptr) { + for (engine::Entity entity : entities_) { + t = scene_->GetComponent(entity); + c = scene_->GetComponent(entity); + break; + } + if (t == nullptr) return; + if (c == nullptr) return; } - if (t == nullptr) return; - if (c == nullptr) return; - } - const float dt = ts; + const float dt = ts; - // in metres per second - float speed = c->kWalkSpeed; - if (scene_->app()->input_manager()->GetButton("sprint")) speed *= 10.0f; + // in metres per second + float speed = c->kWalkSpeed; + if (scene_->app()->input_manager()->GetButton("sprint")) speed *= 10.0f; - float dx = scene_->app()->input_manager()->GetAxis("movex"); - float dy = (-scene_->app()->input_manager()->GetAxis("movey")); + float dx = scene_->app()->input_manager()->GetAxis("movex"); + float dy = (-scene_->app()->input_manager()->GetAxis("movey")); - // calculate new pitch and yaw + // calculate new pitch and yaw - constexpr float kMaxPitch = glm::pi(); - constexpr float kMinPitch = 0.0f; + constexpr float kMaxPitch = glm::pi(); + constexpr float kMinPitch = 0.0f; - float d_pitch = scene_->app()->input_manager()->GetAxis("looky") * -1.0f * - c->kCameraSensitivity; - c->pitch += d_pitch; - if (c->pitch <= kMinPitch || c->pitch >= kMaxPitch) { - c->pitch -= d_pitch; - } - c->yaw += scene_->app()->input_manager()->GetAxis("lookx") * -1.0f * - c->kCameraSensitivity; + float d_pitch = scene_->app()->input_manager()->GetAxis("looky") * -1.0f * c->kCameraSensitivity; + c->pitch += d_pitch; + if (c->pitch <= kMinPitch || c->pitch >= kMaxPitch) { + c->pitch -= d_pitch; + } + c->yaw += scene_->app()->input_manager()->GetAxis("lookx") * -1.0f * c->kCameraSensitivity; - // update position relative to camera direction in xz plane - const glm::vec3 d2x_rotated = glm::rotateZ(glm::vec3{dx, 0.0f, 0.0f}, c->yaw); - const glm::vec3 d2y_rotated = - glm::rotateZ(glm::rotateX(glm::vec3{0.0f, 0.0f, dy}, c->pitch), c->yaw); - glm::vec3 h_vel = (d2x_rotated + d2y_rotated); - h_vel *= speed; - t->position += h_vel * dt; + // update position relative to camera direction in xz plane + const glm::vec3 d2x_rotated = glm::rotateZ(glm::vec3{dx, 0.0f, 0.0f}, c->yaw); + const glm::vec3 d2y_rotated = glm::rotateZ(glm::rotateX(glm::vec3{0.0f, 0.0f, dy}, c->pitch), c->yaw); + glm::vec3 h_vel = (d2x_rotated + d2y_rotated); + h_vel *= speed; + t->position += h_vel * dt; - constexpr float kMaxDistanceFromOrigin = 10000.0f; + constexpr float kMaxDistanceFromOrigin = 10000.0f; - if (glm::length(t->position) > kMaxDistanceFromOrigin) { - t->position = {0.0f, 5.0f, 0.0f}; - } + if (glm::length(t->position) > kMaxDistanceFromOrigin) { + t->position = {0.0f, 5.0f, 0.0f}; + } - /* ROTATION STUFF */ + /* ROTATION STUFF */ - // pitch quaternion - const float half_pitch = c->pitch / 2.0f; - glm::quat pitch_quat{}; - pitch_quat.x = glm::sin(half_pitch); - pitch_quat.y = 0.0f; - pitch_quat.z = 0.0f; - pitch_quat.w = glm::cos(half_pitch); + // pitch quaternion + const float half_pitch = c->pitch / 2.0f; + glm::quat pitch_quat{}; + pitch_quat.x = glm::sin(half_pitch); + pitch_quat.y = 0.0f; + pitch_quat.z = 0.0f; + pitch_quat.w = glm::cos(half_pitch); - // yaw quaternion - const float half_yaw = c->yaw / 2.0f; - glm::quat yaw_quat{}; - yaw_quat.x = 0.0f; - yaw_quat.y = 0.0f; - yaw_quat.z = glm::sin(half_yaw); - yaw_quat.w = glm::cos(half_yaw); + // yaw quaternion + const float half_yaw = c->yaw / 2.0f; + glm::quat yaw_quat{}; + yaw_quat.x = 0.0f; + yaw_quat.y = 0.0f; + yaw_quat.z = glm::sin(half_yaw); + yaw_quat.w = glm::cos(half_yaw); - // update rotation - t->rotation = yaw_quat * pitch_quat; + // update rotation + t->rotation = yaw_quat * pitch_quat; - /* user interface inputs */ + /* user interface inputs */ - if (scene_->app()->window()->GetKeyPress(engine::inputs::Key::K_P)) { - std::string pos_string{"x: " + std::to_string(t->position.x) + - " y: " + std::to_string(t->position.y) + - " z: " + std::to_string(t->position.z)}; - LOG_INFO("position {}", pos_string); - } + if (scene_->app()->window()->GetKeyPress(engine::inputs::Key::K_P)) { + std::string pos_string{"x: " + std::to_string(t->position.x) + " y: " + std::to_string(t->position.y) + " z: " + std::to_string(t->position.z)}; + LOG_INFO("position {}", pos_string); + } - if (scene_->app()->window()->GetKeyPress(engine::inputs::Key::K_R)) { - t->position = {0.0f, 5.0f, 0.0f}; - } + if (scene_->app()->window()->GetKeyPress(engine::inputs::Key::K_R)) { + t->position = {0.0f, 5.0f, 0.0f}; + } - if (scene_->app()->input_manager()->GetButtonPress("fullscreen")) { - scene_->app()->window()->ToggleFullscreen(); - } + if (scene_->app()->input_manager()->GetButtonPress("fullscreen")) { + scene_->app()->window()->ToggleFullscreen(); + } - if (scene_->app()->input_manager()->GetButtonPress("exit")) { - //scene_->app()->window()->SetCloseFlag(); - scene_->app()->scene_manager()->SetActiveScene(next_scene_); - } + if (scene_->app()->input_manager()->GetButtonPress("exit")) { + scene_->app()->window()->SetCloseFlag(); + } + + if (scene_->app()->window()->GetKeyPress(engine::inputs::Key::K_F)) { + scene_->app()->scene_manager()->SetActiveScene(next_scene_); + } } \ No newline at end of file diff --git a/test/src/game.cpp b/test/src/game.cpp index 474b68e..3e153bf 100644 --- a/test/src/game.cpp +++ b/test/src/game.cpp @@ -168,16 +168,19 @@ void PlayGame(GameSettings settings) engine::util::LoadMeshFromFile(scene2, app.GetResourcePath("models/MY_AXES.dae"), true); } - { /* a cube with a normal map */ - engine::Entity wall2 = scene2->CreateEntity("wall2", 0, glm::vec3{ 60.0f, 0.0f, 0.0f }); + { /* floor */ + + engine::Entity pivot = scene2->CreateEntity("pivot", 0, glm::vec3{ 0.0f, 0.0f, 0.0f }); + + engine::Entity wall2 = scene2->CreateEntity("wall2", pivot, glm::vec3{-50.0f, -50.0f, 0.0f}); auto wall_renderable = scene2->AddComponent(wall2); - wall_renderable->mesh = GenCuboidMesh(app.renderer()->GetDevice(), 8.0f, 8.0f, 8.0f); + wall_renderable->mesh = GenCuboidMesh(app.renderer()->GetDevice(), 100.0f, 100.0f, 0.1f, 100.0f); wall_renderable->material = std::make_unique(app.renderer(), app.GetResource("builtin.fancy")); std::shared_ptr albedo_texture = - engine::LoadTextureFromFile(app.GetResourcePath("textures/brickwall_albedo.jpg"), engine::Texture::Filtering::kBilinear, app.renderer()); + engine::LoadTextureFromFile(app.GetResourcePath("textures/brickwall_albedo.jpg"), engine::Texture::Filtering::kAnisotropic, app.renderer()); std::shared_ptr normal_texture = - engine::LoadTextureFromFile(app.GetResourcePath("textures/brickwall_normal.jpg"), engine::Texture::Filtering::kBilinear, app.renderer(), false); + engine::LoadTextureFromFile(app.GetResourcePath("textures/brickwall_normal.jpg"), engine::Texture::Filtering::kAnisotropic, app.renderer(), false); wall_renderable->material->SetAlbedoTexture(albedo_texture); wall_renderable->material->SetNormalTexture(normal_texture); @@ -185,8 +188,8 @@ void PlayGame(GameSettings settings) auto custom = scene2->AddComponent(wall2); custom->onInit = []() {}; custom->onUpdate = [&](float dt) { - scene2->GetComponent(wall2)->rotation *= glm::angleAxis(dt * 0.2f, glm::normalize(glm::vec3{ 0.3f, 2.1f, 1.0f })); - }; + scene2->GetComponent(pivot)->rotation *= glm::angleAxis(dt * 0.03f, glm::normalize(glm::vec3{0.0f, 0.0f, 1.0f})); + }; } { /* light */ @@ -196,6 +199,8 @@ void PlayGame(GameSettings settings) wall_renderable->material = std::make_unique(app.renderer(), app.GetResource("builtin.standard")); wall_renderable->material->SetAlbedoTexture(app.GetResource("builtin.white")); } + + engine::util::LoadGLTF(*scene2, app.GetResourcePath("models/teapot.glb")); } my_scene->GetSystem()->next_scene_ = scene2;

y5t!&jqt-yDFz!W!9MuhP5kBv_ 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≫&LskVm*M-SU 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�I%e;!VkvzMtES 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%0D@RhnBUUX>1a>` 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�p@Hk=r8)XZ_N$eh>) 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�&Y)-3K;3PEK5t3y${`I06w0{p^&vA_JmQvm5_{K%e0vmjh5h?Q& zGMvB2t}ao}7AG#J14q;dU5{wq_dbbq%y{;(BHBNmh#I#Sa!gETKH3IZuK@s9(TKw@ zM6I@!pj_}wx$rY43D^nDZ{YY9jOp)zi=F+S7s2Qg5urch!iPs^dgFuve@6Y&HNxQY z8P4}1069wB*+jJi<*VrqBMvd5&M#y$w)X?oiI@z!9n2;nK{~1-5NT{%jWeIa zGRh<+|4)vAd~@mXt~k=zr?EGaK9Mswoiw_D7%8I22ctx(tZBrmEa4i#WU9sLpa!@X zH)O4Rj&5TVp*Pj(icx~{7PZr!J`5P~qA~~$f;0=gBXbFA2dW84tKS2VSqvB?z#Wq< z#+%I#)5wZLaXVgyjpfPh;Oql~ClYB>iuK<9XvDN5G4&vhT z4=@$BIYk0)z#37FBuyF7)?&QR7wept2PkO_`-ZLJL7x_Po{mX#Si6xA6b}GJ3!CSs z(g2lTD`yWo}-0Yc3L2s(h z^(cMV%vu|R_r!BmL%57KO}lp#N9j^S(ajh|Z@m##FZ~%n0*YBm)Z|Pf^JWR&esnXc z`VXatY?o1+3e-JV9L0acgH zGwkx|(?N66+ajQj3sol4Wf7N^PLP0h8veZ>M|YmQPWZm3J#D&BNmmu-`4mlG>nS2U(&b-*aqzjUc+ z;zRFcp9|WWhnMre`4uU{P8teOZ=iHR+JyS*w57cO350(-<+82AF4N4n(> ze8dD6Yik1UP32p%T?7ntzX4wBb(FoJj0TVn)k7^aAUc0_S)*&z!S}nCy^^|v>v7OY z2>zHWe4(iZh(MH8kmnT))1DLz&4$8_)|@r-x~FwS6x_bRsV`19v^6>u@9H^*>|>$+ zHu7g6xk}!UY`uYFO{R;lhgT1lYXA0Tbu(+G6f+JC0$F0kz2DXM|1(ff+PbTg1ZT zP#TO+O4eBb9PuDX?!& z6@}+sj;k5#{>_w=Z(y+3fH|<1;aY*xXk3O2!00s)&XT)hJ%DSD*b{5WCet|vjU_R< z8L~-KB6Av7#4VU}ioxDE=yCqI<8sznsU`=(fQOJc?r{QH`=#a=`nwRji4ve|0q-3E z&1E(BesvkKNdN#K07*naR4zo<(j93fa}i+pisxMjV%I&oBj+G@r6`1~3;bIXB;70S zpOeN&g=q1NgS4hPr6pSJbSee9OIWF=fk1%mF$VH#*&-Uxg@GJPnGOl!S&9nCDa{n; z#?Vr5X%vk+^U3iLljdhWqIll;@D?c$U!KUaggishyZBO0Esc#n8WB#xW5{~wA!%hz z_&0?lr$z>n?m_~quS0w8T}+`AvSBd(g3`1Vb+W$h4hALT-~TFOMf3!v_BC{TYcX{A z;dj3ARWzw|$lZ+att=lyjhdn$KKP7lQ>O71AaJx8p%LgH1YXV$bk9fehHAiXMxoK~ z{NR@{@saAw`_p-#XzHJgmJZlZjQ;WNe2n1+HmSxi%U-PB*P}gB&`M#pSxP*euolHl z$7#j>G9zJ>ah2(?+6VbgcdJsHFuV#ZxPc;CYx^z(O%d2zrou#|_#KGGbzRw#hX;YT z$&`0HkSPCh02i=c$O$>=*o;#4y6+_SrsulBvku%GqoiHY(*exGv1fd_ZMd;ca0BOM z_Q{Q$~e1vtcOqKkgse;y3i$_Q0Y{g#cCIz~<<*Q*Gm&01SVX2rw$JM~OY|1~nT zvs`R-XBVj61>X3p(RSaf`kpwA>@4rQg@)TbX^r|PtyNA-2k)B9%XK%fNP!e@4dAj= z#OoR9V0C@@AvY7Wt7sp*Ll~Jk|8Eq|kF8@va zQv`DKpWiYp+CGvm9o67WM>Oioc}Pj?)H^r(z1xQ?-kJ83GK;{5yk5?d`eb>tFEZ{qqep8%-||LAAWcdPG~8WbB)r8u09H5T`D81^GZf-BIH zjg8y;yX-TBFQkTo{zf!e-Er^l30$w3V0ID+7NCzEeq;8CYP_fHq{ZG-;YLKM^mJqs z%N`)B zZ)|WH*Q~%_?|C9Qat#0vkH+&O5)ut4utuwOr)-Uxw<&t(1*S{_15Nmhjflql z01tL%HwWH_Vax#^afX`)=QLEBmlPS9H^-hag(e#Z?aWe*`pZ=4(bwP-aAAQYAJ-k2 znJ6W^q)gv{@19<0>F_0@iKeh5MD~Y3YDy3Mw=ncA88lOuc;_-8HHuJm{C%vf!7kP+l2=d&zF zjb0AYztGHZZX8gpHt#(f`|aA?ZtF_tRy48Od5ExDt@3;u{N;@9b9^R&pRB+7t~*hE zF<6FU?ARkiV!=}u_8Gl8=RxCD=ND%Z%4Be#GW2hB-y9Wx&Zd8U_)c%+C+nYtVVUL$+%oR(Q|TJK>SCkDPY>$M#i2zg^GjIr#C zv)KUYKr%^=gX|ebP5y{<7w%p9UE9bVi4`eliMtbgz$a*PF`kJ2xRFmiVZbzoWC$FGnbw&`q9+P^n*(+UsrW4th;P+?f7j8ih z{Tt7&gBS3s@z&!Oe<*q8lO-QRA1wK!y@F@0^!Jb{@q40qjo#`#fsAr!%BE=io$!dvKMs+ z0;}TJqfw=vljq#z*6^^|eZ>gSc@@7oB2D`mo@L5vw3ykV%94_Pm6PAPZvPRK0b(Kr z!8B!AZPePNzhy!sn1heZThS}-U%KBZzi$9IBNBfN%d*q-*R1J-7A(tvG6QXcbT*j{ z=I=PS3n8zs5fj^b*>48Yx{cJ%WuXGgu2N{A8XC**Fk~i5L-o+502dPH{h3JIkO0+MTgXf&8$aB+CHO*2Q5{mrY zP5$39_)%pIIVobbvuwsfSGK+pqg&n$boq=LiWj6%W#BhiP|l;@oXuo;M`y({j2C zUXf_Z0e*fNa8c`K{dTi^d*li(u&8)Pis7cb^qqV-NK4aE69a^vIHH^h_J_lq^}^&K zkZ$#2b^6x2I$cC5Ma-wo$p*aVaiV}i+|LrY8)o&cGG4My&kKx_p{H}ZIbLYbYdRE0zB`Ms%tln?`;#r8-xobt_#PZW-O(x_-(D8EzTrBJa66{}Wh}Gq+|K zimJiwy)c0Ky#$PDYjj6PQ7;+A*^F->ql=ny5_P#o5Xupwn4(*?zeB#O=TVM^N}{;) zSN?yanNMIWJ@ZDNBDKy736kn{R`R*qJr&i8!*(84(0Vn%?O&t6lzh}P1(Mb&dkp2^ zIO_a$|C8ai>}i0O`RT~)PstL=K=EMeRo-oHWII_X>}Hs<^LEkmt(?unF^VyqF+V-{ zAzpe*tLA32zl^dIlvyM?QifZ*vlJ_B{o7IL!sPRV^r_}}daWAox$a!fhMed|JJZUh zx@D>0zNTn2SL@RrJALNNa60wNq6x5V)Z`q!&ym?|F-|jdnNPqTL098}?A)K3O;#kH z`lj12&1p{>(7EgacDiqobnC?vL)WU$CNVd#pz9ymPuoxuX2oqH5;W56N+Ao&@AKb93U^1BHDsDpe05{*W;x4Yey z!3oKkqj*ncgFVjL8>(1G)p5Ve5@hX5r~%JZErA3yzFS4>h6tPj zhz5XX8*j=0vyIrpslY9L&OSLyy$=kyWygkXDSI+^hs1%jlsErr&bm~|$+8DeRe#LxCb5Z#vp2SJ~0nU9^( zDha1tH*Tc~*g^M+uBVWU_xOnOQxmjQ;7w4Q=#Yw8PRSolUZkY>ti6%llv9yzz>Oe) z1izTK3D;h?CC92uGIhk4ag;_(7i8jT(T9{B&t6fF`7YtE2!`<7-Z6At!icusasW#`%BK-O{10h};Q z_llAaU_TtkG+f+2IK>1PqbP?(XY!Nh%{$Nf$3#MqO4LXXyQNf%UUkpditJjZ%Sr}j z8YrJ7JtcMmd8C5?XlG`mY2$h2zllfGiB0G|{}VkA9P2_jR=d4R_x7*^V7o)K+n0-X zcJafYQzkGZdwBE@iC^^DcBYwi)b`!&7a7mpAkR{R1MtHmBjnt$Gr-Wf4fZt5rv(_) zHX&zWdB_ofdPsE11q?6aGJ%CnK6>$t6%lF~Xu7Wi9vMAR*}>TH`SA=V38*u01DyA> z)#E~l)He3jX{oE!<%{Fc=23PYJ`5@y=m6!%DcRa+=0eN{_i*m6%d;u|5RcQ?S%<^f zRbAfcNPdBzvty+AV5KdK^2>{4OGJHeVK zcgyr?I#|t)CD(NBxnHfN>6O%}(%J3)1*R)IZ3>7wDKj{k#5S@?s75aM=zgTLMR&eK4qeu=c@`ZO>F*JGeV@^>e|5(e$RHVZ$>BIO+_D-a zKkeh+E&o$zoFxDP7XRUM-GNTI&wv45$Wd-Skl7&09s_A)y(sS-QF45Q3`;%K_%MNh zW>;o}x$84JZ=X684radAS!ldw($xRY*PAUzuIx&pjtDYUwRZpihxYBWOG+{V_W|wz zn6?xT^bQ8s_FzH5CWgNQ#}A9W?U&{GNt8N@oY<*3Raal;jc z>^+4>e}n5&zqc`g@gD&H2`Aj%6_}J=3qxj?N^YzJ@Gr;x+E^!b)Z#=!vP#WKJX^^UehV49Fyr6FArl`H3j4sTn;R+Ifu59bID(K%o?{5WB4u$ z8h#Ipj_PEJF)V8{%$dGHqButM1DL$TtdT}Dq-RCPv-5s)5-75<9BgLh0is@p`P=ce zfb$(j?|uW<9ku`2{A+}QoCC0Fk&5;Tqu~9Dk$kTW{MxaPeFN)q>=h%7{D{p-ZUixT zMbd6(XW}^b`wLj-!2K1o+21eV{c_wiYNyAvfOA*$E)^~B=UA1xnE;dk?!BXEf(8pY{dVZ(#g#;E3+b2NnLl4g0bzuQ*6(2P0qZq!|O=MuAR2 zV^mTMI#kmWt3VK}z=)b6fkJS5)L;8{oGW@Ho~UsvdqtN{7q}xB_YvoGi|Ow6|CHy- zs>u17qX1lbum#YYqR`x2-|_BEA=&kj7_ctPL5uUD#%$EL4dBC@7B+AdO|((WK><;i5qn@+$=IGRJsF6GZ$moB-F! znbn3gz>fvs4Mu-GYPKBsegXCmXX;uhKAlNspYY!V2$6HAS+nJIni9|jeORVss((n& z+L2u8`~dQdN-9Xwl^uct2tDD;3ydeVe^#%*&7^oqR^F z1fVwMfudA8v)ot%X1f1g3M3lP2P6;w&Hdfi;p9m;m}+itci0_D^nl~shIvJX$tDm5 zP|e8Nefhgxgk%(DRvJR&UCHn4r9vLo*gDy7dA1-J?egN-#ay8IYzr#mFgZSkMsQF3>oWiTBU4qT6N$q78C=QR12 z*^B(C@}VI@Ce8Msgp70ZIxFqTt>|Zy@Pu2lyhZ%e-kr{m#^hTFoeYNv=?Hk*FZI` zY~3V>Bc@Zd(o;E#6aZRQ{O%j!Se=M0-tNHX`z6ygVW#7WD7=u9OMM(r7xL*NPZqSy1{23ub8)p|HLNct#xWer8#a2Gn|fn24f%F@at{( z&pYNl-UE0~;Aa>C8KZ+Vn&ipf7l0KF8|(kab);=uTN7`{b|C1Mlxz;{&XrHX{B?#UVqZ8%8d`6&VI=Qt-V(Y30~I0v20r z+Ct%?&gP#$Ez@hc4yVA~8_m+%$0bzJoM|McD-aXO;Ds zg_1gXK2iYI<a;0%mk5C>`G#FFevH1=z$(C!X34Pk<(a2|SZ-6j%8cD*YJ9s5O9$ z#t#9pUC)(L!n8-zC;14R^aT(QbfD>V4_QvtWO+tYbTHbRx$yB9JQ zQ#~8@-DHG#v%P!pNHNHdjc#&#`}y~WuDbyL17NE+L%l=BjBt|y>4-~bl4Oqq!vf#f zmlyb7#`3+m*mM@s$=ypRLF_gZxw{EK$$Qx(&;pZemcTs9dAL4hg!qL_tse+XgB$7G z$+5ZZzRmra*hWJrNrgNjgD5ju&;c@N0FUSBj1vQi2gcLr=%oie(w^lFt7ui984Kx%NCzM2 z(4Hl4(_y7^kh8G~Fz03${*JPRGBeRp z{lLTagUQ=yOJ}fZ*4>df!wE1WyYN0)af|nz~OzfwAw%itHodJ7Y9&Bkuk>d3Lkb9{!Lvau-FnrE~o$ zOZ8a>ZE*nps)<=jR#QEG^1-fekbZgwlpG)#03Z#f?$gW3>;LAcO|0|{mb6$+<9Kc{ zOK8?WmajV((not^D;OKX!X2DUhq4VR-^Kv!73Ea-7&w%|1PQ>62XF#PS*rG>H=)o) z$V&+;FNxARhdbuB^n{dm$jLvJ9$wt)hT~|+t>&Rqhi_kPRyo5V7Y(^qi z03+KJ*3)poa81t|-nk+IH2whi1~zMmqlcEB z>DAnBWOl=wWe<3H);H<$Tfw! z9h5=YEf>Jt5#jdc!4??VlwISnXw(T*R)$JmT5X=v8#Q*bH>}L`v4QM7oPbu#w=%?& z79B7cn`<)CZjF!k^YF)W+`oNaKe9e=;L14SUJzrghWMq>OZg6IW$VnZn9<^^As; zQB6L?9<8E??MxmKXw-9hqa&pOKF+1fpLW;TwR;DxM)N{~EkkB%D2Jk*nQpX|a8SYu8 zWTP5z_kLf}iHo$jP^0&98W!>M)Ozu}+X`w&rniAU?j2ZO(>d-1T<-NdqhydU*1_P? zblP@TVA5+9jqB_HV*_Z~53p@_?8J)3OaHbI%(;vl5vlc5sDCfY<=&>IjO&<8HV*w|*DqlGHoX4<-oG5z8EKUc;8-yp@x@ve-vx7kRsaAX z07*naR7{0`0rz3pU%>taOg11pJb>H0f#YpB-cg<~Z|(_-<``>Nn_wfcA57)K1>o|k z6*n^QVQGBHYbag5K@j*Zu=iTP>)Wya0DmsvO)xSKOMo==`xZ``>!6@uJ(lK39~*d0 zGAwJG76FDjMIU-5@A5*V(u0EPAd_wZGztr)Wr=|#oEN|4y%Vq)tg)FcKobX$9n3E@ z;MTtRCBd&|mD%;b2^f{dJR;+y-F?^RhfxR{A|r*u2xmB5)a)khVAWia2i56xpp>*q zyc9*6BhE|pPayB7bB=Tq-uN&=w@1Y1cBUqe+G}?PN(e^hXO^sNz;4S@oK)I8r#X<` z%qolFH%E%v4czo)UF#LF_;}UdfBE<+-cdSiI+V$O8R6LNQC!etOjvVD8G)wO4Css*eeMSK;OJW^ zQSycieTa9s=DBJenT^7~XBNlDeKP6&c|W6cs2q8ULgtw|@&y7S2Bc#|$EY)#8`iiYayf6x^l|>merrmuSeai&SEv(qU*@x9j8kSNGs7hzL zF`Ny%WXOOtA%_ButHpC4&St$QGZ<&Q`&@?cHu!f$`0WSqZx6XO0Gt}-_%CO#GnC^M z>U#ckAjrAh4gCJqc`xZ!f8cv{w#opQJDz(RQnn;3S(8n}Dn;6g&ML@LGFjL~KRX>M zmEPK)la?E8qRE0zj41*s=hfAHOn;1gUev3h$1F1+@*dmXlK13nvU=CzyQF7QMtz)o zo_&`Q!Xx??Z_4o3Hg*5nYtvWRgP`dxO>NPb&x~+d;M0-mf^}}mdsc>48pIyDReU1H zO5hV7xZct4*N|h@Wc+qH)|=6OIxM1(mIttr46wq&=};E`HahEaY{Qs=V|W`!2F@7& zH$3*5BL>?(Vc%mhlf3g==bU!Wjh(8e3V%n9(4_<1;?KfbC8zjrXUUN+XVLHG1Lt*T zsRBdkDD=`X%Ju5SKwS=;bn6D&en6iE^$~(FAt*jn+-sBF)`@0X7W#8qwGg!22|eUk3jVVE=KfFOTLF9!`Vt zV>tg9UO!QbGBzC-BQgYjUXJ~Wdb+Ps!frCX?INgKH?r;+9^GCs9ey%J^(^Dr2C`g0 z^VH)R9*vnSdK0WytUYBg6;H1hSFQL&bT{2oMjJRLirvBuIZiFd;gHbA4h1+@)vtef z81eUunH=D=sj&qL<_?eOy%{-n>68HPqTR{0^>T;DR~NVhZQ0a`GXMo_YzN&s4bZG* z=l@A5D6KKdP@LX*Yfb=90j`FLYDOa9y%6gGX(PvgP#Df5&ik0Lj=f6p3J7L18VLeA zQq&kTqqkDh7msHl)9t0Cq&&wj3Dz*)-NTu1QCJVAMT_r~jg89n$8!3I1CP2zc~6Z$ z2W5!K@K>J#0Q&^S3wVqQ)fGz^uG*U#sjSN*_4q;>`5AE)kkNxsGR-XRWZoff2Ek@H z)*NG6cFo@n2t3k9wJr}@U;1at&_|;??z=mfj4~|+b>H;IpZ(*{-2tG_3FL|XKOdE# zm%zco}i( z`n`sIIE;!0ob=Qk1fsD|z}LU?J%9gK-iZMT^pwFPhZL-MFL~($Oyrq%M(cn9ECnz{ zJ|hBkE1KIKU=C;;?$VleIYWxwMR z*J=3SeTQL&M?V`mD3ezkpiU>6WC3NU^x7vse@3)qQ03@G>2EJR8qZ?4Z#kU$GuruV zgj^258>==T9j21W-sGvW_&()S^6G~i&^!Ny z5pSu7Rc2j@hKV<_v8>Ln6K(%$YfU^b+nu8@!^0pIuW8@J0Xn+vcsPLMut{0WeJKki zN@XH@?UBLLXejSNbk^^kHbu%33tZ$hdeZRb9#uPTM>t_j2DFvV%F&Rd!9o6)40v8X zN^hZls`RPvCo>EzFzQ7k`Do|WWok4Tw!}f)ZqZoNN3xwXauS9t7u9`hxjMd1rbasa zoIvH>L$st9Dl1}oWMHM%*u8|3dUXvygczqZX#_Jq_HeM?&Zo zOPmNGduZ&9EWZItH_3rFtmOXC=VYk!fNTHljC8jRUnp3UiKoht)7=XLHHS_*k;y;V zmx|7fhmP0XH2QmBt)|QJ^Ipyly_>2i11a+9yaoanA)IPt%fi7a?CAjLUnvy(<$e;J z*Jt&$!G+O-JY2QB4vh&KY?k*(OVM*B7`g{fZuz#B6e#{Q{wJFqrH62Pfh=9#846=t z)av*Pz*kHjxDM)xw_(0R0goFPh%~!B4dXwN&Oczd;n^V0zdV4JfvMDn*SEpGBkh0g z*wbp`1D8c-WWN!q^G;=Eo>A#z04GzzF%091CRI{)>kb24^y|FjW70dv%UieO@<_|M z_r_aeA|@RzOy!?4ge~r2NI;o|kvpQk{(RF3vtk6`BIOPWVIx6kJeyMZW#9?~kAIL( zq_l`tkMA<1VvpAudyd9e_U}NYIjB;ZZbta!u?B%Mf>FZ}P^pw-Bg!8RV4s#vP!tJM zbV*FRhT|r9yAQ`c*bt^E^OIoC2dcBMga@5H?i~n*k?lICBT54{9W#^8nSG0g95*bP zT!4QFJje>=n$)z#-k$HiX7C5Tz-R{PmI7~iWPWU~OdTMeBco8yKIu5Q=zUxR)mLJc zFoc8}9UI*XtEiY9H66^PobsZX>=3?6a7uY3xN$sFvZcuNKo8}VDOAI%%PwV9Mg~V2 z`Wa2~Mw6pxGl8(Y=l!!lc3J;S-SmD2{HZdQ$5#U_U0yznR(^G-MK>l>&W|Y9+T(dH z+N%_*42s9Jh>!Q^E{E?a5HAzlI;KbPs%W)u_j4 zx87feYpFC*hFZ%G!3VGB9rNsVJHK8Il;Vi`S5tv>M1y=cmAAQ$ZzUSLt!a?~ zIqG6xV|{Y$c=(~xMm$&1h5@%A~L%cB{v6*e{p?6R`-y^b>1BL}k z0taK4(q>$zupyq0cUZG+JZOlG%|4yF%2rE*+!@$JD2e^~KHzV;)$~Ieyb8)u zryGzNmvdP){!E^eOpccbqiFoIUBJ9|IwjT-Bg@m6oz&k5C)n6EGG1q{ehdT3Ze?Io z*#JDxjdGl8T8{3uXY%MPgDYP5n1Q=S?>f8Wt)@GDR93~}deec%cPKDu8#OHki0KPz zGH@WVV5)>BpFT4gQx8&T#6GGY-(1W_zap}aUHBSJMrS6>tM>JzG0ASnkCwyboZ10oPY#4P;s`0uWq(4ETvouxT90 z_%&dCMYP*rzgsGLs#iKv8L_(U>bn^!e@C9BlzjnODU47{EzD z5OOi1(ASPh0E?8%eNw_X-(k0fPFiD(NQvYc+l1Pc~khTQRzsLy%6*PXBxV*oIt`6 zh`KonlIb+CugF-rx%OV4o8S);63hTlUFaOpy!uS(zC31~@~)-`h`>oHT5b(!Q;=d* z{knvJu_OJu5cTN@kZNya?XQ}T#AwSndo}5r0OnWF#CI9^7WA-%cFkmJ&n-l#i#M149)qq4mxGY_>m0#s3zPjGHl4hI?k*)&Nq zOiG_hSM`{Bp3Y9^AOZRq|3iVPEFN$B>XEPxe6k@W?_bSv=Hg@vAi5eO>d~hn9UqE3 z)3gPQR-L8#K&VV7!Me_`pS}Mr<8x<$U1|j8XwC_qvp|rc6fqE+?G1AxB5QE-pp6lF z;E^ULP|0;YJnc>1LEvxH8Ou=VKu>=kC}nCZz>F-iswqUJ#xsiEYv`2X*A@0hk_rzg z4!}uh!iUni$`a9e?OA#>0fXofc%BdGJIiqdAW-{I*LXRY6fx_~S7-9Ex64H#hff?} z^OER- zduK)fpg>>03%$X`r9Geb+;CX94hj5(B?l^UCMp|HbV3vI|7NAAF(x zOFrqIb+^hmlx!VIBS_ifGuC{rk}JzC>38wybXR$=T92MBox!zay>c^pjrVLDIm)>^ zD!RDnazNXaU4R*ZI89E99#w1(zAV$wdnumeR`Q>8t+hLob7#qTWlynmc2-kZ(UZR9 zD2G4S{#d_1_a|FR*}jVCgKJ%bv@u9a)V=C<|CjOK=qCfHn>LmO&2`7qH4XR6!q}8E z=q{|9w$QG9?pNuoY{m`H&L{^+59o?99(vZF|K2g3_(T}E>z+;;iBEC>lXIm&ERbFGB zf#^(r8rIi`A#_`Mq!f9_@SH2WW_&-pVMbbVbknpjTCO5YvoL_C0poWVM}rKtcL4JB zClq|n#7y*o>P+guplebFgGLsn(K{`hZs6j@T;V8L@Mwy`+D$Q_94dnZa7)=u$Nd$x zo;ZN>S7Z$ga~#_III*`vcf_I5mzVQl@x3u}?;%?ibVlx5NGqsu{oljJcXl zBYYo`VKPrSLL6fPN22U7Vtt449HYA|vs470x}iCMhf&$@yj;)#mcv&VYwL*AOEpW0 z#wW@G#G+PUL}=;81??rLf7@H>9u9c%Mp89iSD7c_Due8yL> ziLQDH*pNO46~fJO6j#=P6{wiZ&e&{Nw`e#mIoZS`U71S3Ou*n7&G%&~ASHwsf=}>+ zOz}=oDUUG~`35qQVN3_qC=mlNZo~YxXp;2<;O#KZ#x{g(+OL>Wu+IW-a*mXTf;7PK;f1R?9#5&AzWZh68V#->0O_trs*$(WYbYO->meHkjEuPgzcX*W8$ z^Fkm;jtNbQ*#HzaP?pmqpJybC#G}36+=QpAc&Wf~T zrI0%({^U${$s<|(*4{_L55D$_)CpYDV9E(9yfc?kBlV;E-TF)`gQO10EVUD`--h+8 z@7QlQKI}uSnmDUl8Xxo6NhV2X@eB z7;u)lPBhx1*g9j4_BP_#LESAq1Gg+AG2tlM4ly3jAHBe&Vk(=?^4)d-cp1hQu)jPV zYk)j4n9km_1&{3!rTqr%^6*$;QD1I4`nd7k__wYneoBvVVv-*v`-H!A zmkla5fW*%=ISD6jxE;6x_sqNYcOM3P8SFQJBl?@EA@|{h5qw!-J(5{E!!}_5jdK~7 z<6u_yM#$X#imdDP3s~HfQCDQtf9xRlW$XpTa#CfoioQQ+I7_>v1F5URGgbVZ*lgE+ z9wnTjttQu1$GJ(D<3%j?8!(lLqJHPuxVrIObF8>Ad%Jz!FO(CHj*;QPhsPDh|Kwfa zWv!IdD(E#Lz$+VP-@G3nO9Vt?ZiYi3E(M_@Yw`q2CIu#F1nk?x6ANTCt!IyEUzNP?Gy_?CBNZL+!yRD38l<`~c$z z0f?5f!==TcXJkAgZauvX&;@yoK-qCYb0ZrbO7JMUi$x$0l+nUDkYfV#H*kDKV?uSG z?(@0B3*;FsRcgova81Ye=~%BYAlwaKH`2)1uQ1LrX$UOCNuy!Et);#eP#7{Ie*j#L z<D5q5f6h2XJ!b=1mY}q7-A6ZiGPQjm=i4enWJ;+LfNp0t zf-+q6Y=TdD=Q1(a8x;G{R$lLz}IjjInq3gi#azPSD|m~8+AU~09p z>f)Z!%w6x_lQM}kmkLtgkUTJ1yFU@Uia&t=7g&EB{^QtJ^v75hGl1r7~)PTHDo9z7(Os2)QDKQC-js1Q4fifO>{)u8`YeWv;oqcqIYJL zo$Tl;P~S5J5(ry;CrE0FIPoUXmF|M~kYk1fB6K(8`FSuKY|uy% zILYTy#(5a)*v_b*vn#V@M%Cngm&kiJo9|<7nNc;^V~d}+WzmFCJhUY<$S>kq8B079 zIlPTDmB3cKZt**MU)B%9VNMw{Y(fRvjOBpmg-cdP)!q(-q7BuE~4p{@eU}< z6HAHztqey;$P)3z6t9p+{?Plm7Uk~6W?&bvFN425$7rn)^Q1MRYqqGSTiYM+FKfVg zo(`+*04`QhIf*i*&<>}Q{ui*nEZ_rwCo$KqcP&E(H2mZ`;5ozHz>LI~;ra?=;Mf+9 zlsgPN8Sj4?bdt9-0zZLs91|8z8I=)1=Wdo7>RWoX>Gy||iQjT4YP!H+@X09uRMt8W zj64S5hcR$tSTstrl*Bx<<5KNfoug52-?P#7aLR8d9`Tg*S<(XF-j-P1ZW?3h?9eQ9 z%kjHgSd?^g!f9k&QTC7-)ba$8e znMEUmi@fI)=EJ;F&fEPe`Yzdb({W&2gx@G5k+dF|-ShsnmcxLP&Q0IQQjXUI>=ll^ zYlOXFZp`G1GjQ^|oNsCR@EOXix)Gn1ePL}s%JdMvldaH$kxB0;IV1Vs%S+&n+bo;S z4RsMb5so=IR(W5$-K*r`T*k)b3RaSihh=l+bs~DCoB(EJ$b$P+Cbq^i9u22wlUru1 z%D&8U;-lHDU3VI?FIkQ#<~!0!l}fYS0nbtyh{{s85ju6gfcbI^${h6|I_P-xi-GD^ za<$ssWiZgI$Jcc?%yyN}?_9vSJp^=E*>#_Uix+e53yM`K^mK z2{pt>x9)c0?SdOxXM1?oXZjbJPT;2rWtCDmqkr8vk+MqA@h3*!^tHPo zz5C~m+T{5rQ5mqg7kT>Bc*Wkq?32W`zmO>_n+qH_Fy8DWx=}MzC(yki5lyvx_98L) zG+@T%Pen=x>&J(P#G9=2yoiFmkY7xfz<4AvQSL%yl3 zw7*~ABmoPcHsYL*7jRtR2(Y^;;tgQ4p1nB)RMMbG^?$v@UNh`Y*OQ8lxKvPOrG&;}G4GP9gk#i}s5NMNokz!B^ zWX^RLO^W}8p0tM@@3_8J-jWK^2))@c|JIYxUsnO`m^QIgCmD&aDx5xJ# z@?aenGq9%wmSy`Z$&uqUnD&olhJz6l=IE)>z#^Y{aJ|rI z&dqz`nf7$i1pUoGNqztxQ5qSHGCZSX2kD(oBjcyQS5M8~{EPsyL?%#*8$k7*@hAUE z{3-gZi6Nb5yEi|*UEV){d{8#-nSZIjN2WnKcg2g|J}Vxu21tNR)BF4)?s}{*_sDUb z`P}w-=U;krBb`MDyPMDRft&+B;26%bFkY_qbKKFp1_E6KywWr33nTu{tI=9W!>YsW z9qr{fkV9u_^e_oVKc&;T-L%f%5&|eE5w|I0NF|QF zG(-+u{Zb!UxOI-yC*2q_{SE+c2EBTPh>k=**^tjc`9))irx}lTlE2})fPIIPOyG5| zro);JhSl9+Ap$utY_Ew0QjdCGW}Qez8Q?EGGqIW;)1F0VoBNkTdMbUIYl{p%ONYN| z#0??iHgVLWfvUbduOr@R$Oge%&TmMLSpUt;_yPBt=ht+4(5WZJ*cQ4gN4ic#HYM?B zI*4C&9%)RIwx`a+i4|X@2dyb-D}GTWNC_}!osV=$&(44%>%5cEJ}=%=Hj`QWzsf*0 zBJ$&ipK0Pvjv3;8c0J{J@*tIyo*^=sq+tWXpk}nyCSd;n^B=?51GYx=wOCSqe4YjN zNqjKMk(1?lyRDsfCB3}69%!;ia>tZ4K)pMF#2HSa?kcF)q^lHL8&$Jx9c+~E1fkk8 z%pHBujxXT&$0EC1bWdK*X0I-^bXJD_pu*yVB@jFgzZ`D+h!7I=K2uCzyKj}zdR>3^uvkKTq zFNG{O?89@NYamOi*XhwPd&Gw$qdaWzn?cu}?IhZB0LNwxq!V}l+4T~ zVW|G~n85gj^kj;eB!sjdft*F5BV!7S(JGGE89$Esc8sNlR_suF8vH8+qJDOdm$CwS z%Cjp<^^mj@5^^KhZ-0%j^Cp>mkozr1#-)bDVA&_1*)xPXk^a z4uXRtWp;qFV@EXW7=X=)*v6hB^64ooroY7jFQ!XKmX(EmING2|zl{s85$8eeHag zoERHH*Dk|Z{03D0rN9}_)!h;dJPZR64=W->pXJBr_ow`k*Q^Qn=RylZjCQW88h(08Pb$$ada7>yym=n}1E3P}d zyF)&Eg@AXkONA}i6%%-`JmO-M5m~k)%rFt*nC<2DY7Sq=un@1=s){B(hOLP8<;$w z-7;v?_LN>}I#=|hvy=Rp+|+2YA#s_`zvO$yOiM2 zdePRto2NvzJ}0}hldz+9$#T@1gwC?^$SLh`+{o_JW`=Qk)Y3H|u9>De%X&EQa^MIj zz_~2?5PVx0?myr-Ft3!C-IV!hSwC|e5nT!6KRWVn_63kKzmE_&>tcq2SG^)o!eD}o za>a9w%hQO$0qifs{)MR7q0yhjWdU_9ugCH~%UIu7`(7`sA$kcT2&9-h<5j10&LAO+x0UJ&soU?;6k(jeqnmjeK$ ze8937*AxpejyHwSG-(PE9Y#|!4+nt2kM{ckcK4zBNPB>o1ht>fM%{Jpxq}VeBaPOz z0(hoDPl1~rZbipFB5qk4as^+^OVJ)3hzw(crM2Rb;dXncw~m!!Y^{Un1}Q=^xR?s)qK{xa&spTcnIJZQh) z8*imUs;^P9p#k^aNHKMo7jSceq|~#d-_7+rF0p;3v#9e$M^ex;E&77wf2B}*f^~im zVUb>ItRNSKE7b!6y)w1AaDn``Ob$^qc>*>)&;6GCUuKKbp)Ee_FdA z53G=MCpk?XL%Z|r*U;|lQ@*7>5uI^=39@z6hBD;1CiOR(S{KE~;)m>E*BScOvzjjX z)GZxHWUvy?=j31V{hrPg$+%wnJg5NnE@#ka^p=@BRIf_TN=R!1m$r0nPupi)sc9M@$=>SFN( z9U8&`xx%+5dda-!r07~{>ZSVK*EkjyHft|8PNngLxB3h6!aOlH8!%-`ne3}6{)s||9v^1 zOe{hWF-pj1EpsP863A`9w?#zxcsb@7qjuEWz%Rr616)7AebE>jh#DBCX4njXWHSun zFpffk1gMVL@rx0{z1dy;zwvx~0pql+b)Rp;_y+6`Fuxt+a(YZ18ppFIYwSdTY8dE@ z;4h}s%Lp)~*u-6lNM$IfA|pNI7HdCm;Jh7ELdT+(>~^#oKd(;Wy!Xxe=VQ?sp*lqa z@QNt>ebDg#4P3t+>lI$nueZVeYw1N>R6GJv&TxQ6)@2=(2l1*|j5BI|EMT)aWLKV| z*Pe!}GmzICO-N7D#rOg2jcV|sMnf{zB%C${elyrQts0O*qt7P>@bJoxA%SKk$mM9_ zI+YIl7e6$il0tU1@AmFqW}u!I>U#l0j!aCWvV#ykSG2f{_)&s*paF&#LN*xp z%HM$@J0c5sMzq;V5V!s08rr*ayxOe&?soSHYEU$xsG(aa4P(Z_d;`ZjN;=@Eda@Zc zlyP1b(V-Q5b6J789;F*VM)$Ti$B@z?X9)O%z~#z1{W?$xRD~^(J87hh_S6rs1wyL#Mw?Rn@x%Zki$2jv`Wpn*k)iovD^x7W(sZ zlAF4c-bhzvDjiU&8C~_Uz_Z&w-}MRJx`Rd~0BJ1s{kMDSK-bsv|G_(fbees=0 zgSMJZbs!t&_F3~PW7^&ME8Sz^D3#7V7GTRWJ7FX4`aYs3%bLi(AxV1(c`0LE86)1- zwaF*D-DxkQ$?Q0uWu_~OZ;AP)98a_UT?W`_GA)}LD&oeJe+8@DJR7>=1Z=hunB0pZ zgyMyV!L{+2FqPRW%~6tuSC?l^Rwhv=aTmX208etAG9CT7O%CU~l?`$rr&)Y{4X?8S zn~A66M*JZh)O7SC`byf#F~U}Iy%@d8Q}L)i|M6v_RmxOF(Ys8F^I(wB;%vHXS5JoE z2Wt)y#JI}CpE6VWugSjNA7;vUyQ8UNG?tEY6-LnXC6(W~f~mSDYb8t`vSlMCfSFtB z?|-F{58CMZB(v6g;fEqv$IJhog|8K+oAHx@! z_Hbn5w&U#>Zv^=Ea2njVWplqd0DC#>yV@uo(HK*J#%&mH%ZUkV0qgQG-p!JMUl-r` z?eMq5H^+p$40svtFT?#}`VWOi&4CVYde%917qn`7=r90@p_fYlMKB?7qPyf6k&YBi zk_>ML?jMeE`~%E`cRGr|7128RJ>k&-ej2VX;QkHVzZ~mpW1kUCKbPUyVN?rr`At4~ zBWsY<*dx>B5uaB?T?`-|PXHn&Xh6@JaFgtn07-^Kyz7NX&tB8<_BfAJYK`vHe9S+X zH|L-VC^!;iJbxhx<{=uBYJ#R z8pq;2l;PL21TrgV0XZ&4op(<}2?})}als?|~)2UIWz-$^g79F>a6OJt8iKO!MnrcTHzdHqJqiv=ZP| z13=F(5|EP<9LTbvrr5HaKs1F?fEj`Pq&qj{3~nkVU&!vX9WdyR+3!ILtMN*bU^4>c z{MB9d2zNRRIxTtq-oshIdzUgEeIKNcZcN5W1}$#Xy+1nhqTZJqu=;juq^@VnSZ@6C zkTcEFlwPeh)m{>4^gZ+6(it>pP!Sx-q0o&o8MvCdFc`HE{Rq^rBg(CA(u9G=9*_-- z66BNphOVpg*u=xh&<(>)V^w#VdvBlnx39c^{#1VeIeZh$NDgA@9p5OVI7i_OK=&=y{DM zR-xZ<0CRed-i_diX&6E_Yuq!=L^3*^3!>3>uMa1@?!}w#-Ldy{7%I!*KPJtjzERU!iRv2Oj4azNgw~*kd6bWAATX5qIGPa=PCnLbS8PP zvubP5^Shc)J@<*RK7LQCUdE;*yvBX{2)GoBSz>ta%5fBz<0eS{Drz}*UOvkdz3NpOnatRcbdv6lv9!@ zr$(bYNT>4L(@Ca%N}lpg*LHw?Kn^}f_Mdur<@3m^TQt;Ye$J4STJs}AQgrfh(OtIv z<#@_xSm}8^i*%{;cm00X$&K#QA!4XNlgo~%DK)~AiQgobC_lF{J`hvP<{gcrZP#Zs zRqWwpq(Iyjy8jppu(vj4kITt4xqfJ)e!>cf92>A7!}a5MZ{TeXyDcN_p)A7Ve9&t# zq-4NDq~Z5hs+R7Gr~a7h4LoYzq|gn>`Lb}pz5)C8XyWD3xNCEqi&F2x+Zzwvh(o*$ z*`0T;7*hi{wE`nM&lk4s@WNsZ{)iEcd$H+NQ+QL)7ci$XQzNn7(R9<;YQ04tHNW2e zoB$8C2eL`_i&$2`DM?7QLy+opqdvUHIs@`xI5nK3a5!#M^ul*#inoNZ&XxdsEN0Ry zkI0p`QW6;n+vxlQ;050GRmQ(%2j_hN_Jyoh&GqYCb{QhsJy& z%`j66ot$Oau#`@w4KKN)M|2>=b;!Br{k;SQx*v5?Pe%fIK?ayWp}>kf<7v=#rQh_P zjNVK`Z?uv#H06|PhUfq5r-01v|BhON+p0wYAU3;hc*yNqdDEqez1=P=SZtlwYNp|Z@#0~Lyw^LJCva;d8G2RhZ9wICE!oJnL!$z z*`Se587n~B%dq6=KZa-7LzLTC>KHY1eLBV*(_8PP=A>{S43IKR>CJG1qvpap8NeJF(NzP#blSE3WPhAjt@ksy z5VVGz{D4N|-MCXpquya2*j0fP$xC$>PX`a`oT!G?XQdH;b4S+nN#44*rQ=gLk))qa zgzaFdX}m9N0m}^2$efC^+GmW3*Esq7a+WgO9u9!s1vR^zE<}fL8fCpxPRYGkJRNig_f|(xdV8`zO=Esbw0^^NHXL3OEbF)#$1nl(a?zn?U=G$<* zBf2~%aD1^=WRD!9axY;0M1wouz&I>MIDw6Uet{kyFG4}x+p#j!IK5vB;X%KT*aJ@F zSSO{`#~nDEQF)bNYclQ|u=#j_y2KE*2NoC2j%ih!{ zGdy-VlEg#ubgqMI_5vLK0?R!-?#qB-(IFKRS&teGpFI023M(qrv>nbi zJ7O9{$WBxwL2H`Nx?x*%woty01q^sJ52Ad?6g{iyDrTsWPCT0ghTCd{4r^6KR|y(M z0g=RA;?3qzNcvN%HTPi_>-C)F-oPK9ty%4lG(cUO=vJUq07gb)2Q|E-^@@Hx^W{0s zMvYBzTN=zs<2x{bnqE4dy1%FW+H^WEgI3gELi#>=TVIrw%0zlZjI8L%)4H+*l^`!? zgh~kM%tsfPB)AV_#qvBbs*&!)>4Q4tzsgQ@_u6+8E(zdA;D7|F9%rGZd+ueNfwFJX zX}@pJ`qm{qM!HVE8g=G)p>T#3ai)Q)8elp_HsX1H)gHakNa{%f^eLe09Dzt;PdT&1 zS1H!&?9vHR^}}f(CqhRW;d{pK7y|?cvyP$`+ThEJhSC6tfQK7$gl9Ku9tM%uzhxOs za{xqB-Z0Ws=WULh+$0AOnyeV3c)Dk*rcBs%zDYCmM%Y622!QkkvI%cG`n=8?BeGyX z!(RGmuD~?o2Y6rQv%mz#D;i(R$#2B;-C-I1V7&OmfPGqx)}>w*|8Jh#gJy^kHl6;` zEk0U?&ET2b!2Xu#@>D}3zpd!JtwFWo=BOS)N1apNf0vh%X?O9jNJGIdrA>Q#hCWm} zq2xn4EP-qsyHRp+P!=V$kkZ(Q=^{GklsEpsREhwDMz!`M{BVyjik-7#)wcn;mntXF zdKW?l$%c{q?HPLy$DyM#fA(|#I-6~A)oX=a=0G`_$O|gp)r5t`65}9T3!{eVwjnbk zNGKtwfRC~TWv}UuG9V@Vrz6##Xd@=i@^igc&o;_q@nO@oNi1Bh_kWT+CZG}DxI8i2 z2%$C3_~3BhybNDgtomm}bor(y1@xqtyt6D?5AU@zeZ{g7ihmh23sm;P5U7z8ga?>o z(fBPuF&A>g(vhN$^j4^_m|`TwIgCb9n&1IZTNZ* z_^*lke}MN-JZ$~|U+>rxz^MaY!2T5m`qedwiw+j@<>C=Yehb7L;st>b%Aai|K&1?NiOB#kUk2P!MzdJQ_ND@}1RPeG zMyTgSWG|*`fS~z4fcFWkub?y2y$ZDQ`>zyEt~CXqHNc^LG-10afU^TRL5?D-r2&w? z;1sqI6*HcdvHyAeIo=;d5og z3A8zor3?x7;5nUTT6B~>+S$%s&eCk|IhwL;VCm6iT{2&vPh*u1P}V3qxF>-J(nY$# z6L?0XoBY{=p`o(py)RpX3X45L*43bdfKCJ^5Lp8%Pgt}M&yX>4F!Yl zETh0TjlVI1_0!qo?al@=-7x_zm49|tHdKR9y-UV~#qaw;;3xTh0x!~B&S}2FAXr!J zPjsrjDt00G*PEd;0ApX2<3N;#iBEWuS)(exL;)^!K#u6KS1B9!?q*3-!82aQWCJm< z0Sl&((XfUX=#Z*p=;)jv!)(ERpGZ5xvO>*PaJ$cgl|7 zK}*?X;@ftfu5&`(wa?8>^T)-TGZ!&1kGv744)n7>?Y8Swf$*3#@1%Vn3rs48f4bm`FiDcGF z!z#_$QJvu%mZ;JR@@D%^F~D=y)h!D-eshfjz{^9>nDhTzDPA``wP-<SXkK~Lo zf%_M*Ud>-Q9doeEz?q@Recy|{T}YRbJC5jKvqs56+a()rZ!*#faXtGsA!~s+rk*w^HH*+23gr z8>o~;jxEt}X3i3Oja~XLodBelEWJztt)`Eb@@>jCK^db)!F7B3iNo%CAtRPfKsKGD z02yGl*2hS^mySsclu@U-++A?#_w=0WXdz6ZvybX zigATE0j_-kdvgu!P${Q@gd}bNnhlO%;`>kUFKhq+AOJ~3K~yl{uoRS&0>}CBZH74= z_yYV4=ZT@BTE=;hxC_86rt^1DD21ozV<4i3WGoTY=J-PVl%Vk!fZxFs>o)BF8NmM; z;jLU0mL&famHpq)=R{L^uHZ4UB)duVoqGKHlN<8Y`la*DR-38W9o} z{Fc%Qxe`W9p4q0s#_@_0KDUekrajwXm`50alL8ov*&wP1*H{$x)yPsA0g}!~9i$Ne zMWoZ?T&LkUky9#q+To_KP2rDn-b3~K5@lFH9IA#wtW#YoVI5Tc@;E;&{P zLDpR>#UT+`tyyQLZ#l6v4)vZPhnDmf!Fpx^bVW~ao{o?vD{lVVoM2aHlrcjqulN7R ztd?4F-6>^&=sL$h2>=P4XrC8ge~i;w9CkbQa>NKshfmAe>}*;o&}hb*dM~|Cr_JVi z=EowSx9-tNb=ch-8ufKzGY z;GIiymhzAEy6AiX??DF2Xmlb>n@*jLnl#nh81NyPZXs7wH5Th^&=n5I9=) zihJr(aQvxs=i?Yr_vSRf3&7XUbo!sb{uOIi*6U{0Z0bm^4+BvW2Ba?O?Zvwswv8-h z=$Q!VsONLDB=jH4^1(+*4jK=iVE1}^U@3ilVwmiq08})d*;(nF8PA{TnC0&dL*bTH zMtMJj)JZzuE#1^EMgQH_*RRAa0&eL9B{nd(j7Y04dvh#!1~8P}cjM74+L(=fA^5i%{_f49%3m89DXKp{h{s!#FIktk{plMKgnjh8BrlJR>Y`rnB z)~IoEuXm)z0_+Goksi>o!nitVV7Vb0=Y7TJ))5}j{RNDd<28WSj!|_Q@ujq~?Bdu2 z!2mC01faxX#2BH+Sf-8_fRohXo_Y2`ZNU!2J zi&@4MU}RI_IC!sFi$FsD_B7bf+i`Bk^yr;{)8PNH_^Fg;ugH$tpzkA%4!mbK51`b7yd2^;aa01(Bb91MLFTpB=DXK7P38ia1_5H_}D z4IXZ$G+h90me$boI!<8x$Kk)C%wd2{B7Y*w;b1*wb{al_ad@O;YCjuvQZ&P8m%!HD zKMW7xF?Izg!RX|Vp6!zIlHLbD8A`d7H1MVSte1DunKYN{pem2&io=GR~ zBRV97ESfiD!?W(Nk%zu_BbSpwj#_p4m7`;OMVas6k#(f3Cq|TKi@X>ekWb^CO})IP zHgq|V!$n1Rx*4obSo(gW5_uh4!pH8jxjPxC$2;i6Qkk!}H^)`|OU9q|Z+p z!w?o3 zQ7Wy?dFrMN5Knp;E27aob8UZKaxaH!Yu2{22_|)SW+!fBm-t6U$;WfbVO!_w76#Vv zz{m3&*l)wV+BzILzVM;HtkIt^gy?7>oYQhTQRixkM`9_FfVFkbx~uL~gPiso7`$I+ zn*R-to?`XkFwm)oRHiIFE18u>W7jc|Bg1l?W4C6+B%mzW5dAwIQ=YcRyYa@;K|=j% z;9X2ahA;J3X5JW`xC})<991NIm(WU`$PdU1AbqltnGXHj|FZDA4*dAH{-sf&mr;MZ>Qb zu)bpMd(_NvGi^iB#LiQIjAc2KKBfc2%dgY${sOKqL`uB_2WyBADrSu|T4#(mSa6P( zV~XeqR$A;G|0MH)Ryv~l(fpJEoylVmOhI@D@ zH6n`>yqqrR3{l(bOo7|LxD4kX!}PV`lM5^avrg=S|5!OtxoWMMy zp3X0eTKEgVAGGE+O<02IBHOCg$ADp;Y5B(yX*QD+3zk5g0LnLTTn_(n;Bw4GFZdC( z@%}Y{e}Mac8NUDH`1!q~q1r}t1bxeCW7#Ne3Op#1YL!|krEQ-Afxtd%g=r)hnNKy> zI@`g_kj=EL1R5$k;pYy4r$4~@6B8ZaK_k~`uwMrJjtoiOQ5qGt#{Crb+uCXq>b*~)j0_0Wp`gk zdBi^izYI+omEN91DO%+V{XeueZ~sBLppR{f-`iH8Xb+=DIqqTj|4-MuExE4i%7O_} zcGZ|`_l|S^{~tR}?_P6`vLzDzfJ^}LSX~j0y4ey%;(ke30rMefd>kP&YF?r6DLIUT(`H-iN&pz)c(?AL~5mDfGQQyPPq*GMH5_Y?4D zI_b?hS;{_r0seI2LzH8E8xKa$%vL!6hn)Xbd5~w=4A3}%X<(c2#M%=?XK zWE*(B6nI>et2sVbPMVA|(JcHHpz~eND_P!Wx_9TRe~BJ$0ov{bf6)8wOU7KMf2%;K zH=aznAvxQElKq}KJIMjHTUGFifs|4F(Pc(vpil;!&SH!T*7yfcB^aF5<0>fRMkkqi z($Hi(>2RD5e@7N^A?(48Fi^$}d4F&Z{=lH=FYbeakm(%AwvbYi!%zN~&dKUE?)60I z5J!|-FGSEP@k!dfG6+ijVvceuN9pen!0p_d1DX8PoV-pxw*VzRer|f}lRrXlSzaU0 zx#_WNrQ`EuRvq)*vio)gm2;28TSKMO2$1T5#41ahMYuFvj{-j$#V30{NXl}L{s0FYbg++DBPO!i zSb8Gt*Z>!`PP5WM48ZOgi4{%L!fHVW>eO)&)9XTDFG1I`v^h8TtJ)l5u?iTds=9zr z0q2<6b;!qxy^1zZiwcIz(k4$^!|wc~pRKm&51#8u4F!I62HM(N6=KuRe!JM8Ki>ks zKu$-hcwe=WrOa|9h^p4kx5h85oRHIRZ7o@`sdY4azE`*%8`)}<(+J3qtI?~*mh0Yg zMH2RS9*#LY%O+$9B=KtlDbeAl-{8XzNyd3Q{X?CMaMtD{0+?0;fR)o{mo7J2Jr2$=T3)V zUPNI30q`AH<0hovZpf)-Z7%TW^4ciqu9TJ{fdkb5XR2>vH*ko3Wset zFkXQF4eWn!_>W_4$9@>jzXryC8^(VF_-h9U+BS^e2KJ!JU53YOt384u-RX` zEXs@p+GS5ZpPWI25D*G}7ldhdN}zRv%kOVY#X5rb%uywXjx0M)*+T*1Gg>fIP9`L0 zdm<)dNO*beum2Nx21C7wyOp_#r+}CVZDjz87eoj~BAc&qZ z!$U>^6-1BhJFlzgy*=vjB&!t-meHrNUpJ$S51CjHom37ryCH@`VF8Codg@jhoU>1L}j00c0}8QO~7-4BGwDI7Xd?v1~0zLwy=Q zOoU$ohYA!nb(R$x zsqa1m7miy{2tbyRW*ZCtKcyRurMeb@`R!JA)#31mV;+X*3`g>zgg}!8pH-d7gVLJ} zvRJ3_S?^6bwo8$n1b@+y*%5- zyITKekSckv9b*5i=uM-nRoN%HyvZeN=c?!U<~7_{jTf)jBgZ{!20oucGctUm{%=wTeQrsBYd3o44oJ}6v9*ifRv-+A43HQ9tgiq{4Dtg zp5sr`IkMAG7!%#$KAUdc&LrYM20ozo^UQA5%>DfA<5$UX+`o5+J_`<%B;<7@*Hh;- z-tBz+$-{m-%*N}x=s4{@tyywVJgdJO<=z7U7(Obv)2nm6{hsHgh0}=j0fKeadZl;s z%=mWMb7sJ?9Z%ml*8c|flPjm=YM0&SkV6bZ!Qme$x{CaFfS<~cTSh{LAwb{|!YTUi zEhhuWsUIF_&+8epOFdqzY$lr#ZbMiU$s<>kimi+M&Q&IclsdW3^_Iisb21NPf6 zhJ`Vhglrk$5P>X5_AmPx7uhhZBi3i%hWRV@(Wc{Y!}D#xkHas+d?BhOK%q+^+%V?y zIWPmj!=H7iiq?twmLdBO{0l6#r(v=R{Ky^A`?+OL z_y!&m_;TQjy;}>0_W)ie@G{^sPey)ThHn7h3;4bqbH}8D*O%en$He;p&R@XsFT?sa zd_Ne>aA5s5?0WB_$DoGO&u8mn#YB?|WMsd$ zgp!1h3=jRS{a6wg9Cs}4iXI7sdyha!9{d2-I zQFKK=CZLW4IL~bCh6apwUn#I%=OUEX3_LoZ($TppdzTVE!< za=KTA+?*NGZYt5HOr_)$ecl5YqsueG;c2>44ERg^p14+f&T42*R5%%y(9slX^(|x z0^n9rlK{7J$hfbm8!2P8-)Z=p-!N6|r<{?!nT0nQ_O)MG@sUE4`Z^D$NG}NjIWl$`>v7;h$d^3`Ha&|bno20Aj@Qd|^L&!`Q}ML* zgV|zc4S_PwT|pVgO>cKPPqgw;vfM1}PMaZLPCCWmxfVZ*zRqxrC4g?xqN(KP;04BT~=MUWp*^&>#_zs(CX%sc$8ft$?Iz;VX z-d_Akg1og|?fX9eA>&YT)!X%e(C3p=i`*Rxt@YUeL--kohmDj0d*_6s+15=Nu{B-uCPy!}&JOXAeT;UEDrgw8B0+p`3zRkfF(CD~TAzD+siuQKRl}FZL@?9)3iHKh z1+x@{b4?)OR|c2FGt{xh_qVOB1JqZ0hR?4*GWtB{&(B$V{#(Tg+BtN+K8i;ruSLsB z9*Ett1YfeF2@cWCLh#`DUH2Ys(OK?KpGU!!u{?vbYXpekVkLnAw?x7%0oYzn{j*fJclx7#kQbgZ&_|3;qol0g)ULJ@YSM{0kU= z0rnjZ{lg9R0_NX_^=|-w12`S;1-Ki|5x{DL8R-ef*CR%qZAJXRd(7zLSJWn*6$+J$ zhMyCBMP)huw*$W&c!zU&J`MX{7G=dV?tP5NZV8BDlW7&m$zBjL_|NC&fY4kiD zzz-`ft`I6)#wL4jbNa*+z!NN^=gd_aV|xV_gzNLWh+G0~k%=}HTa;G^Q_TwiD^rY_ z$&N!7q=XzgqW`SflkS{aywUDLo(I04cC$Jg#YJmV^ul5P}GTUPDC10GWO)Ghz}%CrAS8^208x6n`~svsj<%GoDxfwD%Ukf!;)oO3*vc7k$1OX&5mgq# zz33%oxlYl*X7F_zD-_zk$S9GM^bv9HXOM=4&X=?prOOVD6PpuR_NU-eAttv#02(bH zwSEOI-GUc18-5zHmpEq)v(ijJjT?qdA{LHd)o1*6o^Qcqn5#Ht#KYCs_f~FV`s~@;ApvjYkko@Pucp2|!s# z9_wIUL(XG6YZ)QR(wifl@Zrcl|19yhG6mej2KeMtW&dx^%_yDznMv*ZwhlH~JrGLII7z#8*y|As^-_QQb=$>c|pu&x;cj zl+L|S{s(Z&?rU05(kJDWz{z^~cIwPgTVddSO|JC_o{ApkwlC5H15qaK(E@oovR^&V zTl@9r7MG8pb!#Ew-CcX3_v<`*yY3AW0(HGOf6tbl+|E%sAGff{=ZJ*YG2`>gkW;$E z3mLFz_Dv>g3{1d;AXPy7ItOaPv(?JKKnc6(_XC3ko)*+83Tn7Xg&!1{3e-P_sl8XAZCi5>N6%k?S@ zRffo4RV&3GGG(DM`#Xzbsv?!LB}Z|8=@je>{)y<*V*}#_JYT@$3}U_v;e^5AKY*RVfxf~C zwZjtR4u|C!nQ)X`)77vahV_L&;(s6NKYf0g4f5yt0+;WdCaGxg&)FknzW=wNnR z=;11j&xo(H3c*9LNRR{)q~k#(eGCz<6_Pzs>L)_+9acU1&j+x-4a*Jd717E!fb(?B zAH!kn>6y{Wa4^%gd05wB(SGn9N@rLjQYk7rh&JNDpDx40acz%LY7_W*M%g^R9mg|9 zJUuKb7}OW8(mYHu$3`spl2BzU!$Cz38WIG~uoj_q5gS_s@a32eJc%}YoWS$9W1f!f zj`st&{xV$OhWB5<^%at4zJcR6@c0cp-VyK#=fE<!X7rnw5a_)6L}bZCqZ>B^=D1MNZ)JToADK#AdopM0nQ*#9 z8<`G3qNi_gJSh1j5lLkTN$D=$`_%|a&*rt>JQqU-Co*e3N)cvu`qNm^S~ap~1L}3v zxhHxq4SoeiI_k9P{c`rZLhjBmv+0XtW^>HiM2z73p9RFcYz#d-sB900O(&_A3#Z>Y-r{<_< zAnOPtLUWK84bs8A1Jtu&|aq6M$RbC9mDGoUY%&&q`juLw@=qw#{MK1buZ!1}xIxMV$xue>;KwcC5E!pPm&K z>tXO;1J^I$Vuh3(;m#*zC_C)oz)|CujaVw{0yZ&U)boEcYRO~1fb|A0_I^tqtcPXA zn{8xp$!1L)iNH)%%Vco-jS7x|L2}Z^+(ExSBU`L#OyXe$wS>(hEGY$<_sQzZ9q-!; zv@?i4N7#iiuRfA4*BNx(wsG19Bj+Lsa2J8j6x;P9GtD z&1kfm>v7SkSAfMVD{mC^&q~eRs%#Y`YwMC8Ncb3WGEZAgsT`)s=w zp_0bO7cfvGxD~*?RbZm@P2!_i(SvTAHZ1o+v?QJd?L5z*h~3(H66;ROe;{l@`W#AD zF7ol9PX{-Q8vD^-?)L}W!OIzMujq9-$kT}9?OGM zc582BRy!p!4@N_C6)+e?G0^adk)9^0`@Tc{AKt-T<7=G@qPrj$Jb?e z5=i4gLbNjiC~E^70!{=cCpg~%RG#bg`t+^=^S8H2<&031)?F^wZj zqIzQ=QCaXhf#r?|4A0Z>eML|Fkf2nlYjZAyRI6yUH9;tCBVj6G+{=l*G4OU^iSe6o zHAj~JW$zm5T5HGWdiK*s%-6L8sUX${&KIKW9dWMD%VLBjqk979P)SrTyOnlTS>MfZ zrQsEhYdqX_P|48YfwdXND;_u%%0OgY`|~lKmMEbLpwTF3c78=ln{mCwrZki%n9U>Y zs$?{s2*f>>9934hL@B28jHoEt!lG&r=a~=QOUhvP{i8t7vzKA8QQ2o1vJ~QL0w)79 z=~(Xe%-p8nQBNha-Ebo4`Scj!wdtT8XpYnl`S!?uOb>b*!H<}hWvCkOlFHK@1C~4+ z{2ZX2?#@h9l!Bd%N$XT=9A-x%WUPgm= znkHZMN(LkU%dol`m;7B*FM2uiVa-SPP`Z9G#$qA6H#6!OA#41Q0;FOV9co-E9gx9u zJ5H|avdpZC?lp2S=ZQl`7t)a5+bcNuumC80)^lv`u@R){0G%uo~7tH|Ir5@%t-+iyZMfIHkvepVXGqvqJ!G?Lc~l zslucmciL*$%{Qu`hBBgE*ZiAE(S{H!Ky?nS#Aq>@8Ic^ zl}(dnUvnC41kjspPms4a&|1EN@Ff@4%&om+zzpR0(f?#e7^l!IAp3Fm(^4NykM}L% z;ZS!TSPN&&sid2#{PevTfHR>?4R1J@7hJLdomfPAd$s-72uW* zfu39PiGGIzH=A!$F7)xTl4X}Q{WYAGQ#4w3ea;w|nHv~vLB)w|Rm=*RfeH?C`%=Ck z%J6;0nx7}|*v5dcVx?FSgP}m9qc8}FL)HqSnXvOJB_CnqTWje^ zd`STwks+JA6Mue_n0`4SPv6fsf2C#+QiXYktBLgz`lU>)U=tvi%^UG z;YT?}QxR)zj3pgmJb~kvVfxI&)_m(MVblvqKn;zY+sdZA8lg1-1PW}O%Fw}*AyVix zhS5A(zdSPS6yzrGItfBXhE4=w%wNF#a*XMi%V0l-@i%b(2F{<2YsLHUG~hb`@$3oA z>CG4lrIpzW1|smLz^9Sk3h$|>g+PZaG;RO z=@_lw!1_UC735^jFoZMGwi|=*5=zQOCP-ORYHJwqaBM=`3h1N*#HB;XpSv@AQ*u%q z5|a2ZH_&m8mvF1%`w}SF#i?8GJIp9swko zSR9~WVxVEr;7kEa9+boHoU@E4e?Ch1XuquennuX3eG{OP?w#*7WELX(4av9J%WJp^ zzx{N+0z7hpbo^tOe;f8cF$v>3sid{1eXaWYL>_iGbb6E?76!Vrm1R?rC`$omDsnrT zLK_1al?`Vi=BIBU9AcvaM$y&)vJ7m)65OX}v_(ffI&9qhfd~>PnjIBAL4Ps`9H@T! zcgaaZDYgWOk>SF9Qi=NFStaYxAl$}&GxEVrA!l$kHapAcMmXANrGV-wOs7J|farnI z^mHbh;b5yAAtBi&cFI@Ck-#me5?BR@gh>;Ip{F66P9*nscm$@$;)q*ip}-MF%&N)I z&rFf-M`O1G89C~i)&|bYG0Xy7l=~YNe4IfyGQ^V3V{<+aP-|AOv}egv{>fl^BlKg_ zo%fPiW{kY#h8t=OTdTm5-pv*yFXIO&nI-wIb2bKxvYJH9bwve27~DvQK_&1q1~+A` zp1~3FI5PZ}TVk>|ihWC#lOFBMcrI47tJ?57u^XO48nxWB@nu|xWnx3^D4TkIGI%qX zW$dNp89>6lWw9!IAW(MIUpZKB7dUl%G0fK86u>TRC(}9|7+x#lIlRe?y)}?H@&dQKg zp}nF;vg8lv9i%xrdvdVEBN=4=tWrYJ$gO;OPzFlYh=1QGFG@sP-{L#%quh7xb+c7O z)Y+GA$ac6%n#;B8OuD?0m(lci%A=+`QU{R!l(^88DZNP!dbTDxZmlna$vyE&@-q`_ z5yW%`sI0)N_00Mi?MwQr*?Udh*L(FpwhRDvD>>hf2+ZK&m~1VTGdUiBU(v$56@=~g z2P)9{A)f&1lqYZ;hWRvtbk~S!v-X@owMnG$#tR*YO6ztWJqQ65Jp+J7O=bcJ#XH)w zTaZ<2?lf#AuVtUy4uIF+h5%!vE|o1hE@bOLPh81wbe{9o_G`+aU(F?Kbdcvu*@CO| zu>sjuHh{2AR5|1!t8YZqba1a=$^YrcE+Z*}WNUTXR@h>81l=ejoHBUVx-;M+dClrz z@m&V`7C|3RuRUY{`|l ztYY@bY-EqrmVlL_nq{03V=0URDdt9iAOWd7+q{T674V}A8)Q^yuINRx6WH5vG63-Q zh%g!=n*4l3gvuC!yhtf?M``vq49^R&mt((x*8=`QDD#V1@k@rw1312c@o->zDARuo z`xTDLdIy^O9+3^W5Xx~p0H2=NQF99s9c9GxbIBlxy|^Z#KkaZv-`PvFf#Y)E49D={ zhKGbNiFR8Mq}zzIVxOBoV@-B=Mw*P{7wv8EH!$9gW8mRwu3$gb+sfwqA7Rmv;4&xZN znLu?9kG7X%#rPus3f@gwv~hE?BroJ7_r5^j{{Dps0IVmXziM(S1`Xw_MVi~=lnj)! zvH@fE%FS7Q)U=VDdcAO0HuQbt?{W@Se~%?CXLSSjPd%8KG4Fn<1g($-!`}g0DawXh)B2D{?h67vRmsy@-NT9H?vvF;_>GxIoD*irg&&fs)0I#Yup}Z zYW-PJ`;(C;w7t#4MI+pLrMyL5S7_|Ls^peAZZvBQx~ZCEfp(hOq^$O8uDW%nS)G-E zvXzOJjvImgUB;N6r^(GE8`4ywrc=*$Y>E7=WE7Ju=@?qOj&!Qzebb>8dFS~~9cM+!RR^WSX_ zE7I~tzk2oUZaPAIqyFn&^_e`@ov>Xp$d5=YTqgn;mDMMrwY99KPHC@Y3-Mb{bIJnN3P=!bavQI-b*($RqutwMlV;h4{Q8{5hhyWb-Zo1X(@6Bo(1~R(v z5&cKSDqEf1IU$Rg`@x*^70y2pcC2ua_5e=$SeIpvrsxBfw#za99|96_!~KEGvZipk zz;XnZi&}v6tw#w)IYLSQUVk$RcAi!083hF-K;+CM;W2Zc2Vh8?frkO}8OWgiHSpRV zrFe(KpN2%;$>lYa;X=8bLIIKanralj_b%6VNz@qnm zgi&6AD^}Sq3OvmeeH@+uOjF86d;-8&QZ7ec{b;@Q>}Fi&dXGy(Rtbia#cEcuQNn~8L85#K;3SKk?OebK9 zCcT0fzAQnRE;6_w_P@`R-ULI0A^RTfiU7=hAut$DRN2?8Gt7*Xj1v-7W(9iru8zvu z&&{Y&bxogdtzLImdks)V@2u;0M@XN|u_H3rWQ=jL0A;bp53`~ml#?Tr#eM+m3#pj; z+LSF6YJGQz&{`RK^@#fD_5w}@1IGzGh?$_E&=3!N&|j3|d5kYT(SQs+lpvKdRyq`77jh7#8`k|qM3c=yjr zfl4WN2SCmU6^pT7x<|opo}Y{yKBK;}?^DX%n!-k9^bbpa8FDDHce`gK`rbBWoQ9&K zTCp}Tse~L6X}@MvNG&V6PUp_?F(VR|dQcIm%Vem}oRXXr<3u zpi(kxZEwk1tL`_Hb2FC}#t4I$i*%x(amusyd`dou=KkQ#wy(-m%2~W*#2?ZH0n(Oj zA?*wuC@@W}r9D5c(4z-pAC~S z9|1PCg{}?QTXuw%ZPjSSfShI_tfGAO9!S%hgyQv!&OgWJDtRlu%mBRCerXIdE{;AlW2<9i zo)e@lZG*z{a=x-kYO%$R4scdsQmzK5vL*1mJ#rhvC*6nuspPQk(-O*a)_YS{eCSt* zcJ>W1R4{>+MEi(Dr!kld3mO=g z#d!PEN6FC1S=fPhH)cfr@qGYhw&L02>MiItCJgxdN*LGZI^ll!9<8ef$+!-A+It14Q zu4hEVUe72A%E+yhC7ru{AtNo{r{nQ*ygl~gHNuHM+3)2?^c#IKJ0If)Bl9qKl}Z_K zD}P^(EOEI`3b1Jy1pN?!&26ydn7bmCY5d3;q#_p(*xr$u9xOZ0(#Rv$H4a2(^bDam zI7$&)kvS`+`Ke62f(tGL0G^hNDaAD?)YK}ntkC^+NGYUcz%-?kJ#P}c>>nF%FGqF8 zzNid;Jt8VPs4x@|8Yi&d!2a;3l3*Gm*bvhW*CQ?ztE1MXY)vXMU0;sZF1e+whk3kr@tiv_nPlz& zjXyS5-kg5XKkvP#`p$~ZtUY5YQOceyN%wXwUMCGEt7p$2xqgA$EuJmjlu;SAs69*r z5qHI|<;0#+38CE!C2Jv?AE+rbKq_h(Mf#FVPNO6ZwEjLz9E%LpjdlTDy6M0yKVJ2B z0k65vi$`YDfoZoYicj?4zGzi`{6TZvw@GI=`x&i@fs)@TFEX2FbzKLYTJ6i{m*2l< zp#Q$4TcAMK{rtaiP5Qf@;}&S3!S`P-Y}DFC z1Bq$j#fQsyuG&8mVg@Bzuu4I@TlG!5_GEBS&V#^`HBl-nWUS#y6rb@dvOM zuvcv0wSnt5;Qs(IQiZ+tEsCWwRXGK7I_6(dgySl?7><+CyUoMXIE`W9v^@r+QwIV; zlg%(G@X&;PmTe$~w}LaNOeJ_n1S9mbfsr;KdqcrsiYt9aW(Z;CI1Y|9d?HJ8jCCZp zk|#+t(G8jKoZ;Zw6WEU^6&g+_>`kCTAX^ob(R&|(M{qGSE`x%8b5u8g!GR4d)rTh2 zS@pd;3b@5$PZa6&Cop+FGPsUySy`ZVm5cY3-~eeo(W;x{CV8o^%&3o$emQ&jbnF#i zZoS`M<;+w2V!(c~OkMz27WBR>)|RExBowu>uEux0+_-=B?8Zh_od^st5tZ|S;vO<$ zxB7||oO%G`aLgGU2*WtD_pr=>p~)D5F}Z4@2cpkyd$w9^2lj8r`dxdPeaQ?0c96F` z3ufRtAW$DA>#W5J_R1DbRa*HC{RfOMQ90JWp#<^skZ(72*3$#w+biyN-(xOUL_ z=6gUk$rANWJ54zxDt&X(yMdNsv-AFLMui;yT?Se&wNK?PgT@+-ba~KdQ{D8HiMr7V=hdMb9q%A>-v%E%CvVO*|D7cO~Ec)v-5n z4|INBYclS;S~Kz`1B`prGd)rET0v}o+-`r*HnwL-XG(iF2%?49n=G5BMVa%(cLYvF zql2_(?OA$hX*W93_LII?cUoE-QJq8#m^6a>cgkp?B4gk8H!~%4^jroJdqvaepP_q& zpqz|^_6&`G^KWfmb&m|BG{>W_CwZawvo|8zKxTKF>WK_B`Keds;6FX5_EbEny^^uk z3`kJEo*;nO0&F|>Wi9X)m4(BaozeN8!Opnc9hU}8-bn7}*e_I2d$E$oucD{50RM^e z&9<`fA9zlC1l)o^n#SS`>d&j`-BJ87cdfObJ*;#hfBld52IZ?hD|ss!VnqtK@BW{z z)Bb-83N)E@tA^6qfAB^GXaa~Uv(^1(?LoA5$($a@>j6PK5Urx5#SVzpaTtKRW2vma zvYDBXkzD=U_kIK)4t3XIqth2@OlwnyTDD84i{#sOUk7p;M)w(dHCMNbyYnWHxt+-z z$w|`pWf<@Jd^3?VU@iVtAbmFf1E_nb0Dpxdxl<&s!wfhJeM&sHdlb*4Ydm}*^&VOt*y~@(!#jEZowvR^w@d5>q*IT z%8}0d;)|R8(|F<*q?Eth5=lJ>n7D+Y&HT;DZNH;DWr4{HYwnD!XE$s@wR4 zK7eEYg^c9N;GHWg5HOBf+&Us6u}J-6MKAr68>mbLMvGK(qqOHzwqo4eXw*gxgmb({ zWaoh}+Kq~LSs=~AL2n4m$^-MqalU|cITjp055wB=`gX&whvP9F;|oz*;Q@3763=l- zxEf9#hk5j=jSU>{$Obwb>j_+693?b?J-l8t2%`6~guNWvV>k`C=rQdAt20o4C1P`( zVVnyCGMB)&boh&VDMmxJ1#}=XAc%7EqG=N|fe*;Td^nXGQ4b`0);KM31 zi&B)EPH>h*?J!cppmhqP8Uf|m<78RtKfdAxSOy|)W!X~F%-n1~A0`6$kpKg?Y7PpK zaRTE7_A3MK5o1>LeSZiteeTn-P&whrAdPt5S_?rcy#?4SUj9Y`OkQ+q@EDj6z^3D% z1kC9U6rN)vt0Y`)295%ZV}?r##!iR50e@{^u{ZQ#Sl__pfMX&YVL9yCS1WoS$eFAc*OLw}O3~b$e&BY-pp3nZ<7KKnT9oAcZ5qc!HUb_K={hpdteBX6}RQU)IB#7EyADw?k^3H#<4WGTB073zw; z0N;*5MB^;u?~Ium`L2|^5uQgW;{vH(O35oDE+xJ5vX%XjGua(VL-Y9VkC?{2)wT4z zabH2VRzR{F&$jG+XM|D1Eia>DJQR3+jh|h zoyr@);U>r|oywe<%z*bCR6{Eam~+uUBW=$nSB3(CY_ZwI*4P8A^ovF1d~q*6l`W7P zEE(I*paIeAbG{#qbkk|*?J?#%4V=yEn#{o zFkoeL-sH+Co={(_oWQBiUSM?tWvW|N%^3p#)~=bxyp@gFvv{dvJ`)zS8OF_a5EC|D zYqTPVs8?-t9@n20G?soX!Gp};g5QTc7VblSedvS^dMf8x&)3V)w^1){1_j$1yzNmk zMSaU`zV~&D*4i}y-0b#D7Pjl=KKFBKXQe<{54Lq2gY*Zq2TiW$rUQ4!&YR5Q-bn7H zJw;GrTfjJsQ%Ry7D@XJ)$myVs$O=yAy3*sM2aq4uVAUVT<1CB6sWNjqyAmA)skQ9G zPp5Sj4J$FCfZOIcISj<8+9%@0k+EZhyfrw6TTF~ul?>Vn(4RF4;4p9^li!0UtHx5g zob-)qM^%7OtzSKh;{^U?=y zzR3U*Xg@K%^nKKRB+W~YJ8ImqBjtF=epZ-JsY$=*_+FsKnDXM{%VYc>V7xu&BhE#z z2nz>!e;f8MV1EPGgP;!!I8MWSb6gS`+bs?(_w)m*f3kj`yz%douf?sN&mTZvz&)&}HOp1h@kUB|ym>=M%WTb^r!$!*Lmocc7wA z^-!;v9-v;EwZmY)z+Rar;J+NlGr%M4ZSWt%eubc0S5SYQO$i2AG0d$z3o>LJI4q1e zGJ2i|1${;zo6>ZIA(7+yjPyVvO{7jL!|H7;V}4De= z$zY_&G8-rf_+D@8m0;ZNS&4A0I0HZZmZ@3?Cn^wO8i?nd490lNR2w{y#?KI}&Kc%7 zL(pF{`m^j2{Ik9D1wU!zX^dt7gtARTmMu%PdZe-UKbp=VE+uP zpNNEBrXVD;t^BZXD#k1WQ<<dSFH(N%wjCe%l<2&@}2CzA{bF(~kc>$rC^qcW{)Gj#c z{-S-&JqP9cxyx3>LK@`Kf1ecs%9v%l51*xH^?97dBeG5Po$??P6(*e)I@^B$W0k7T zR60R=0M7ux9pA`S#KhSd_5Q^cymTTN72C7X;Kz3t&$jg|u$2yHS3D zXk&sSUk%wxi#lWH8Lmm-b@Ko=|FO*W8(V3|>CrOeG1~Cr7`$s#z(eR71ij7>h72ccN&z8P)YR-=&Vy2Va;h|k zdMsc{;BYVI1cn9OX`IWNG+O4J9u=kU{YJKd!z`V4DSBPcw{xC371tXPIJ!#drNYk0 zi*wI7Qp@Xky7Mng0F?_m4RuV%;g;h$jXm!Ercu2N#{oQM%x0bdz7EIvWq8Bzo&)FQ zX&hbyIEOJCZZ{yLEC~lP@~Jt=n#n#7Cm>DCMV}TUP;eTqx5alx>!Wgq*F6oY+?A1( z4vGw3893BM&NEj(erAPNGomNhe1-rBG7BX<4A%@fv$AEyB1k~zs2jvt`qdn)G<0}2 zZZxuZ&ckD@=YLW>&SCc%c%z)na%?iMvO|l1V|)8e4yPdt$-W9W8g&9Zl>f+T58QhL z?fyz0)Avb(YannF_`bsdyCP6}yn(6G@@+RDGi6EANRs~O!K`NB_ST?Dqf$m(ws|y^ zVSz_x;DS72!6K2tr2^8Zq8kWNGd^WV_HknR+A=y30j}wmrTk-}j73l0C8rt|KJoGo$X+d%v}@u(pl-%RvEa}9<>Zb$)0jZKWRAwBh*#%39N6= zMM=lctI?m%(C8pthJ9L8@NLJn9P1rMpAW8`Q%Y|{+3MVnl_Cwe==bA6=(SC z1irT6yny#|_Vfqf@8mV-2%hN`Bi`hT?FdrJFm)g^z6!1gyG2zW2CIFN;Y!{J`FQVx z6<;pOlxqYCp2lnDG#aOKx!S8au|PW~(%~V4(kTaNb8R@l?0cGr+h@|N%5=f623ug19HGG$|8wJz4B}t-|JrKJRuh0l+Q|@2%D+5 z2pGs;<0iHXCjg6o?yNq^{RiYKOpK3>yU9sgaNM_Lx%jW)kS)n077{xNR+TqG)TZ8 z0Q|552O;>HEd%~G_`gRvjdCD2vi!!>vjPIk9e{ru=9gnUB1>mi%soGt)llU_Iet!p z3J^K}1tNA@IGTK2?=TME55w^l0RVeA<`>}q<#`@k&IB_~%AU*kOQV~Te;tS!??)&h zjmR_3Nfq#28h5+U!{y{@E-z;KRGD%0Gcti9+7wvLsoopm{GTPEdI+_35!bS)r)w z#2uFesAp_JooweZ$r)zT5CDL-JrwHI6zMFZNRGom3FNG@Iknei8K`VLH6@(~6P}2N z&`%zrJXU#YPMYA}M^rg@9pZ1%#VGj=-45YU>Y3G_>uxy`Re&_0OuiAfzGTfYfMXC% zHLC|@aE%9GUrpYLjXmUv_!3lx9n(NvJ((dBuS$*vXCRpaY?!|_nn7i9Vm#A zv%2*t-o85$l|3$7{F~40b-cN5RS&fD$$*N^2O;y*0oRP5l_D?Szb%ZE@veKuXO-=( zj8Q%d&sTx_G;Z3F^%Cj+Jr_VD?3xC9Iu>VGACzhHqQhax%AW)jb>Oi>{w;!l?iC=L z=R0WmI1CSF=lx%(;1BspJ+vxU&nmOU;N}G!2k<-q`@aDEGF&?xN&$oBvGWK0ZrsN$ zz9L;_U#0e*`zT%n?Vj$ebR3XR$29j_#wQI!l>`SUATp~wDaVI;Y|ncB$eeq&4P4L2 zoK02_*zla8jWr6K7ww@@Yt?yYneeK$cf(n{->W7>#6Au9RrUoa6D7l?i#AYglmtNr zc)f*?|Eu=!M!(EH-Xopuxf*|^&eU0Sdgl3NAXaPhx|RYJJt*qNwVlYoS2~9d_#>)o z3-OyTSc*;O`NkOCsJ=XQ*vjh#?B8MYsj?y4FlMxFc|X5K#N9DW8mz6w)+o15_@rM* zM*{ey4YZf&*ATL8&)dIC1$>+Z_}ppp;Ql3>&ielvkETp+yxZmGAang8`z4dcoi24f zq2P}*7LYpU3$X8y^Qr5%kov=MSKzP*Ub0e2Jf-Jr&TQHcGtNKlrtR22$QCG#cHYyY zYK}Z}yB5z#z?-AdWAHn1DHISV(E4VuU*-PlVV@VlI~@ran=Pme&|Pc~QXqal!iGsK zh7H&@jAdDEF%6jC<;aH3NSrkw6GwU_9d#PKkkv-V=~)c~`L>p}f`iIJ=SH%|>AP z<3Z;!Gb)26wNHb8N5pMCfEY8w1CilRWxmBUa^Sss$Pa|FpQ9LG>sS&dy!WIK&kT*S zA9CpQaXO;&DknCLFd1f|aT1V5{k_a^?Qo!Vc>Ngm!!RD6PL9q+y2dStEK8@G;#1H@WvA;jm}br>0CaekRgNnH zF2@@Q_Ms@*<;@@`6B|%HYt11PQf`*y@?3&?lh-S1n`h6Ul3Qhl+j+|nGzlIfiZYpX zG;cxYIvrI?PC8qnQDqFR(E!g+G^47B-fNgjxhYc_^c}f7eL}8Z#-|w_LH5k|2ycFM zMeKDADPgS_Yzwa+NoN{H-PBg=&1I?D9}r zm*IF1j2{610E|F$zX0}%2iOCw@IjVtD$49eMaZ*^K3WfBy4A7m;kX_Kdm1NKaLvu| z(K)49lMzF?sA%xvtQ6878+xp(XvazcN3hAV&#-5O#k;+=O> zriz#O9I_hie*FyOG&;R|owc9Z$797aJZQ|pkp^Z*-Y($*@@lQQiPYR;1vp1vBhOII znW|?J*skvxjk2|X!4a)80Ob$}%rJZHCn`HcBWfO!8O(5yUL#`^pNVJmtoBOqrD1_5 zL%p*oQ!eUmwK+)-svTi>bU*P`GorN*({U>U?UfIi{a*2W8jGb&eO@P-qxMZS25@8~ zgKx?_UrWyu3mhgqAz;E846n)&wIa9&|HFW{?46D5SIvq%b7;Jcqd#})*13TPZ8nYK zmHb>yU&{vaReE3>lL6F+iMhc0AA=dIC8De|+;lPw(cXBt)sz+8pL9DZBSo7%;DSc; zY3%FQCa1c*$V_sVb&Wq1oEMSmzG`_>N=YAHk@PbCMnezgvHQf7bqL>r)%+8c0A|$@aMsnfO(ok*qbAC}`hQ!8pJmtCle; zNRvSeDdNVf{l4R@J@w^G+BrejV*>(9zzU5m7~#muR!kdl-{nElf^6Ac=XJ2H zVRw11Yi-A3C4*0kiddezbe&pB6S&bi8kurT^2b-5eW%@|Z?B)z)-ojEHzu+gY)w{e zIs(Z40-SAV0#02Qs?DC)8?Z2&KKS`oX_`b@w10@PHsn|W{){L@8aDtVM7*I#Bw|vT z;so#l{BOTGJpwXA7Z_-Sv=F1)==7b3C8J;>=2br9iH^%)r(wPg$KSy56JTtB zC_E6%?CgQP-cICXFN6IstS`ekYbt^}756LyLD_g*5h1n-%xO1+T>G1XJPoN*+y*j} zH)obr16a|QyPl5y^ejI*JSH$4F90vY`7$g9YGUSUY>>I-7@^@rN@dCKuo4I zNLV33F?4>xB%U;u&mpEHGb{?#eIffhvqYQwIQO0LoqMK;-^Hk(_Dkf(ZOajppLCIB zLJDfgsTPZnFN}eJTdAF)DiG)t3-HlD_$#v(G}fh%JD6mGV<|wT`vG@{L@%BTxQA=W zfwbgDW3X~z~atD6`k7iA0i?(zbC(>NwG%hJ{kI@haIQr>-hrQT6yV%2l*fdUEg+KbO> zf~qpm=2-^VGbq>2RQK%FJ87`$NJNXH?U&Xp9X#rJ)gClJqvc)ve{)J2FDLn1qitH! zVQ@JscpUikr+n{y%#!ID02a+R*+a6+#DE-lZdnBYKKL<%aXV<;uDV9Y!s*W^T?|A< ze{!93F>t}X-#Y>TPQG|}l!*Ie_UYj`W;lg`6=a30u^s0-^zCs1^99Vqs(t8_Mv81= z|IINi-al#NUjtc&FQZ%_zp}TSd>XhOrMu+pLNvfL5;}PTku@6Yww3z6^Vp=Dw3Sv) zhPUrsR)N1;`|h3C8Xroob%4-(E6=+J5_1Cu%D{1nb0ek!DM_-BPCjfznZ52Vh@_HBzTmpvvNTX^*H%v-@>79v%SZ9YlQ_ZuV-|S=p+B zQd0n`64~lpR8^+WIgnN5reqp`gXa_SmVsU+r*xy6z^=Xi{8{{P;H#L0XO$6H8(>t@ z132R07$fxS<7IfjqC9N@^X0JLj`Ov#7Bf4~0ec#aSj%x|iEerT{*00a>1IXG{X`ww zh(7+u+i?5<^T%QTIQHp87>;pL*Tbr;@Q9h|0^&%Ao(HWg@x^;@1mSKAp_&;tF#4x* z{#^tT!d}|NQh>-g&+<0@e*^ICu$KioJ=Zk>JUOx_vcR4JfOA$a?}8@SED%|RYHa;FBy$KoY|D@eU3>6$A~?89FC_1Gk|S|w~S#& zBHpI}B%^NxifPg)*Pr8Gx`86*pmUp%&>bIi<2lZ%Xvs(|jk8|rub$Dd%i$KoCwLrR zJ*w#_TFS^g4ZJnUVCvJ`r7++qB-Q4`DjQv+W7_Av1kE-9W%1cnsiHtY+gI~H1w)ox zdpSPN(yvq|p9YTc_Nq>K@iP*_tD?04Vnp8q3EbGLhKMKs zzjJ*GRw}c8E3MPLxStAQbt5fDqR;>fMdg{@+=zR;pN7Y;3IFB5w?`%q(fj8!DwXyZ zDtNMuFVe3v^7^v0d9(c4Xm!ibRT-j6N)Lq6u1XCQxFKmgXT`Q2`}~rj#SQ$-gk(@i z5qB9Q-0#Ib?r8EE1mGFz+4Mb~Hhm|Ll%4e zUvlC^KNxMgf!2pI0=oh2{UTBnDm`wr8UaLEvX;Gf0p>=qrHw4TOuNRB(-BlgEUb!j z6x&jbdpRA6%h7`$tYKa@lOMVp6&HK86+6>5>oT6 zy}Np51!{Br z77hMR)45FUry-t6)nKBTJd4$3Ve!D`eRbv;{0b|L=M~rwi!F9*1;}EUJBD#M9VGz? zs|+?q&kAaLp8>8YqgJg7a?U%zZW4lMkbFERaDByjE(W`HUNhvfsygHpy2byBcO#oW zS5$TG7XnaCj@ClhOWfpbp8D=HvDDkw)~Ne*pP|d8zW-gGWvO=4CEl*lZKdu^n`}PG z#CAWGE!!x(7}=C~MH&Bf#mHO#0fWXC)g55@vGHuYY`1QwchJF1=%DPH9^k&Qww~LX z4B@lp->ApBOwDU}9fLB(w~9yIx_W~9J4cj~u1P7vO?D00tm!%HtAdR?;z=jUHTD8Fj#`a=4i^R2*jPhL;{Q2?>=n`m4-kpJQt9k)n(Q>Ien`((y>#TYn4lp1`qzutBrO3q)1 z67gR%W?}PsLM0p?Mtnwjs3dwsSD-HI0!|Mlb-?gF1F+`{;be|4z|C-8hLZwcfDnnI zO%F#Ug$EB_$~h4@d8lgw&Wu|ER#-VTsn`sO%ot8q?W#6gLS-}}kg?;ZB_nJ&OWhr2 z0l0?2K*kQ-f&DO+T$4C9!cf+HW!|$-F<1(0FxqELIrRMwV<;*qqJ<$cRN+_1>b8=j49fdPY0V(E-Z-Nc~?9f(%O_14nvRr(zsrjycTw`AXoy80EGzNvQ?eeb)Ce~*nqOVqI!TO82Czl zG4k|AX7U}RRn)U@DoM3Cq>?9-yJ(}xxJvT7p))GjadRRmgnGG}(OFjsw!n3k0sFG3 z5LigC9+efVoGA?kJ!^C1{>UEloU%QnD{UFpp3AKDN`T54*Y7}PPSS|EVndx3ID1F6 z&JUxKPd7{to?#KJ;d(8Gvj@(Hm5Hrhq|r zD2B%Zot98P#-Op#CPBBHCrm;)8tY{>w25GF%XTN8L%X)4F+g*a?u)217cbr_RP^_B zu055i0#ynEq?5rtFkM`<&3)>IxUwRjK>)42<cI8qI?WKVMq2Xm%7ZqjZYKtW8w^ zZq7pPG^-$$1kos6`I)84EjDE7V)6mslK~uj{5{uaRfR&iGqe^NBHf7LnI-t)$$eVw z3>Tm>=Y0Mn?4!&1UXi`mE1d=f#2PQ{i#n67g^sp1>H1mw1dBk2s*1YfDnQf@mY9Kv zU1uQP>P`u`FLGROCCQC`hKJ1}Lq37{+Wvdv4ddB&6m*r-523#sh zVvhWX-`2g&+7$eCbjlVf90#-~zI+rdM4M@hxx#*ciea|&( zndepzIDV#jtcv4Q8ZD%m%LZBG)*>b7Mu zLR0}vMmge)ErNaz;Cwjt6BtjAD#uZ@k;w#aHZFOh2c%MNZeY9}$ICI_PA49)r^Q5! zhZX-)&Za{?ty;3UukQi)GyK0}6FgVGkAWlDNlOg4582N=<4yeqO;MUMEKpT(#Ieh< zqmk%UsUGJ5l zz60rA2D5`_Fr1~Rmd03*OlD8isQs6)vVpkQFq}^SU(Earzi0Xx*-YS)vz&i0)F=aC zF{29h*^dTxb}Km&h>C=cn4Lz2+8Gur5LV0ZN}&m#?r>z^;*i4S`K6;*e~$BhXbcRp zd`fnJ1eBtJ8N}kcMCwxh+hUy=FqsJ4jRDk{n4;P2@oP@d-~t$53*|*{NC}`WjPkn- zf@VmmCm1wdrUynwH%5EL=a%6>J-6Q5c{R%AklFK&Ogk6_Ul(w$IIlMqusAV(SM=z`2`jnMX@OB1e2wMgy`lOH~-z@9Jy)}i)$ufM@*wN_(^%-TX zq_UPA@%lbUZ#VwXp7N}+Eh-OybiiwO{GIOD+=2>e+?CAEHOU~=V01_H3IZ@UmeKV!g5%L#w zaM5B>s5bL}?-%GQLu7dp;FgmeWWz%eaoe<6Y^Z%0gRG0!s^ zKu$;Mw0FipPHg|(K>=pEcsHewjyZPXmd@X#42nTJ<7J$ zfov2FMDw#=^q0hNXV(Z}#z#I^Bk5+%ZCZnpWc%0dUv*7o;5 zX(a70Jy)@B63tq&ANkBnb{$Kzlbt@bk0|DaXt0%Mb;}^$)jfL(v}L)UlQgPp znqij{Q06Rz{SJVEh$wRndbP4YTSwZA@}d4l^cUjqbPO2)Uqna?0hIe=n|87ZAOr7< z&M+RpA_`b0G&~Z-jX{T;yg+{uj!Yot51-$hCBzHpoFg9%=q-a!X}6T}Yz6+*6}?UZ{Gy1{f28>WESW$~^_i z=i1LUXgBCt8rOF@I0a<;Oo>b{Ye@R^`Umpb@(2?9Uyju+=4*4m+X7nm==R-1dB_9l zKf%T45gldcFJS%USicth>G0t=rlJ3*!TztI{|D&59gW=Y7R09v2Rg!u)4@VQ#xXtW zPN;@d>P74*%uwuLX<<&h)FHy$t=^*hj$7o*`L-S3Q|%VM8vp_6(v=p#8+z`gEKv z0uA;RYng-JTR@vsoM3$pjk$H~dBTm#+&XpxLK;PwU^iUc;KZv1I>H}RriYWkLl8QU zwTP;z>W{4?z(7YfZ=&GF0J>&oF4j>BK3ZxNld@cuJ->qJI1e!I7hF zs03;>+AVlQ*@Wo;UWmqXC2&=RQ|iYe@M`_PA-NI5r zPY(MPeB?xy)cv_-gMeG0M~+IOC&+(3Ea%uak28?rnKDI2W-%y|C%6v^lq~Xl)^L{> z#@=fk)kR}mh?ZfF=c1y20qZA}ED*DLeT0mY(rk+G_iZqxQzr328j(R_tliBqS8eZq zo+SFc9Qt-}e_Xp4(*a4^1mYX*;57;ih!Qyga z0ry69nY}J#v=thukka7Az4m??Ya^kXE{~Bd#GGN_`-O&&YZMD$KFAiqL?z9qT z<~z$@M@uTZB$=bYO51WAzz&E@hLvF9joxQCVQVpHM&ect>%8LpjPl3mjM|eji+zUr z73UQWsKvx4^9*=Zc`Z9j`b+ec2!aX9x}blRL1mLh+K)SPX;I4b4uia(K+N@y&(@ML z{mma9eGOQj(k`H#4fbY}#47g&V$OL9B*AeXjmV~jkOP(Sg7zankIQ2w`K2+;MDH=; z;!2blV$ubG#@;b7B!oMSa|$1giJjoyJrD^rma{cJPaCv5u!9-d!%BRkGb+Il$>R-8 z=NcVZVw3XNKE5xxCpl4^el%nPs3yr0wE{j5?V8Z9l+DG-bRherq}eQ{ll<26@&j3( zfz7vxv`B@u&%3_-W35&dM6q)k_s7&bqu5DapJ^c>>I;^ErA3*ZXe`4X<>}GTu`l3w z0ps*6g}r*{g-*1ok(Xe|1g!t?OcC-`vO#jSD`s)0Z?fwfnvY>QxydYK zFcxCm_M0UZE&RUg5wd&Pwm(2yPXs7Azv9ReWubqky;E$cTqEg73Ha1|4`96iidyOB zj(%DQ$hSoVzlX#0@GuhX02~or|Dlle1*{j~s{wCEAC6zsFuo1#8*tW}U7TM(4@6d( z#9kqMvbdT%#*7SGds{;GH3HCEL|o5fJ1*YBIX=#YUvI&DI z$e32GlbBPuSR3I47s!XjuVcT8(tH56Dnl~ zqx~(C@2Y`z)-KAp%JC``3f{Ie_Yy>hts(nzjBmqnf^|T#HzMry6>Ck{od`$HnT$Cy z-eUseC+5_)Zvbz?5t}7yU_C$xPAJn$@Ym^>m*G?cNktlIh$-VQhcfE?WnepJh3~z1 zcVPYi{a=R1uso;6vr0umLASfN^8aG`676+U&6C|G6)bE6CF@yH1dR+!8bGtwqJmHz zj!d-0b6t*UmMI=(z>`kj_ri;#$aY$!Fjw6Et3&7cd`QZ1M6&^C? zbXM5N2+dTl0g>wXCR9{3giR0L;@K3q(xI*y2#(8R54!=+W7CIOj7oej-y_hpW*Tk- z$Vj;QSIGGid{0h8Uqo6litf16t6^tkG^5rUvKBDwLGhs^6|mBMMYPy-lSU-412+@d zNnOtw89h11|D2#gx&&z^gJO9<+~MP7Mm=sKbUqx+d=_BW zMY>_lfNV;pE8tio`8P$%m)=*iD0Lnm9@$IkBs#z9(KI}8`M7o=<4~yQMIkbzXO?OnI+1x zxxRxc;?oRhVjER*B&__sA^5K;gRYnMTpw=O8GT(->(>9hoCA5xwI5y_5gLHI-$Yzn zC`AC-8^zkzRjUO}Jh1sBWits`JT;2bGaGWIc4L4mkWJ2>N|7|mJ#3rjR@QbQ(F?kM z@CXgo7WU*-0v|eulsDXigC%E{uSC-Dea{(9ho>W&67#UyMS3H;#Q5}* ztqMT-a$L=T2O`i#^hYDn&$IlPwH$k!~Z0aAXqLdO|!C!bb&lyl@LbVXTr(UH0N&XVtPNF;wRz)lBF?tAw@Nc8eu zY*~?Y-jxTXC$(0AdNhq*z?(ko*^n|Y`3fNmHAN&!#<%_zpVtycVB1j{u&{J1lJ8Cc z)?-TCI4^_GaB_|dXm2|7@7Q@?*g~jT8a{qG);E%{<^cTB@OXwoKANLF9rI~7pny0|>2$)A&Du_7hH+ z(*a9}o5tw$y^)$LsU|?-CpboPT-|VXqu~!+!*@Ni^ZJ}|KQ21pm*ZG5vvVE|-okh} zdjv=j`Ub5>ZOu3=qQtK-eEg&#gY6vJ16WU>KRx!t5%vH7YOrr$`~c(S7^fpTc!si^ z4~tAv3BV+bodRdI2qxImarD^Z=NouVpg*a^55pV4>tUFG0r(rRzZdN3=#3H3x50i4 z#}5M#G%i!X@m{sTj-2>zU}iSBKbx$PApOLyn=8yM7_hQ+YSbh}uV|m5i0cC8^k~G$ zYb{C}O~+Uo%XT2^f>O{dK;z2%Ld>M5gpqQR5rhuRFP5^PD017+ss=*J0(1`;r+tNC z?3GuqT@o^-EDyqjx??=pL!12QrGAYm^WhTWL)h zX=A_S&`Hs0e44VB&aHGQd>N~Y*|1681u&Q41fX$B{lO8H<^fB)0-{zSxmlAYewE_5 z_E}a4^=i>s7Ag^G!11@^@yqa@hD%L!6iC8$5{1rDra_L#b~v5yTRQEHiYjY@WoQ?A z4ncuiP%CNCxAMd1zp>9oHEUA(Mg`Z_e#TlOtMAEjlws&R_w4$980T5<(PYZb<)|>y z&Yby(x7u`NL;i4@P>hL^0Z@QXXZso1ztz*YWw4+I2=hmKwzh$wYl<(`xm`-XJpp^t z*_kme(#T)aw_zhl=FLE*OwL)%nxbR-JTvRIV$a$)(7xlL8X^E;%c9(j(@xS^P!_rx z;I<=UxH0+zMVTwj0LP>a z0U$@c0=s;s8qa#x6e?VI`Fl|xDW_}JN1KPruO>_Du5&Wx?fn#8aQ|Xq((@&KQxiCqP<_)x zjtadW@%~St=^DsF;hEG!(#Mh+;?V}QUjY8%UY30iTZTyH?i_FG;x8}95V^cGs+l-n@2}-csQ@8!7sz(X*iA`OwFU*FB-ZC;hVD%C$i=lV1)fL z920oD<1j}f(_Dw){WQFu!1eIVjP@BDkEv)Eo#P%^jlOmyL`JVS1eC|N0iDfU3Iz&Y zs)$SL5$I^zbjQvdiGgGUQF$B&9Ei^Of}kxD{`mmTFUR#{=>?^HG^=wsYm!w1d2v6Z z*GBFwk_OIW8unR$3<+ztiBTkkQK`THQP*KRiz0`F1>C0so)VFcE=} zpB5-EtY|KHG~gJFjz0n+a(u-YB7Yku5gu~BtMaJ=8rXtEnc6HJfbE+8b!UL=XkQpN zM-)k3Qplnba!Iaz|imEo=R5mCb!+G0+ z%(Ax?G`hYJO;V=8r)SO5T8?Wv*1sI~@1Q^L1{?9pOnhcdfId86jC9o7fsBOyG13s& zB`0!7%fD}#S1B?6-}dOTUd~Yl zoEmrn*iA<3nd|f7E0sAYK*WoyTt<7fh@z0wE)v~FuwlV(24DVLdtaQu>Y!_nZoMaX zk7&ke&}cntKp((3BEU7}7|Jjy#)g&atwrOr(j|}vd>v1uGyXJyTaN~C(k%-cWn%27 zli8i>Sn&TR_x@qw4{D#3IiA&svn`V}rVbyZRUwfn`6ZFAX_EasBRnLchN?bFLvJ>{iK{g(F@$COsI)( z_G8~<8Av;e=W`26V?TodiI`Nta1HG8yF#xO;dVoAB2Xe-wp4cO-Fu=vRYTnxXwCog z(fvzP1*;saMeug2M+ez+fGkkx4pXD}p2sR-?)U#yJuq!_g7)EOh zT3P7@Wb9+%x96)eUyotj2Q`FDyOw7&g@RTP%(mRA0U-HS6~z_F9M837u#V>zm)QDJ z=hGMPxEdZ8U}wWxmVIxe=k;&xX}gL{Ep(%xi}YZXd%)IxYD}3t^hpcNBo?tmugl zsH_OQTr2K*nFXR<_mqC+9#p;JE$qU|vwBSilmtMrgPP9%^Px_ZTxq#b88~dp-=WFW~13ct4^M1rW~v zafTBt*sNe=I@rFbL>gd%BuV%e#z=#ko0c@o4PT%!bpSq`&9S1{;XEyCU{-U?5sVJj z_Vfp`4l?AB;T*vCm*eMa!XA!?H;lL8`2#$^0egj$qe%bx13xf-7jMVKBRzq~h~27+Yd$?(*3Yn)AX&X(+5#h8C1vXO*`!vS?A zHX5pGuGoPL5@h*`j4KK_*Gy*4_67G0^(9`jeRjDVFF~XgSuS<`&vAYGRPL2YdLpSqwJ zLxP_IJ##J+x*3>1<0UD8MizD_Ihz zfQ++7e+a!q=X5OKaRKA=F7R@9iJ4q{;)>4#%zZLr$mf{czF)L53RvqBE8p z)AtKcRX#wuZZ{;f{)R-7+&pp9ThXXARCvpZZR zeQoQ>K-Dl&W2ocM7u}9+G@bf?yCHn@&VX(-N$p) zS3|MQSSl$5se)PUpRTXX_WM1Rv=Ci(66pl8;h*%p8qdKj?04F1i~BFcMW2NxbiexI z&9kX3Z6!5XbtVDD2YSvLe2IOEi^ZAw?H)H|9sR1!>wdeA8bgkXeo5lQM%3!PQrZb3 zu2CLOy_4_=U!l{8GHm@)krxV_=QZj+Ve1p`QA(}-$n7xPf^rop?fRvkdq1^EvlMTS#1 zM%685)3+H)ZFY;s6JNmf6%7c_9<`SCBHZHKwUuI&+ND@fx*Z9Q51P24D3<&!1Fn^Q z<9jDK2YorCVZg;kJ8$m6YQRL?_^@DB>ulJ>-CWIa4&Xf&E^|EI4bOMO-@gri|HpBB zFU%9TJjxw@z6@_FFgY&cGW0jtIkqT@j)3wJ(r2pULSdw0xS0;vi*Ti}I^I$5(`Imz z$_M0=#tI8$nvG$zM=qik?We#CuTX@KjY@|i)i{F3W90VyqHpLR{4|bNXV?rhkDFsgi z|M_FiD3wI*8eY*Wx@RgK3Q;bS@H>Mf?t)<1u_R?=)nM`VBU-^-$tseZ2HSbxht?4& zgOWKA57we%p$b$Uuv)n`aI1}0W?6N_9W0sa(Tubivz;@bYHK;J9|zu%l@+ofr;oG} zG~)c&3ik&Pby74yLh)J#5u_!S6OK$7s&QRXR@F%t1p9NMg$xwQ$(sYs|2y{iXX76l zz^Pn%ac1;+Aa9ZeccHO#%yoa?FI}j9r;vSKKV^G)-ZUn$?^97lIi}9SNXYtM(F^xv zEaXhwln=0-`HD14pjl*`%zXynN3z_^f#}Rn2Xn|9+)VUWCRCO5@3kKbhCTg;?`O7`XDU&uXH&V19LIkQu1jvfZ`p~EIhFyx zn^8%0mda+-`$IA$F25UU>cU=VG6Mv9cFFv56uI=GOVUZA zxbmRYHEREufs4Kgz&b6;Li2ra%F*7(8n8E4_jX5j!&pefN~I(4Y%?fQf4BXdX@e|e z<5l%Z0*YNAxnJys)Lq(!^6z?Y&>fS2c2)k zehPIP1iQ3;oehJGUC*}meN-Y_8}}_x7js;s2_ee+sn0zXkvi-vz>1@p~?Ee6t8I}1!bjfF}vxM}G@Z}tLW`%h{n6pMdzAKog zX0K~TtKgd142(jh8a9gtcuX8X7=I&(rN1n?pnn7Q;s`qrMHO=+p{_`w7>#v;bc92Q zMSbvKt+uiBVJ;ep#gS1r$5gy;z<)xZj0N~|Jf`8A935fN-5*qv*9s?au>&VKlIqet zM+f@vhR3Vn*N@@r?RcIGZ87uT46noR(8d%_Rd3b_Q|2p9cG77=JnJD{}1r~i4k`G zM0WB>IG~hXF+#HLjY>F~c?SLT;`F2}rod098FytTof~VnUH`2Ym3b-!Z2GkFISF|| zgtEq#52L1aS?64wOg+Ow`TM#HG8s;2_#$uGYC_ z0m}72C#KG>7me%&e(Y>I8AoV{+OLP9JrU&uee;nsn;x(xW*m+Cz%J3bC%*STp|SkD z>N1-dI-Q)PS7q}h&;d3&WM2fMzG5An3>NR(8O?nt#Nog$TM_Nbp_j7a??&0+L@Jmg z6_56@^ZPPTYZfSftk5)_%^VY{Gg8JzvQ%=mDDqEw$S&1viYS91dBlQ_mfIhOS2lf; z@mG{GQ1;LAmixlu0mGgj4(v#OIp?f#q`t_q9_)L;ip|@C&csj3RCF3hS!Q&3^!y+a zN14GtI$i6`>A+|`LZYZ|MfN3Gh~|0P_Xe2l0FgO9jIxh2;d3h^B=pVgTy)-j@3RLR z0}>nnbG3~Jbpa%*A?4+j?nqw9%~GoAe*bumWfpql+igB`RxdPR<8^-w$cIB zz7DaMewTSVQjegC^K2yx#1}e$YmV7%&!x}r@9P^6P4tp}2|rWmNOE1jYR0mbZRmLx zjX2+zh34K^uzSsYn6SIjmr!ct(R#`3gE-hryqY zc_6y}dvx-L`T~%~@;T`!Y8_h+#QV2BC=Or^Aj+|lohV*bP{F9@a(~6E)F+E_J7qF; zkeQ>w(VOitS+dDIPHJd*Zb&~*82zI ztL#k%7C!8dD(`C9a1D5iXJ&WIz5-QEJ<}0L~ket}GzOoNx4tZKszup!A{kKyo#+$l5+v5LvYC+jdt1r~FQTf-jNaEs#n& zl7p_37>+$HCQVi>{etHHvOwdO6{3a1C*|w47Yn1 z9+!MeCwz}3RCy*!LzLo{eH0G-(b5{w!)c{6m|y$lWyhgeSZc_F&gI|BwQW{}&8XEUQg zd3n^b)$X+>QK_3@F;mpb3OkbXd;k4M$$7#Sf@bx?DP zQ{=Q!a0vdD%>Uuk)Clxl%U~y%Yy$=0*rWWg0~8SN$O({A%t*vma5n_PhjD!~fF(?d zBdUzrhD~k3t;nRZ-`RP4Z6~}wOYr*c-0r2pl<3G#z~1pt?v8ajt_!%X;GK?!VbKh> zDNs_^UtWn!VOFC}&9L6gi}yI64%|jD<{4A5_d-X_aEEZx!O@eS zEsIf?&W6A;B9-NmZqRyY(gX0I^KCMe68|q6dzI2 zxAtY0bYt0f{Z~j2o6)Oat}O$mf?eW0-{lZCNNX^TRRg+$&KB2G1Ic-TQzrJBypc|+ zo0`svx-Vs&|<(|d`)?P*l>+N(@ux;sd+6>Wv4Y=vB ze?l{eZnmL88kP((M8Bi{L7Sx4S_;)xd?rgNxG$2~ew6EQouUg7N%B4RKHd0GYyGej z>ND4$447yyiav;cd&-!GKxaC8Wu;ERmcyU-6}`~^PPv$f%<|j|w5zyR-Yk+$v`>^6 zs`^U-aXG_!raXHlZ`!nQ)ZU2K3o%YrBPywX#5e??7mqawr&kv-)Pjg8Zg_) zY;dG{A`+_JujeAW<_IF*HdokoV;cM&Xl7iSPE2%AX;;5&U%O_wE6?77wWPT$9V&eZ z(gzaF9!NxOHl!>;lXY44aPlk{^|F8Lw?#ii{oB+tW=up9+e6j?hPTre;RFSH0C-p; z^3?!aJvJy-kbplPfOKIEJnAR(hNDl%FgRv2oWB~*zk&JWg94d_NG3IGxCood07$|b zVt_LUG9kqjV45K*Wju|}c?X(mh5_`oJBVszkFu5HjBfV*$APzF&bZw*fcMjIeMQH7 zd&cb8ZluZ!z;9%v-c8J4JHYV_n9HNc_NzTy`x*CFOTMahvDoTV@QFTnMM*qW}iR-PKDPlMEy4- z#86b0s0P(rD@qPV5c?UUN(=zHp%26QvV_20%Q3&>{|Cz(I=jmc2PSJvbFUa(8$9@? zdh|0G%$^4S0<(Oc&5LprhZHVAG(-eK)HPoQOCmJbja|@OCyj1tw1vnmV#aH9iyjv0 z7(c1Z>lifmr%2l*?FeLz1j(8_C19Kx@F_PteKU3;DKdE(YDhs^bLA3f)_FaZ@=OT?uI#I z%*mo*x!mEG<>xg56hhUY2v_oA>#^UKILmE($WXZ8xSWl!l!?XeWzsAhIa4;+H%%nG zT8g_m{)Il$_@H5=x#4NGDx}Q47R~1~YyXDtF4O=zJ6kJ*tSESOj;qs9qs($hR2K?I zjyqLH8S}^pXx)uqzpvNl0Qf{QkWK5N$p9V(F@xNkWy!sKIw(9$25u@;fPU| zJCP@-vy0a@F7%v}e3(YE40IYLT65)9u|rV9Hs-psQK|ucsO*i+K2d^SbQVOL2Bd+s ztlVGDkK|M`I@iqos=`nZ=;SvBFf^V|#(x?bYX^lArD9P!wsfmfUnw}H>K{WEM8Nu( z3u8qF)tkY-f}mXWgjYD#B9AbNY>$w9W0yXXwwGpui&y48t28QsOeUluSdDn!Jlz;n zs5BaAB47=VzBfl$cFh4h4dc6E{EkUC?HxB0LeRXg|^o{0rR>|Z+#{oByKql6AXPMy&tnmk)@l%=w;iEg1x zlw4|tZbsA!(OS#0R53GC^?Az@>UusAK#Beljbfj_y@UR58ObAhvSdF2(nbaz8Zzs) zCbDaFHZMbbu6dlF9B=XG)gxGQke+(;$b254;VyebzSB6^6XYVpAjhRGcms}p`r*n86d3R{giXE>6ShRRzF+zg3P$BN`MF7X$$gd+2GD1)sNoik=&|JB*JiSkgBb`h zLo>^Alcat9U(d%fIPK@6UP}}pB01NKOw)BTh>9&6v;RYjKPs3dGIs+`_8<71Je2(O z5rC2nfeT1DyCQiEc(z9*6AhGGq-(89yifyOYRoOvYwG;VcGF;fzX3V^J>mU4TaA_U ztI(nTnTak>8%vCCi}p*()h&nCVSz}0Y&!!U{L?$o{>y>?j{8JXj!oJfFms&EavB_< zylVa!FtvpYxaMdl_W+7#Hw0-jgg!`R5|Y~dikJMikj zBuDh0IMp^C#|+d!yLJuuY<6?lmPX&CgB{;h$MPm)-O11`4p(!B&4K{W=6E;9+Z?tW z$F;lWKREwgkX#sz(hFFuLmnOusE-(}H=l-|r{R5Y#9%Q>TVrIfVQ241+^UW1L>|Bc zl>l%+kH6tyMw)>N8O+Cw#ud-gFwku}V8$04Cl;jQt1fE-HGo`LCpY3tyRp3 zH}^sU04?aOt;j;W7jSy4*RDWheIXi7wimE|fcNP*7x|~(=|~Yp9}&f~7G)nN4cTtM z^Ng`wilmT z+vF64Mxn|c6Y3e_jRx%lj8ZzIn=zuWe*^di+K&TE(M?20RMj|<53++eVQWU7^ucnR z?#xU%%p-!{PGG(a*AHTRDYHAXDE~wq@IGCR5|xsKd}c$|-eV~=p<^;=#^-*}u)nUY zSfos^2E5tm5{Lll!+;LM;UUMcfU_7JnPH+amjMzW%cgQn4vhdcv+37e&ZQAW-kA<) z5Ouk;x|tUzfwVZ`pX>!;i18##MfQZmZ^_?EM^@nkHM#xRdc&f`C!pTxH}L%8ki$vFe1 zhXxD}-PEUPtc+>-Ly%{p|(g%h7!uZgmj+6?xONj^Hm{pd+BqI)oqoVt(!bOrQ;ddsgC z`nZ*L8ScSN{yX<=;g&T{=ey{}rRx`@#_i^`dGSvO58453SoD%;7N)-g=JaJcc7G%> z4xdlYmK8RVhuo_~u1$pBu&6&X)9p9(M<#4;o6p}`JDpUO=jr|~1R;|+Ikl`ilN5e) zgmt|(Jra?p{n79{q4&Pm=-Bj={*RK4h74eIgw1}F+Z~CnOvs}DvyX=;Mdj2s#d`Jb+8+ExC`duDP_SF#d!QjCh+h#W3 z&+V<~P04QB69d5Wa(uyYxMTGH9V6Uc7TNU2x8-qdn z6pcWm;#mvuGwNG!nG?dwdk;$NjSa_uWSqHz2(26Z37o&^&@JHj0sP+$_?P4H9edZv zDQg6=&yF-wJ2^kcjXfIh1_Whzx3Z{o+eHWq8*1}3Hs7(#3aJ6c8j;=W zlR=6Dc(?^|U4o;;e08A)+asK?J`L?R(EknCE1D3khXKC;`-;6g7GUq#`&YESyj1stVsb7FB27H2;3UC6uPT$!4zCn z7Ok;444sqp0@m9Z#ESsdnid3gZfKJfpc(M}6p!1eN=?;k_&>H$LI?h*U~-oHy( zP;q6pWClG=giKOhUxiq9_WI}#+vA?F4YCXh)MuO3_ORP**(i;2;IeI?8nB+o(UB3L z+9&~=276g%BhwJ0LdrfF4H0~OdLkK&%`#C8o@yY~l7=+Wix8~Mj6j3nmL(v~M!&W2 z00b#EFu19+(WBESsx^ISPyrjAA)3XOM>6tuU27=%qagy!3)vGu4vh@NXcmj@R2H6; z@zPcVUWb#0iGR%Ol|HLRO)ctB{fNey*I^q`2809m=^zw`LV={r_{pGuBQtv`fATu2 z@7FLXUXS}JgSR>!pUo(PRy~a&Cqo)S-pFRa6ER<#GDW>K>L|J_J#Zv)Ck`?qBSIj6&%M_g%0 zvd8v0%h}2dH_=<+IQne_SVG46Y=MYCmWtX*8AzU1*Yr9O0OedWKuJEh!M}Cf(g$wo z2qxo87l>DJe=nUeo>`U(@Y*1qNmlAQNtawN8lqoMvt2^j5%QGEIg%`v!M0m)q^_&b ziPvWsago$7VR-HAcxmFlZ6KK6^O_F z0_F=WxAi*$2_ZXFY5{j#Bal!lQJc8+><}%ceoL8(UD`t9+bkSd<7ln8uVvtH>P3E9 z<%NQ@Yi=3Hus7*WI?<7~LE17(Ivvpf8H;+H4U-ZvY*DJMK1}=YK3?!rmSPzcRKiXE z+O#e2KwgbZyl3#BU18(uW!I*`tMG8jQKF;l0PuyBpMAx;6WL5TC!~Z>Cas*W=$`#m zH(&4%Hut}i2kM@VZJ&Av>=zZK-6ws-qq97V(UWW%$jhfaK)qlzFzh#pv*^3jvy}NU z%HGn>Yv6UBL=y4&EBYmV`<5ZB&yeqO9F9kK4E)WFDG?KOTFg$$*RI1|bkNRcjN^Mh zfa?e&E}Ue$HAl)?M?O@*r-Am4EPZ=B>?f#UA)Kjp82S^iBRb)>W9zr~h=u!?V||6w zZN{02Z;Rl-E8zCy3IkSIjm`X?f@UG2vDXUcFkx^F=x*6j`j|Adf<3YZeG%@zz9JZL zEZ}c9e4U2%4uRPiWj{H8z4c9u?PB(ZbdW(z?LUo#h7fYMW>B{GH0#PQV7-AgO<-nw0mHsqkjEEL{o-IbRZ#r`=}|BZR}lpx``RVT`NI4+9Fs{TsZ>Q!gNisp&~<<6)#;g)|iZjpg8aGS%fhDD3cuv3u~ z#D45+LzIs^!+2MOT{VhU1fuG<;1p^