From efcdb41f2abd354dc1230b98c714b413e9547fa4 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 24 Jan 2022 18:22:15 -0600 Subject: [PATCH] initial rendering setup complete --- lib/stb_image.c | 93 + lib/stb_image.h | 7897 +++++++++++++++++++ lib/stb_image.onyx | 13 + lib/stb_rect_pack.h | 623 ++ lib/stb_truetype.c | 90 + lib/stb_truetype.h | 5077 ++++++++++++ lib/stb_truetype.onyx | 28 + run_tree/assets/fonts/calibri.ttf | Bin 0 -> 1648120 bytes run_tree/assets/images/player.png | Bin 0 -> 659 bytes run_tree/assets/shaders/basic_fragment.glsl | 10 + run_tree/assets/shaders/basic_vertex.glsl | 21 + run_tree/assets/shaders/font_fragment.glsl | 13 + run_tree/assets/shaders/font_vertex.glsl | 19 + run_tree/assets/shaders/imgui_fragment.glsl | 14 + run_tree/assets/shaders/imgui_vertex.glsl | 18 + run_tree/lib/glfw3.dll | Bin 0 -> 214016 bytes run_tree/lib/onyx_glfw3.dll | Bin 0 -> 121344 bytes run_tree/lib/onyx_glfw3.so | Bin 0 -> 80976 bytes run_tree/lib/onyx_opengles.dll | Bin 0 -> 204800 bytes run_tree/lib/onyx_opengles.so | Bin 0 -> 237120 bytes run_tree/lib/onyx_runtime.dll | Bin 0 -> 194048 bytes run_tree/lib/stb_image.so | Bin 0 -> 156624 bytes run_tree/lib/stb_truetype.dll | Bin 0 -> 239104 bytes run_tree/lib/stb_truetype.so | Bin 0 -> 108448 bytes src/build.onyx | 24 + src/gfx/font.onyx | 175 + src/gfx/imgui.onyx | 113 + src/gfx/mesh.onyx | 87 + src/gfx/shader.onyx | 164 + src/gfx/texture.onyx | 38 + src/main.onyx | 146 + src/utils/input.onyx | 64 + src/utils/vecmath.onyx | 71 + 33 files changed, 14798 insertions(+) create mode 100644 lib/stb_image.c create mode 100644 lib/stb_image.h create mode 100644 lib/stb_image.onyx create mode 100644 lib/stb_rect_pack.h create mode 100644 lib/stb_truetype.c create mode 100644 lib/stb_truetype.h create mode 100644 lib/stb_truetype.onyx create mode 100644 run_tree/assets/fonts/calibri.ttf create mode 100644 run_tree/assets/images/player.png create mode 100644 run_tree/assets/shaders/basic_fragment.glsl create mode 100644 run_tree/assets/shaders/basic_vertex.glsl create mode 100644 run_tree/assets/shaders/font_fragment.glsl create mode 100644 run_tree/assets/shaders/font_vertex.glsl create mode 100644 run_tree/assets/shaders/imgui_fragment.glsl create mode 100644 run_tree/assets/shaders/imgui_vertex.glsl create mode 100644 run_tree/lib/glfw3.dll create mode 100644 run_tree/lib/onyx_glfw3.dll create mode 100755 run_tree/lib/onyx_glfw3.so create mode 100644 run_tree/lib/onyx_opengles.dll create mode 100755 run_tree/lib/onyx_opengles.so create mode 100644 run_tree/lib/onyx_runtime.dll create mode 100755 run_tree/lib/stb_image.so create mode 100644 run_tree/lib/stb_truetype.dll create mode 100755 run_tree/lib/stb_truetype.so create mode 100644 src/gfx/font.onyx create mode 100644 src/gfx/imgui.onyx create mode 100644 src/gfx/mesh.onyx create mode 100644 src/gfx/shader.onyx create mode 100644 src/gfx/texture.onyx create mode 100644 src/utils/input.onyx create mode 100644 src/utils/vecmath.onyx diff --git a/lib/stb_image.c b/lib/stb_image.c new file mode 100644 index 0000000..7be2139 --- /dev/null +++ b/lib/stb_image.c @@ -0,0 +1,93 @@ +#define ONYX_LIBRARY_NAME stb_image +#include "onyx_library.h" + +static wasm_func_t* stbi_heap_alloc = NULL; +static void *__onyx_stbi_heap_alloc_wrapper(int size) { + if (stbi_heap_alloc == NULL) { + wasm_extern_t *stbi_heap_alloc_extern = runtime->wasm_extern_lookup_by_name(runtime->wasm_module, runtime->wasm_instance, "stbi_heap_alloc"); + stbi_heap_alloc = runtime->wasm_extern_as_func(stbi_heap_alloc_extern); + assert(stbi_heap_alloc != NULL); + } + + wasm_val_t args[] = { WASM_I32_VAL(size) }; + wasm_val_t results[1]; + wasm_val_vec_t args_arr = WASM_ARRAY_VEC(args); + wasm_val_vec_t results_arr = WASM_ARRAY_VEC(results); + + runtime->wasm_func_call(stbi_heap_alloc, &args_arr, &results_arr); + return ONYX_PTR(results[0].of.i32); +} + +static wasm_func_t* stbi_heap_resize = NULL; +static void *__onyx_stbi_heap_resize_wrapper(void* ptr, int size) { + if (stbi_heap_resize == NULL) { + wasm_extern_t *stbi_heap_resize_extern = runtime->wasm_extern_lookup_by_name(runtime->wasm_module, runtime->wasm_instance, "stbi_heap_resize"); + stbi_heap_resize = runtime->wasm_extern_as_func(stbi_heap_resize_extern); + } + + int onyx_ptr = 0; + if (ptr != NULL) onyx_ptr = (int) ((char*) ptr - runtime->wasm_memory_data(runtime->wasm_memory)); + + wasm_val_t args[] = { WASM_I32_VAL(onyx_ptr), WASM_I32_VAL(size) }; + wasm_val_t results[1]; + wasm_val_vec_t args_arr = WASM_ARRAY_VEC(args); + wasm_val_vec_t results_arr = WASM_ARRAY_VEC(results); + + runtime->wasm_func_call(stbi_heap_resize, &args_arr, &results_arr); + return ONYX_PTR(results[0].of.i32); +} + +static wasm_func_t* stbi_heap_free = NULL; +static void __onyx_stbi_heap_free_wrapper(void *ptr) { + if (stbi_heap_free == NULL) { + wasm_extern_t *stbi_heap_free_extern = runtime->wasm_extern_lookup_by_name(runtime->wasm_module, runtime->wasm_instance, "stbi_heap_free"); + stbi_heap_free = runtime->wasm_extern_as_func(stbi_heap_free_extern); + } + + if (ptr == NULL) return; + + int onyx_ptr = (int) ((char*) ptr - runtime->wasm_memory_data(runtime->wasm_memory)); + + wasm_val_t args[] = { WASM_I32_VAL(onyx_ptr) }; + wasm_val_vec_t results = {0,0}; + wasm_val_vec_t args_arr = WASM_ARRAY_VEC(args); + + runtime->wasm_func_call(stbi_heap_free, &args_arr, &results); +} + +#define STBI_MALLOC(s) __onyx_stbi_heap_alloc_wrapper(s) +#define STBI_REALLOC(p,newsz) __onyx_stbi_heap_resize_wrapper(p,newsz) +#define STBI_FREE(p) __onyx_stbi_heap_free_wrapper(p) + +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" + +#define PTR WASM_I32 +#define INT WASM_I32 +#define FLOAT WASM_F32 +#define PARAM(n, k) (params->data[n].of.k) + +ONYX_DEF(stbi_load, (PTR, PTR, PTR, PTR, INT), (PTR)) { + unsigned char *data = stbi_load( + (char *) ONYX_PTR(PARAM(0, i32)), + (int *) ONYX_PTR(PARAM(1, i32)), + (int *) ONYX_PTR(PARAM(2, i32)), + (int *) ONYX_PTR(PARAM(3, i32)), + PARAM(4, i32)); + + if (data == NULL) results->data[0] = WASM_I32_VAL(0); + else results->data[0] = WASM_I32_VAL(data - (unsigned char *) runtime->wasm_memory_data(runtime->wasm_memory)); + return NULL; +} + +ONYX_DEF(stbi_image_free, (PTR), ()) { + stbi_image_free(ONYX_PTR(PARAM(0, i32))); + return NULL; +} + +ONYX_LIBRARY { + ONYX_FUNC(stbi_load) + ONYX_FUNC(stbi_image_free) + + NULL +}; diff --git a/lib/stb_image.h b/lib/stb_image.h new file mode 100644 index 0000000..d60371b --- /dev/null +++ b/lib/stb_image.h @@ -0,0 +1,7897 @@ +/* stb_image - v2.27 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine Simon Breuss (16-bit PNM) + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Eugene Golushkov Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko github:mosra + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + Jacko Dirks + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data) +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// To query the width, height and component count of an image without having to +// decode the full file, you can use the stbi_info family of functions: +// +// int x,y,n,ok; +// ok = stbi_info(filename, &x, &y, &n); +// // returns ok=1 and sets x, y, n if image is a supported format, +// // 0 otherwise. +// +// Note that stb_image pervasively uses ints in its public API for sizes, +// including sizes of memory buffers. This is now part of the API and thus +// hard to change without causing breakage. As a result, the various image +// loaders all have certain limits on image size; these differ somewhat +// by format but generally boil down to either just under 2GB or just under +// 1GB. When the decoded image would be larger than this, stb_image decoding +// will fail. +// +// Additionally, stb_image will reject image files that have any of their +// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS, +// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit, +// the only way to have an image with such dimensions load correctly +// is for it to have a rather extreme aspect ratio. Either way, the +// assumption here is that such larger images are likely to be malformed +// or malicious. If you do need to load an image with individual dimensions +// larger than that, and it still fits in the overall size limit, you can +// #define STBI_MAX_DIMENSIONS on your own to be something larger. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// We optionally support converting iPhone-formatted PNGs (which store +// premultiplied BGRA) back to RGB, even though they're internally encoded +// differently. To enable this conversion, call +// stbi_convert_iphone_png_to_rgb(1). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + + #ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); + #endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply); +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert); +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS + #if defined(__cplusplus) && __cplusplus >= 201103L + #define STBI_THREAD_LOCAL thread_local + #elif defined(__GNUC__) && __GNUC__ < 5 + #define STBI_THREAD_LOCAL __thread + #elif defined(_MSC_VER) + #define STBI_THREAD_LOCAL __declspec(thread) + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) + #define STBI_THREAD_LOCAL _Thread_local + #endif + + #ifndef STBI_THREAD_LOCAL + #if defined(__GNUC__) + #define STBI_THREAD_LOCAL __thread + #endif + #endif +#endif + +#ifdef _MSC_VER +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (-(y) & 31))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +#ifdef _MSC_VER +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name +#else +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE*) user, n, SEEK_CUR); + ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) { + ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user) || ferror((FILE *) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__pnm_is16(stbi__context *s); +#endif + +static +#ifdef STBI_THREAD_LOCAL +STBI_THREAD_LOCAL +#endif +const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) return 0; + if (b == 0) return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) return NULL; + return stbi__malloc(a*b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; + return stbi__malloc(a*b*c*d + add); +} +#endif + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + // test the formats with a very explicit header first (at least a FOURCC + // or distinctive magic number first) + #ifndef STBI_NO_PNG + if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); + #else + STBI_NOTUSED(bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); + #endif + + // then the formats that can end up attempting to load with just 1 or 2 + // bytes matching expectations; these are prone to false positives, so + // try them later + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s,x,y,comp,req_comp, ri); + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) { + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) { + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename))) + return 0; + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode))) + return 0; + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)) + f = 0; +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f=0; +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)) return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0) return; // already there! + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else + return 0; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + z += (stbi__uint32)stbi__get16le(s) << 16; + return z; +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data) return NULL; + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) { + for (i=0; i < x*y; ++i) { + output[i*comp + n] = data[i*comp + n]/255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data) return NULL; + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) + for (j=0; j < count[i]; ++j) + h->size[k++] = (stbi_uc) (i+1); + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16) (code++); + if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); + + sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & (sgn - 1)); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) stbi__grow_buffer_unsafe(j); + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + diff = t ? stbi__extend_receive(j, t) : 0; + + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc * (1 << j->succ_low)); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short) (1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * (1 << shift)); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift)); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff) return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); + if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); + + for (i=0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE) + return stbi__err("bad COM len","Corrupt JPEG"); + else + return stbi__err("bad APP len","Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) return 0; // no match + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } else { + if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG + p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; + } + + // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios + // and I've never seen a non-corrupted JPEG file actually use them + for (i=0; i < s->img_n; ++i) { + if (h_max % z->img_comp[i].h != 0) return stbi__err("bad H","Corrupt JPEG"); + if (v_max % z->img_comp[i].v != 0) return stbi__err("bad V","Corrupt JPEG"); + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); + if (scan == STBI__SCAN_type) return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)) return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) return 0; + return 1; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)) return 0; + if (!stbi__parse_entropy_coded_data(j)) return 0; + if (j->marker == STBI__MARKER_none ) { + // handle 0s at the end of image data from IP Kamera 9060 + while (!stbi__at_eof(j->s)) { + int x = stbi__get8(j->s); + if (x == 255) { + j->marker = stbi__get8(j->s); + break; + } + } + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); + } else { + if (!stbi__process_marker(j, m)) return 0; + } + m = stbi__get_marker(j); + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i) + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i) + for (j=0; j < hs; ++j) + out[i*hs+j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // nothing to do if no components requested; check this now to avoid + // accessing uninitialized coutput[0] later + if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; } + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; + else r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } else { + if (is_rgb) { + if (n == 1) + for (i=0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; + else + for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__errpuc("outofmem", "Out of memory"); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__err("outofmem", "Out of memory"); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x) *x = j->s->img_x; + if (y) *y = j->s->img_y; + if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + if (!j) return stbi__err("outofmem", "Out of memory"); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) +#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[STBI__ZNSYMS]; + stbi__uint16 value[STBI__ZNSYMS]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + if (z->code_buffer >= (1U << z->num_bits)) { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s >= 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= STBI__ZNSYMS) return -1; // some data was corrupt somewhere! + if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) { + if (stbi__zeof(a)) { + return -1; /* report error for unexpected end of data. */ + } + stbi__fill_bits(a); + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (unsigned int) (z->zout - z->zout_start); + limit = old_limit = (unsigned) (z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); + while (cur + n > limit) { + if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); + limit *= 2; + } + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)) return 0; + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + return 1; + } + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); + if (zout + len > a->zout_end) { + if (!stbi__zexpand(a, zout, len)) return 0; + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do *zout++ = v; while (--len); } + } else { + if (len) { do *zout++ = *p++; while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc) c; + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n-1]; + } else if (c == 17) { + c = stbi__zreceive(a,3)+3; + } else if (c == 18) { + c = stbi__zreceive(a,7)+11; + } else { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) return 0; + a->num_bits = 0; + a->code_buffer = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , STBI__ZNSYMS)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; + } else { + if (!stbi__compute_huffman_codes(a)) return 0; + } + if (!stbi__parse_huffman_block(a)) return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int) (a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int) (a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filters used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static int stbi__paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p-a); + int pb = abs(p-b); + int pc = abs(p-c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) return stbi__err("outofmem", "Out of memory"); + + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); + + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *prior; + int filter = *raw++; + + if (filter > 4) + return stbi__err("invalid filter","Corrupt PNG"); + + if (depth < 8) { + if (img_width_bytes > x) return stbi__err("invalid width","Corrupt PNG"); + cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place + filter_bytes = 1; + width = img_width_bytes; + } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // handle first byte explicitly + for (k=0; k < filter_bytes; ++k) { + switch (filter) { + case STBI__F_none : cur[k] = raw[k]; break; + case STBI__F_sub : cur[k] = raw[k]; break; + case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; + case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break; + case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break; + case STBI__F_avg_first : cur[k] = raw[k]; break; + case STBI__F_paeth_first: cur[k] = raw[k]; break; + } + } + + if (depth == 8) { + if (img_n != out_n) + cur[img_n] = 255; // first pixel + raw += img_n; + cur += out_n; + prior += out_n; + } else if (depth == 16) { + if (img_n != out_n) { + cur[filter_bytes] = 255; // first pixel top byte + cur[filter_bytes+1] = 255; // first pixel bottom byte + } + raw += filter_bytes; + cur += output_bytes; + prior += output_bytes; + } else { + raw += 1; + cur += 1; + prior += 1; + } + + // this is a little gross, so that we don't switch per-pixel or per-component + if (depth < 8 || img_n == out_n) { + int nk = (width - 1)*filter_bytes; + #define STBI__CASE(f) \ + case f: \ + for (k=0; k < nk; ++k) + switch (filter) { + // "none" filter turns into a memcpy here; make that explicit. + case STBI__F_none: memcpy(cur, raw, nk); break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; + } + #undef STBI__CASE + raw += nk; + } else { + STBI_ASSERT(img_n+1 == out_n); + #define STBI__CASE(f) \ + case f: \ + for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \ + for (k=0; k < filter_bytes; ++k) + switch (filter) { + STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break; + } + #undef STBI__CASE + + // the loop above sets the high byte of the pixels' alpha, but for + // 16 bit png files we also need the low byte set. we'll do that here. + if (depth == 16) { + cur = a->out + stride*j; // start at the beginning of the row again + for (i=0; i < x; ++i,cur+=output_bytes) { + cur[filter_bytes+1] = 255; + } + } + } + } + + // we make a separate pass to expand bits to pixels; for performance, + // this could run two scanlines behind the above code, so it won't + // intefere with filtering but will still be in the cache. + if (depth < 8) { + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes; + // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit + // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + + // note that the final byte might overshoot and write more data than desired. + // we can allocate enough data that this never writes out of memory, but it + // could also overwrite the next scanline. can it overwrite non-empty data + // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. + // so we need to explicitly clamp the final ones + + if (depth == 4) { + for (k=x*img_n; k >= 2; k-=2, ++in) { + *cur++ = scale * ((*in >> 4) ); + *cur++ = scale * ((*in ) & 0x0f); + } + if (k > 0) *cur++ = scale * ((*in >> 4) ); + } else if (depth == 2) { + for (k=x*img_n; k >= 4; k-=4, ++in) { + *cur++ = scale * ((*in >> 6) ); + *cur++ = scale * ((*in >> 4) & 0x03); + *cur++ = scale * ((*in >> 2) & 0x03); + *cur++ = scale * ((*in ) & 0x03); + } + if (k > 0) *cur++ = scale * ((*in >> 6) ); + if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03); + if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03); + } else if (depth == 1) { + for (k=x*img_n; k >= 8; k-=8, ++in) { + *cur++ = scale * ((*in >> 7) ); + *cur++ = scale * ((*in >> 6) & 0x01); + *cur++ = scale * ((*in >> 5) & 0x01); + *cur++ = scale * ((*in >> 4) & 0x01); + *cur++ = scale * ((*in >> 3) & 0x01); + *cur++ = scale * ((*in >> 2) & 0x01); + *cur++ = scale * ((*in >> 1) & 0x01); + *cur++ = scale * ((*in ) & 0x01); + } + if (k > 0) *cur++ = scale * ((*in >> 7) ); + if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01); + if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01); + if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01); + if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01); + if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01); + if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01); + } + if (img_n != out_n) { + int q; + // insert alpha = 255 + cur = a->out + stride*j; + if (img_n == 1) { + for (q=x-1; q >= 0; --q) { + cur[q*2+1] = 255; + cur[q*2+0] = cur[q]; + } + } else { + STBI_ASSERT(img_n == 3); + for (q=x-1; q >= 0; --q) { + cur[q*4+3] = 255; + cur[q*4+2] = cur[q*3+2]; + cur[q*4+1] = cur[q*3+1]; + cur[q*4+0] = cur[q*3+0]; + } + } + } + } + } else if (depth == 16) { + // force the image data from big-endian to platform-native. + // this is done in a separate pass due to the decoding relying + // on the data being untouched, but could probably be done + // per-line during decode if care is taken. + stbi_uc *cur = a->out; + stbi__uint16 *cur16 = (stbi__uint16*)cur; + + for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) { + *cur16 = (cur[0] << 8) | cur[1]; + } + } + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + if (!final) return stbi__err("outofmem", "Out of memory"); + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load_global = 0; +static int stbi__de_iphone_flag_global = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_global = flag_true_if_should_convert; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global +#define stbi__de_iphone_flag stbi__de_iphone_flag_global +#else +static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set; +static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set; + +STBIDEF void stbi__unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; + stbi__unpremultiply_on_load_set = 1; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_local = flag_true_if_should_convert; + stbi__de_iphone_flag_set = 1; +} + +#define stbi__unpremultiply_on_load (stbi__unpremultiply_on_load_set \ + ? stbi__unpremultiply_on_load_local \ + : stbi__unpremultiply_on_load_global) +#define stbi__de_iphone_flag (stbi__de_iphone_flag_set \ + ? stbi__de_iphone_flag_local \ + : stbi__de_iphone_flag_global) +#endif // STBI_THREAD_LOCAL + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]={0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) return 0; + + if (scan == STBI__SCAN_type) return 1; + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); + first = 0; + if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); + comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); + filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); + interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); + if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); + if (scan == STBI__SCAN_header) return 1; + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); + // if SCAN_header, have to scan to see if we have a tRNS + } + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = stbi__get8(s); + } else { + if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); + if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); + has_trans = 1; + if (z->depth == 16) { + for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); + if (scan == STBI__SCAN_header) { s->img_n = pal_img_n; return 1; } + if ((int)(ioff + c.length) < (int)ioff) return 0; + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) return 1; + if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL) return 0; // zlib should set error + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n+1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth <= 8) + ri->bits_per_channel = 8; + else if (p->depth == 16) + ri->bits_per_channel = 16; + else + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) *n = p->s->img_n; + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') return 0; + if (stbi__get8(s) != 'M') return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) { n += 16; z >>= 16; } + if (z >= 0x00100) { n += 8; z >>= 8; } + if (z >= 0x00010) { n += 4; z >>= 4; } + if (z >= 0x00004) { n += 2; z >>= 2; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; + int extra_read; +} stbi__bmp_data; + +static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress) +{ + // BI_BITFIELDS specifies masks explicitly, don't override + if (compress == 3) + return 1; + + if (compress == 0) { + if (info->bpp == 16) { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } else if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + // otherwise, use defaults, which is all-0 + info->mr = info->mg = info->mb = info->ma = 0; + } + return 1; + } + return 0; // error +} + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + if (compress >= 4) return stbi__errpuc("BMP JPEG/PNG", "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes + if (compress == 3 && info->bpp != 16 && info->bpp != 32) return stbi__errpuc("bad BMP", "bad BMP"); // bitfields requires 16 or 32 bits/pixel + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + stbi__bmp_set_mask_defaults(info, compress); + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else { + // V4/V5 header + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs + stbi__bmp_set_mask_defaults(info, compress); + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24) + psize = (info.offset - info.extra_read - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - info.extra_read - info.hsz) >> 2; + } + if (psize == 0) { + if (info.offset != s->callback_already_read + (s->img_buffer - s->img_buffer_original)) { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } + } + + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) width = s->img_x; + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24) width = 3 * s->img_x; + else if (info.bpp == 16) width = 2*s->img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) out[z++] = a; + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i]; p1[i] = p2[i]; p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) *is_rgb16 = 0; + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey) return STBI_grey_alpha; + // fallthrough + case 15: if(is_rgb16) *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x) *x = tga_w; + if (y) *y = tga_h; + if (comp) *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + if (tga_palette_len == 0) { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i*tga_comp+j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) return 0; // corrupt data + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else + out = (stbi_uc *) stbi__malloc(4 * w*h); + + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16) stbi__get16be(s); + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc) (stbi__get16be(s) >> 8); + } else { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16) + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + if (comp) *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) + return 0; + + for(i=0;i<84;++i) + stbi__get8(s); + + if (!stbi__pic_is4(s,"PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1) + if (channel&mask) + dest[i]=src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return stbi__errpuc("bad format","too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); + if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)) + return 0; + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); + + if (count > left) + count = (stbi_uc) left; + + if (!stbi__readval(s,packet->channel,value)) return 0; + + for(i=0; ichannel,dest,value); + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file","scanline overrun"); + + if (!stbi__readval(s,packet->channel,value)) + return 0; + + for(i=0;ichannel,dest,value); + } else { // Raw + ++count; + if (count>left) return stbi__errpuc("bad file","scanline overrun"); + + for(i=0;ichannel,dest)) + return 0; + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) comp = &internal_comp; + + for (i=0; i<92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + if (!result) return stbi__errpuc("outofmem", "Out of memory"); + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0) req_comp = *comp; + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') return 0; + if (stbi__get8(s) != 'a') return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + + if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!g) return stbi__err("outofmem", "Out of memory"); + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x) *x = g->w; + if (y) *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s,len); + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) + return stbi__errpuc("too large", "GIF image is too large"); + pcount = g->w * g->h; + g->out = (stbi_uc *) stbi__malloc(4 * pcount); + g->background = (stbi_uc *) stbi__malloc(4 * pcount); + g->history = (stbi_uc *) stbi__malloc(pcount); + if (!g->out || !g->background || !g->history) + return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0) + g->cur_y = g->max_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (!o) return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays) +{ + STBI_FREE(g->out); + STBI_FREE(g->history); + STBI_FREE(g->background); + + if (out) STBI_FREE(out); + if (delays && *delays) STBI_FREE(*delays); + return stbi__errpuc("outofmem", "Out of memory"); +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + + STBI_NOTUSED(out_size); + STBI_NOTUSED(delays_size); + + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); + if (!tmp) + return stbi__load_gif_main_outofmem(&g, out, delays); + else { + out = (stbi_uc*) tmp; + out_size = layers * stride; + } + + if (delays) { + int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); + if (!new_delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + *delays = new_delays; + delays_size = layers * sizeof(int); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (!out) + return stbi__load_gif_main_outofmem(&g, out, delays); + out_size = layers * stride; + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + if (!*delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + delays_size = layers * sizeof(int); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } else if (g.out) { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int) strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + + *x = width; + *y = height; + + if (comp) *comp = 3; + if (req_comp == 0) req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i=0; i < width; ++i) + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + if (p == NULL) { + stbi__rewind( s ); + return 0; + } + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + STBI_NOTUSED(stbi__get32be(s)); + STBI_NOTUSED(stbi__get32be(s)); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); + if (ri->bits_per_channel == 0) + return 0; + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8)); + + if (req_comp && req_comp != s->img_n) { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char) stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) + *c = (char) stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + if (maxv > 65535) + return stbi__err("max value > 65535", "PPM image supports only 8-bit and 16-bit images"); + else if (maxv > 255) + return 16; + else + return 8; +} + +static int stbi__pnm_is16(stbi__context *s) +{ + if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) + return 1; + return 0; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) return 1; + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_is16(s)) return 1; + #endif + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + fseek(f,pos,SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f,pos,SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +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. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +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 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. +------------------------------------------------------------------------------ +*/ diff --git a/lib/stb_image.onyx b/lib/stb_image.onyx new file mode 100644 index 0000000..d937507 --- /dev/null +++ b/lib/stb_image.onyx @@ -0,0 +1,13 @@ +package stb_image + +#library "stb_image" + +#foreign "stb_image" { + stbi_load :: (filename: cstr, width: ^i32, height: ^i32, channels: ^i32, desired_channels: i32) -> ^u8 --- + stbi_image_free :: (image_data: ^u8) -> void --- +} + +#export "stbi_heap_alloc" calloc +#export "stbi_heap_resize" cresize +#export "stbi_heap_free" cfree + diff --git a/lib/stb_rect_pack.h b/lib/stb_rect_pack.h new file mode 100644 index 0000000..ab24c48 --- /dev/null +++ b/lib/stb_rect_pack.h @@ -0,0 +1,623 @@ +// stb_rect_pack.h - v1.01 - public domain - rectangle packing +// Sean Barrett 2014 +// +// Useful for e.g. packing rectangular textures into an atlas. +// Does not do rotation. +// +// Before #including, +// +// #define STB_RECT_PACK_IMPLEMENTATION +// +// in the file that you want to have the implementation. +// +// Not necessarily the awesomest packing method, but better than +// the totally naive one in stb_truetype (which is primarily what +// this is meant to replace). +// +// Has only had a few tests run, may have issues. +// +// More docs to come. +// +// No memory allocations; uses qsort() and assert() from stdlib. +// Can override those by defining STBRP_SORT and STBRP_ASSERT. +// +// This library currently uses the Skyline Bottom-Left algorithm. +// +// Please note: better rectangle packers are welcome! Please +// implement them to the same API, but with a different init +// function. +// +// Credits +// +// Library +// Sean Barrett +// Minor features +// Martins Mozeiko +// github:IntellectualKitty +// +// Bugfixes / warning fixes +// Jeremy Jaussaud +// Fabian Giesen +// +// Version history: +// +// 1.01 (2021-07-11) always use large rect mode, expose STBRP__MAXVAL in public section +// 1.00 (2019-02-25) avoid small space waste; gracefully fail too-wide rectangles +// 0.99 (2019-02-07) warning fixes +// 0.11 (2017-03-03) return packing success/fail result +// 0.10 (2016-10-25) remove cast-away-const to avoid warnings +// 0.09 (2016-08-27) fix compiler warnings +// 0.08 (2015-09-13) really fix bug with empty rects (w=0 or h=0) +// 0.07 (2015-09-13) fix bug with empty rects (w=0 or h=0) +// 0.06 (2015-04-15) added STBRP_SORT to allow replacing qsort +// 0.05: added STBRP_ASSERT to allow replacing assert +// 0.04: fixed minor bug in STBRP_LARGE_RECTS support +// 0.01: initial release +// +// LICENSE +// +// See end of file for license information. + +////////////////////////////////////////////////////////////////////////////// +// +// INCLUDE SECTION +// + +#ifndef STB_INCLUDE_STB_RECT_PACK_H +#define STB_INCLUDE_STB_RECT_PACK_H + +#define STB_RECT_PACK_VERSION 1 + +#ifdef STBRP_STATIC +#define STBRP_DEF static +#else +#define STBRP_DEF extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct stbrp_context stbrp_context; +typedef struct stbrp_node stbrp_node; +typedef struct stbrp_rect stbrp_rect; + +typedef int stbrp_coord; + +#define STBRP__MAXVAL 0x7fffffff +// Mostly for internal use, but this is the maximum supported coordinate value. + +STBRP_DEF int stbrp_pack_rects (stbrp_context *context, stbrp_rect *rects, int num_rects); +// Assign packed locations to rectangles. The rectangles are of type +// 'stbrp_rect' defined below, stored in the array 'rects', and there +// are 'num_rects' many of them. +// +// Rectangles which are successfully packed have the 'was_packed' flag +// set to a non-zero value and 'x' and 'y' store the minimum location +// on each axis (i.e. bottom-left in cartesian coordinates, top-left +// if you imagine y increasing downwards). Rectangles which do not fit +// have the 'was_packed' flag set to 0. +// +// You should not try to access the 'rects' array from another thread +// while this function is running, as the function temporarily reorders +// the array while it executes. +// +// To pack into another rectangle, you need to call stbrp_init_target +// again. To continue packing into the same rectangle, you can call +// this function again. Calling this multiple times with multiple rect +// arrays will probably produce worse packing results than calling it +// a single time with the full rectangle array, but the option is +// available. +// +// The function returns 1 if all of the rectangles were successfully +// packed and 0 otherwise. + +struct stbrp_rect +{ + // reserved for your use: + int id; + + // input: + stbrp_coord w, h; + + // output: + stbrp_coord x, y; + int was_packed; // non-zero if valid packing + +}; // 16 bytes, nominally + + +STBRP_DEF void stbrp_init_target (stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes); +// Initialize a rectangle packer to: +// pack a rectangle that is 'width' by 'height' in dimensions +// using temporary storage provided by the array 'nodes', which is 'num_nodes' long +// +// You must call this function every time you start packing into a new target. +// +// There is no "shutdown" function. The 'nodes' memory must stay valid for +// the following stbrp_pack_rects() call (or calls), but can be freed after +// the call (or calls) finish. +// +// Note: to guarantee best results, either: +// 1. make sure 'num_nodes' >= 'width' +// or 2. call stbrp_allow_out_of_mem() defined below with 'allow_out_of_mem = 1' +// +// If you don't do either of the above things, widths will be quantized to multiples +// of small integers to guarantee the algorithm doesn't run out of temporary storage. +// +// If you do #2, then the non-quantized algorithm will be used, but the algorithm +// may run out of temporary storage and be unable to pack some rectangles. + +STBRP_DEF void stbrp_setup_allow_out_of_mem (stbrp_context *context, int allow_out_of_mem); +// Optionally call this function after init but before doing any packing to +// change the handling of the out-of-temp-memory scenario, described above. +// If you call init again, this will be reset to the default (false). + + +STBRP_DEF void stbrp_setup_heuristic (stbrp_context *context, int heuristic); +// Optionally select which packing heuristic the library should use. Different +// heuristics will produce better/worse results for different data sets. +// If you call init again, this will be reset to the default. + +enum +{ + STBRP_HEURISTIC_Skyline_default=0, + STBRP_HEURISTIC_Skyline_BL_sortHeight = STBRP_HEURISTIC_Skyline_default, + STBRP_HEURISTIC_Skyline_BF_sortHeight +}; + + +////////////////////////////////////////////////////////////////////////////// +// +// the details of the following structures don't matter to you, but they must +// be visible so you can handle the memory allocations for them + +struct stbrp_node +{ + stbrp_coord x,y; + stbrp_node *next; +}; + +struct stbrp_context +{ + int width; + int height; + int align; + int init_mode; + int heuristic; + int num_nodes; + stbrp_node *active_head; + stbrp_node *free_head; + stbrp_node extra[2]; // we allocate two extra nodes so optimal user-node-count is 'width' not 'width+2' +}; + +#ifdef __cplusplus +} +#endif + +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// IMPLEMENTATION SECTION +// + +#ifdef STB_RECT_PACK_IMPLEMENTATION +#ifndef STBRP_SORT +#include +#define STBRP_SORT qsort +#endif + +#ifndef STBRP_ASSERT +#include +#define STBRP_ASSERT assert +#endif + +#ifdef _MSC_VER +#define STBRP__NOTUSED(v) (void)(v) +#define STBRP__CDECL __cdecl +#else +#define STBRP__NOTUSED(v) (void)sizeof(v) +#define STBRP__CDECL +#endif + +enum +{ + STBRP__INIT_skyline = 1 +}; + +STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic) +{ + switch (context->init_mode) { + case STBRP__INIT_skyline: + STBRP_ASSERT(heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight || heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight); + context->heuristic = heuristic; + break; + default: + STBRP_ASSERT(0); + } +} + +STBRP_DEF void stbrp_setup_allow_out_of_mem(stbrp_context *context, int allow_out_of_mem) +{ + if (allow_out_of_mem) + // if it's ok to run out of memory, then don't bother aligning them; + // this gives better packing, but may fail due to OOM (even though + // the rectangles easily fit). @TODO a smarter approach would be to only + // quantize once we've hit OOM, then we could get rid of this parameter. + context->align = 1; + else { + // if it's not ok to run out of memory, then quantize the widths + // so that num_nodes is always enough nodes. + // + // I.e. num_nodes * align >= width + // align >= width / num_nodes + // align = ceil(width/num_nodes) + + context->align = (context->width + context->num_nodes-1) / context->num_nodes; + } +} + +STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes) +{ + int i; + + for (i=0; i < num_nodes-1; ++i) + nodes[i].next = &nodes[i+1]; + nodes[i].next = NULL; + context->init_mode = STBRP__INIT_skyline; + context->heuristic = STBRP_HEURISTIC_Skyline_default; + context->free_head = &nodes[0]; + context->active_head = &context->extra[0]; + context->width = width; + context->height = height; + context->num_nodes = num_nodes; + stbrp_setup_allow_out_of_mem(context, 0); + + // node 0 is the full width, node 1 is the sentinel (lets us not store width explicitly) + context->extra[0].x = 0; + context->extra[0].y = 0; + context->extra[0].next = &context->extra[1]; + context->extra[1].x = (stbrp_coord) width; + context->extra[1].y = (1<<30); + context->extra[1].next = NULL; +} + +// find minimum y position if it starts at x1 +static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0, int width, int *pwaste) +{ + stbrp_node *node = first; + int x1 = x0 + width; + int min_y, visited_width, waste_area; + + STBRP__NOTUSED(c); + + STBRP_ASSERT(first->x <= x0); + + #if 0 + // skip in case we're past the node + while (node->next->x <= x0) + ++node; + #else + STBRP_ASSERT(node->next->x > x0); // we ended up handling this in the caller for efficiency + #endif + + STBRP_ASSERT(node->x <= x0); + + min_y = 0; + waste_area = 0; + visited_width = 0; + while (node->x < x1) { + if (node->y > min_y) { + // raise min_y higher. + // we've accounted for all waste up to min_y, + // but we'll now add more waste for everything we've visted + waste_area += visited_width * (node->y - min_y); + min_y = node->y; + // the first time through, visited_width might be reduced + if (node->x < x0) + visited_width += node->next->x - x0; + else + visited_width += node->next->x - node->x; + } else { + // add waste area + int under_width = node->next->x - node->x; + if (under_width + visited_width > width) + under_width = width - visited_width; + waste_area += under_width * (min_y - node->y); + visited_width += under_width; + } + node = node->next; + } + + *pwaste = waste_area; + return min_y; +} + +typedef struct +{ + int x,y; + stbrp_node **prev_link; +} stbrp__findresult; + +static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int width, int height) +{ + int best_waste = (1<<30), best_x, best_y = (1 << 30); + stbrp__findresult fr; + stbrp_node **prev, *node, *tail, **best = NULL; + + // align to multiple of c->align + width = (width + c->align - 1); + width -= width % c->align; + STBRP_ASSERT(width % c->align == 0); + + // if it can't possibly fit, bail immediately + if (width > c->width || height > c->height) { + fr.prev_link = NULL; + fr.x = fr.y = 0; + return fr; + } + + node = c->active_head; + prev = &c->active_head; + while (node->x + width <= c->width) { + int y,waste; + y = stbrp__skyline_find_min_y(c, node, node->x, width, &waste); + if (c->heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight) { // actually just want to test BL + // bottom left + if (y < best_y) { + best_y = y; + best = prev; + } + } else { + // best-fit + if (y + height <= c->height) { + // can only use it if it first vertically + if (y < best_y || (y == best_y && waste < best_waste)) { + best_y = y; + best_waste = waste; + best = prev; + } + } + } + prev = &node->next; + node = node->next; + } + + best_x = (best == NULL) ? 0 : (*best)->x; + + // if doing best-fit (BF), we also have to try aligning right edge to each node position + // + // e.g, if fitting + // + // ____________________ + // |____________________| + // + // into + // + // | | + // | ____________| + // |____________| + // + // then right-aligned reduces waste, but bottom-left BL is always chooses left-aligned + // + // This makes BF take about 2x the time + + if (c->heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight) { + tail = c->active_head; + node = c->active_head; + prev = &c->active_head; + // find first node that's admissible + while (tail->x < width) + tail = tail->next; + while (tail) { + int xpos = tail->x - width; + int y,waste; + STBRP_ASSERT(xpos >= 0); + // find the left position that matches this + while (node->next->x <= xpos) { + prev = &node->next; + node = node->next; + } + STBRP_ASSERT(node->next->x > xpos && node->x <= xpos); + y = stbrp__skyline_find_min_y(c, node, xpos, width, &waste); + if (y + height <= c->height) { + if (y <= best_y) { + if (y < best_y || waste < best_waste || (waste==best_waste && xpos < best_x)) { + best_x = xpos; + STBRP_ASSERT(y <= best_y); + best_y = y; + best_waste = waste; + best = prev; + } + } + } + tail = tail->next; + } + } + + fr.prev_link = best; + fr.x = best_x; + fr.y = best_y; + return fr; +} + +static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *context, int width, int height) +{ + // find best position according to heuristic + stbrp__findresult res = stbrp__skyline_find_best_pos(context, width, height); + stbrp_node *node, *cur; + + // bail if: + // 1. it failed + // 2. the best node doesn't fit (we don't always check this) + // 3. we're out of memory + if (res.prev_link == NULL || res.y + height > context->height || context->free_head == NULL) { + res.prev_link = NULL; + return res; + } + + // on success, create new node + node = context->free_head; + node->x = (stbrp_coord) res.x; + node->y = (stbrp_coord) (res.y + height); + + context->free_head = node->next; + + // insert the new node into the right starting point, and + // let 'cur' point to the remaining nodes needing to be + // stiched back in + + cur = *res.prev_link; + if (cur->x < res.x) { + // preserve the existing one, so start testing with the next one + stbrp_node *next = cur->next; + cur->next = node; + cur = next; + } else { + *res.prev_link = node; + } + + // from here, traverse cur and free the nodes, until we get to one + // that shouldn't be freed + while (cur->next && cur->next->x <= res.x + width) { + stbrp_node *next = cur->next; + // move the current node to the free list + cur->next = context->free_head; + context->free_head = cur; + cur = next; + } + + // stitch the list back in + node->next = cur; + + if (cur->x < res.x + width) + cur->x = (stbrp_coord) (res.x + width); + +#ifdef _DEBUG + cur = context->active_head; + while (cur->x < context->width) { + STBRP_ASSERT(cur->x < cur->next->x); + cur = cur->next; + } + STBRP_ASSERT(cur->next == NULL); + + { + int count=0; + cur = context->active_head; + while (cur) { + cur = cur->next; + ++count; + } + cur = context->free_head; + while (cur) { + cur = cur->next; + ++count; + } + STBRP_ASSERT(count == context->num_nodes+2); + } +#endif + + return res; +} + +static int STBRP__CDECL rect_height_compare(const void *a, const void *b) +{ + const stbrp_rect *p = (const stbrp_rect *) a; + const stbrp_rect *q = (const stbrp_rect *) b; + if (p->h > q->h) + return -1; + if (p->h < q->h) + return 1; + return (p->w > q->w) ? -1 : (p->w < q->w); +} + +static int STBRP__CDECL rect_original_order(const void *a, const void *b) +{ + const stbrp_rect *p = (const stbrp_rect *) a; + const stbrp_rect *q = (const stbrp_rect *) b; + return (p->was_packed < q->was_packed) ? -1 : (p->was_packed > q->was_packed); +} + +STBRP_DEF int stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects, int num_rects) +{ + int i, all_rects_packed = 1; + + // we use the 'was_packed' field internally to allow sorting/unsorting + for (i=0; i < num_rects; ++i) { + rects[i].was_packed = i; + } + + // sort according to heuristic + STBRP_SORT(rects, num_rects, sizeof(rects[0]), rect_height_compare); + + for (i=0; i < num_rects; ++i) { + if (rects[i].w == 0 || rects[i].h == 0) { + rects[i].x = rects[i].y = 0; // empty rect needs no space + } else { + stbrp__findresult fr = stbrp__skyline_pack_rectangle(context, rects[i].w, rects[i].h); + if (fr.prev_link) { + rects[i].x = (stbrp_coord) fr.x; + rects[i].y = (stbrp_coord) fr.y; + } else { + rects[i].x = rects[i].y = STBRP__MAXVAL; + } + } + } + + // unsort + STBRP_SORT(rects, num_rects, sizeof(rects[0]), rect_original_order); + + // set was_packed flags and all_rects_packed status + for (i=0; i < num_rects; ++i) { + rects[i].was_packed = !(rects[i].x == STBRP__MAXVAL && rects[i].y == STBRP__MAXVAL); + if (!rects[i].was_packed) + all_rects_packed = 0; + } + + // return the all_rects_packed status + return all_rects_packed; +} +#endif + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +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. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +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 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. +------------------------------------------------------------------------------ +*/ \ No newline at end of file diff --git a/lib/stb_truetype.c b/lib/stb_truetype.c new file mode 100644 index 0000000..0ae528a --- /dev/null +++ b/lib/stb_truetype.c @@ -0,0 +1,90 @@ +#define ONYX_LIBRARY_NAME stb_truetype +#include "onyx_library.h" + +static wasm_func_t* heap_alloc = NULL; +static void *__onyx_heap_alloc_wrapper(int size, void* userdata) { + if (heap_alloc == NULL) { + wasm_extern_t *heap_alloc_extern = runtime->wasm_extern_lookup_by_name(runtime->wasm_module, runtime->wasm_instance, "stbtt_heap_alloc"); + heap_alloc = runtime->wasm_extern_as_func(heap_alloc_extern); + } + + wasm_val_t args[] = { WASM_I32_VAL(size) }; + wasm_val_t results[1]; + wasm_val_vec_t args_arr = WASM_ARRAY_VEC(args); + wasm_val_vec_t results_arr = WASM_ARRAY_VEC(results); + + runtime->wasm_func_call(heap_alloc, &args_arr, &results_arr); + return ONYX_PTR(results[0].of.i32); +} + +static wasm_func_t* heap_free = NULL; +static void __onyx_heap_free_wrapper(void *ptr, void* userdata) { + if (heap_free == NULL) { + wasm_extern_t *heap_free_extern = runtime->wasm_extern_lookup_by_name(runtime->wasm_module, runtime->wasm_instance, "stbtt_heap_free"); + heap_free = runtime->wasm_extern_as_func(heap_free_extern); + } + + int onyx_ptr = (int) ((char*) ptr - runtime->wasm_memory_data(runtime->wasm_memory)); + + wasm_val_t args[] = { WASM_I32_VAL(onyx_ptr) }; + wasm_val_vec_t results = {0,0}; + wasm_val_vec_t args_arr = WASM_ARRAY_VEC(args); + + runtime->wasm_func_call(heap_free, &args_arr, &results); +} + +#define STBTT_malloc __onyx_heap_alloc_wrapper +#define STBTT_free __onyx_heap_free_wrapper + +#define STB_TRUETYPE_IMPLEMENTATION +#define STB_RECT_PACK_IMPLEMENTATION +#include "stb_rect_pack.h" +#include "stb_truetype.h" + + +#define PTR WASM_I32 +#define INT WASM_I32 +#define FLOAT WASM_F32 +#define PARAM(n, k) (params->data[n].of.k) + +// +// Only wrapping the small subset of the features that I need. +// +ONYX_DEF(stbtt_PackBegin, (PTR, PTR, INT, INT, INT, INT), (INT)) { + results->data[0] = WASM_I32_VAL(stbtt_PackBegin(ONYX_PTR(PARAM(0, i32)), ONYX_PTR(PARAM(1, i32)), PARAM(2, i32), PARAM(3, i32), PARAM(4, i32), PARAM(5, i32), NULL)); + return NULL; +} + +ONYX_DEF(stbtt_PackEnd, (PTR), ()) { + stbtt_PackEnd(ONYX_PTR(PARAM(0, i32))); + return NULL; +} + +ONYX_DEF(stbtt_PackSetOversampling, (PTR, INT, INT), ()) { + stbtt_PackSetOversampling(ONYX_PTR(PARAM(0, i32)), PARAM(1, i32), PARAM(2, i32)); + return NULL; +} + +ONYX_DEF(stbtt_PackFontRange, (PTR, PTR, INT, FLOAT, INT, INT, PTR), (INT)) { + results->data[0] = WASM_I32_VAL( + stbtt_PackFontRange(ONYX_PTR(PARAM(0, i32)), ONYX_PTR(PARAM(1, i32)), + PARAM(2, i32), PARAM(3, f32), PARAM(4, i32), PARAM(5, i32), ONYX_PTR(PARAM(6, i32))) + ); + + return NULL; +} + +ONYX_DEF(stbtt_GetPackedQuad, (PTR, INT, INT, INT, PTR, PTR, PTR, INT), ()) { + stbtt_GetPackedQuad(ONYX_PTR(PARAM(0, i32)), PARAM(1, i32), PARAM(2, i32), PARAM(3, i32), ONYX_PTR(PARAM(4, i32)), ONYX_PTR(PARAM(5, i32)), ONYX_PTR(PARAM(6, i32)), PARAM(7, i32)); + return NULL; +} + +ONYX_LIBRARY { + ONYX_FUNC(stbtt_PackBegin) + ONYX_FUNC(stbtt_PackEnd) + ONYX_FUNC(stbtt_PackSetOversampling) + ONYX_FUNC(stbtt_PackFontRange) + ONYX_FUNC(stbtt_GetPackedQuad) + + NULL +}; diff --git a/lib/stb_truetype.h b/lib/stb_truetype.h new file mode 100644 index 0000000..5e2a2e4 --- /dev/null +++ b/lib/stb_truetype.h @@ -0,0 +1,5077 @@ +// stb_truetype.h - v1.26 - public domain +// authored from 2009-2021 by Sean Barrett / RAD Game Tools +// +// ======================================================================= +// +// NO SECURITY GUARANTEE -- DO NOT USE THIS ON UNTRUSTED FONT FILES +// +// This library does no range checking of the offsets found in the file, +// meaning an attacker can use it to read arbitrary memory. +// +// ======================================================================= +// +// This library processes TrueType files: +// parse files +// extract glyph metrics +// extract glyph shapes +// render glyphs to one-channel bitmaps with antialiasing (box filter) +// render glyphs to one-channel SDF bitmaps (signed-distance field/function) +// +// Todo: +// non-MS cmaps +// crashproof on bad data +// hinting? (no longer patented) +// cleartype-style AA? +// optimize: use simple memory allocator for intermediates +// optimize: build edge-list directly from curves +// optimize: rasterize directly from curves? +// +// ADDITIONAL CONTRIBUTORS +// +// Mikko Mononen: compound shape support, more cmap formats +// Tor Andersson: kerning, subpixel rendering +// Dougall Johnson: OpenType / Type 2 font handling +// Daniel Ribeiro Maciel: basic GPOS-based kerning +// +// Misc other: +// Ryan Gordon +// Simon Glass +// github:IntellectualKitty +// Imanol Celaya +// Daniel Ribeiro Maciel +// +// Bug/warning reports/fixes: +// "Zer" on mollyrocket Fabian "ryg" Giesen github:NiLuJe +// Cass Everitt Martins Mozeiko github:aloucks +// stoiko (Haemimont Games) Cap Petschulat github:oyvindjam +// Brian Hook Omar Cornut github:vassvik +// Walter van Niftrik Ryan Griege +// David Gow Peter LaValle +// David Given Sergey Popov +// Ivan-Assen Ivanov Giumo X. Clanjor +// Anthony Pesch Higor Euripedes +// Johan Duparc Thomas Fields +// Hou Qiming Derek Vinyard +// Rob Loach Cort Stratton +// Kenney Phillis Jr. Brian Costabile +// Ken Voskuil (kaesve) +// +// VERSION HISTORY +// +// 1.26 (2021-08-28) fix broken rasterizer +// 1.25 (2021-07-11) many fixes +// 1.24 (2020-02-05) fix warning +// 1.23 (2020-02-02) query SVG data for glyphs; query whole kerning table (but only kern not GPOS) +// 1.22 (2019-08-11) minimize missing-glyph duplication; fix kerning if both 'GPOS' and 'kern' are defined +// 1.21 (2019-02-25) fix warning +// 1.20 (2019-02-07) PackFontRange skips missing codepoints; GetScaleFontVMetrics() +// 1.19 (2018-02-11) GPOS kerning, STBTT_fmod +// 1.18 (2018-01-29) add missing function +// 1.17 (2017-07-23) make more arguments const; doc fix +// 1.16 (2017-07-12) SDF support +// 1.15 (2017-03-03) make more arguments const +// 1.14 (2017-01-16) num-fonts-in-TTC function +// 1.13 (2017-01-02) support OpenType fonts, certain Apple fonts +// 1.12 (2016-10-25) suppress warnings about casting away const with -Wcast-qual +// 1.11 (2016-04-02) fix unused-variable warning +// 1.10 (2016-04-02) user-defined fabs(); rare memory leak; remove duplicate typedef +// 1.09 (2016-01-16) warning fix; avoid crash on outofmem; use allocation userdata properly +// 1.08 (2015-09-13) document stbtt_Rasterize(); fixes for vertical & horizontal edges +// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; +// variant PackFontRanges to pack and render in separate phases; +// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); +// fixed an assert() bug in the new rasterizer +// replace assert() with STBTT_assert() in new rasterizer +// +// Full history can be found at the end of this file. +// +// LICENSE +// +// See end of file for license information. +// +// USAGE +// +// Include this file in whatever places need to refer to it. In ONE C/C++ +// file, write: +// #define STB_TRUETYPE_IMPLEMENTATION +// before the #include of this file. This expands out the actual +// implementation into that C/C++ file. +// +// To make the implementation private to the file that generates the implementation, +// #define STBTT_STATIC +// +// Simple 3D API (don't ship this, but it's fine for tools and quick start) +// stbtt_BakeFontBitmap() -- bake a font to a bitmap for use as texture +// stbtt_GetBakedQuad() -- compute quad to draw for a given char +// +// Improved 3D API (more shippable): +// #include "stb_rect_pack.h" -- optional, but you really want it +// stbtt_PackBegin() +// stbtt_PackSetOversampling() -- for improved quality on small fonts +// stbtt_PackFontRanges() -- pack and renders +// stbtt_PackEnd() +// stbtt_GetPackedQuad() +// +// "Load" a font file from a memory buffer (you have to keep the buffer loaded) +// stbtt_InitFont() +// stbtt_GetFontOffsetForIndex() -- indexing for TTC font collections +// stbtt_GetNumberOfFonts() -- number of fonts for TTC font collections +// +// Render a unicode codepoint to a bitmap +// stbtt_GetCodepointBitmap() -- allocates and returns a bitmap +// stbtt_MakeCodepointBitmap() -- renders into bitmap you provide +// stbtt_GetCodepointBitmapBox() -- how big the bitmap must be +// +// Character advance/positioning +// stbtt_GetCodepointHMetrics() +// stbtt_GetFontVMetrics() +// stbtt_GetFontVMetricsOS2() +// stbtt_GetCodepointKernAdvance() +// +// Starting with version 1.06, the rasterizer was replaced with a new, +// faster and generally-more-precise rasterizer. The new rasterizer more +// accurately measures pixel coverage for anti-aliasing, except in the case +// where multiple shapes overlap, in which case it overestimates the AA pixel +// coverage. Thus, anti-aliasing of intersecting shapes may look wrong. If +// this turns out to be a problem, you can re-enable the old rasterizer with +// #define STBTT_RASTERIZER_VERSION 1 +// which will incur about a 15% speed hit. +// +// ADDITIONAL DOCUMENTATION +// +// Immediately after this block comment are a series of sample programs. +// +// After the sample programs is the "header file" section. This section +// includes documentation for each API function. +// +// Some important concepts to understand to use this library: +// +// Codepoint +// Characters are defined by unicode codepoints, e.g. 65 is +// uppercase A, 231 is lowercase c with a cedilla, 0x7e30 is +// the hiragana for "ma". +// +// Glyph +// A visual character shape (every codepoint is rendered as +// some glyph) +// +// Glyph index +// A font-specific integer ID representing a glyph +// +// Baseline +// Glyph shapes are defined relative to a baseline, which is the +// bottom of uppercase characters. Characters extend both above +// and below the baseline. +// +// Current Point +// As you draw text to the screen, you keep track of a "current point" +// which is the origin of each character. The current point's vertical +// position is the baseline. Even "baked fonts" use this model. +// +// Vertical Font Metrics +// The vertical qualities of the font, used to vertically position +// and space the characters. See docs for stbtt_GetFontVMetrics. +// +// Font Size in Pixels or Points +// The preferred interface for specifying font sizes in stb_truetype +// is to specify how tall the font's vertical extent should be in pixels. +// If that sounds good enough, skip the next paragraph. +// +// Most font APIs instead use "points", which are a common typographic +// measurement for describing font size, defined as 72 points per inch. +// stb_truetype provides a point API for compatibility. However, true +// "per inch" conventions don't make much sense on computer displays +// since different monitors have different number of pixels per +// inch. For example, Windows traditionally uses a convention that +// there are 96 pixels per inch, thus making 'inch' measurements have +// nothing to do with inches, and thus effectively defining a point to +// be 1.333 pixels. Additionally, the TrueType font data provides +// an explicit scale factor to scale a given font's glyphs to points, +// but the author has observed that this scale factor is often wrong +// for non-commercial fonts, thus making fonts scaled in points +// according to the TrueType spec incoherently sized in practice. +// +// DETAILED USAGE: +// +// Scale: +// Select how high you want the font to be, in points or pixels. +// Call ScaleForPixelHeight or ScaleForMappingEmToPixels to compute +// a scale factor SF that will be used by all other functions. +// +// Baseline: +// You need to select a y-coordinate that is the baseline of where +// your text will appear. Call GetFontBoundingBox to get the baseline-relative +// bounding box for all characters. SF*-y0 will be the distance in pixels +// that the worst-case character could extend above the baseline, so if +// you want the top edge of characters to appear at the top of the +// screen where y=0, then you would set the baseline to SF*-y0. +// +// Current point: +// Set the current point where the first character will appear. The +// first character could extend left of the current point; this is font +// dependent. You can either choose a current point that is the leftmost +// point and hope, or add some padding, or check the bounding box or +// left-side-bearing of the first character to be displayed and set +// the current point based on that. +// +// Displaying a character: +// Compute the bounding box of the character. It will contain signed values +// relative to . I.e. if it returns x0,y0,x1,y1, +// then the character should be displayed in the rectangle from +// to = 32 && *text < 128) { + stbtt_aligned_quad q; + stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl & d3d10+,0=d3d9 + glTexCoord2f(q.s0,q.t0); glVertex2f(q.x0,q.y0); + glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y0); + glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y1); + glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y1); + } + ++text; + } + glEnd(); +} +#endif +// +// +////////////////////////////////////////////////////////////////////////////// +// +// Complete program (this compiles): get a single bitmap, print as ASCII art +// +#if 0 +#include +#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation +#include "stb_truetype.h" + +char ttf_buffer[1<<25]; + +int main(int argc, char **argv) +{ + stbtt_fontinfo font; + unsigned char *bitmap; + int w,h,i,j,c = (argc > 1 ? atoi(argv[1]) : 'a'), s = (argc > 2 ? atoi(argv[2]) : 20); + + fread(ttf_buffer, 1, 1<<25, fopen(argc > 3 ? argv[3] : "c:/windows/fonts/arialbd.ttf", "rb")); + + stbtt_InitFont(&font, ttf_buffer, stbtt_GetFontOffsetForIndex(ttf_buffer,0)); + bitmap = stbtt_GetCodepointBitmap(&font, 0,stbtt_ScaleForPixelHeight(&font, s), c, &w, &h, 0,0); + + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) + putchar(" .:ioVM@"[bitmap[j*w+i]>>5]); + putchar('\n'); + } + return 0; +} +#endif +// +// Output: +// +// .ii. +// @@@@@@. +// V@Mio@@o +// :i. V@V +// :oM@@M +// :@@@MM@M +// @@o o@M +// :@@. M@M +// @@@o@@@@ +// :M@@V:@@. +// +////////////////////////////////////////////////////////////////////////////// +// +// Complete program: print "Hello World!" banner, with bugs +// +#if 0 +char buffer[24<<20]; +unsigned char screen[20][79]; + +int main(int arg, char **argv) +{ + stbtt_fontinfo font; + int i,j,ascent,baseline,ch=0; + float scale, xpos=2; // leave a little padding in case the character extends left + char *text = "Heljo World!"; // intentionally misspelled to show 'lj' brokenness + + fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb")); + stbtt_InitFont(&font, buffer, 0); + + scale = stbtt_ScaleForPixelHeight(&font, 15); + stbtt_GetFontVMetrics(&font, &ascent,0,0); + baseline = (int) (ascent*scale); + + while (text[ch]) { + int advance,lsb,x0,y0,x1,y1; + float x_shift = xpos - (float) floor(xpos); + stbtt_GetCodepointHMetrics(&font, text[ch], &advance, &lsb); + stbtt_GetCodepointBitmapBoxSubpixel(&font, text[ch], scale,scale,x_shift,0, &x0,&y0,&x1,&y1); + stbtt_MakeCodepointBitmapSubpixel(&font, &screen[baseline + y0][(int) xpos + x0], x1-x0,y1-y0, 79, scale,scale,x_shift,0, text[ch]); + // note that this stomps the old data, so where character boxes overlap (e.g. 'lj') it's wrong + // because this API is really for baking character bitmaps into textures. if you want to render + // a sequence of characters, you really need to render each bitmap to a temp buffer, then + // "alpha blend" that into the working buffer + xpos += (advance * scale); + if (text[ch+1]) + xpos += scale*stbtt_GetCodepointKernAdvance(&font, text[ch],text[ch+1]); + ++ch; + } + + for (j=0; j < 20; ++j) { + for (i=0; i < 78; ++i) + putchar(" .:ioVM@"[screen[j][i]>>5]); + putchar('\n'); + } + + return 0; +} +#endif + + +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +//// +//// INTEGRATION WITH YOUR CODEBASE +//// +//// The following sections allow you to supply alternate definitions +//// of C library functions used by stb_truetype, e.g. if you don't +//// link with the C runtime library. + +#ifdef STB_TRUETYPE_IMPLEMENTATION + // #define your own (u)stbtt_int8/16/32 before including to override this + #ifndef stbtt_uint8 + typedef unsigned char stbtt_uint8; + typedef signed char stbtt_int8; + typedef unsigned short stbtt_uint16; + typedef signed short stbtt_int16; + typedef unsigned int stbtt_uint32; + typedef signed int stbtt_int32; + #endif + + typedef char stbtt__check_size32[sizeof(stbtt_int32)==4 ? 1 : -1]; + typedef char stbtt__check_size16[sizeof(stbtt_int16)==2 ? 1 : -1]; + + // e.g. #define your own STBTT_ifloor/STBTT_iceil() to avoid math.h + #ifndef STBTT_ifloor + #include + #define STBTT_ifloor(x) ((int) floor(x)) + #define STBTT_iceil(x) ((int) ceil(x)) + #endif + + #ifndef STBTT_sqrt + #include + #define STBTT_sqrt(x) sqrt(x) + #define STBTT_pow(x,y) pow(x,y) + #endif + + #ifndef STBTT_fmod + #include + #define STBTT_fmod(x,y) fmod(x,y) + #endif + + #ifndef STBTT_cos + #include + #define STBTT_cos(x) cos(x) + #define STBTT_acos(x) acos(x) + #endif + + #ifndef STBTT_fabs + #include + #define STBTT_fabs(x) fabs(x) + #endif + + // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h + #ifndef STBTT_malloc + #include + #define STBTT_malloc(x,u) ((void)(u),malloc(x)) + #define STBTT_free(x,u) ((void)(u),free(x)) + #endif + + #ifndef STBTT_assert + #include + #define STBTT_assert(x) assert(x) + #endif + + #ifndef STBTT_strlen + #include + #define STBTT_strlen(x) strlen(x) + #endif + + #ifndef STBTT_memcpy + #include + #define STBTT_memcpy memcpy + #define STBTT_memset memset + #endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +//// +//// INTERFACE +//// +//// + +#ifndef __STB_INCLUDE_STB_TRUETYPE_H__ +#define __STB_INCLUDE_STB_TRUETYPE_H__ + +#ifdef STBTT_STATIC +#define STBTT_DEF static +#else +#define STBTT_DEF extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// private structure +typedef struct +{ + unsigned char *data; + int cursor; + int size; +} stbtt__buf; + +////////////////////////////////////////////////////////////////////////////// +// +// TEXTURE BAKING API +// +// If you use this API, you only have to call two functions ever. +// + +typedef struct +{ + unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap + float xoff,yoff,xadvance; +} stbtt_bakedchar; + +STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) + float pixel_height, // height of font in pixels + unsigned char *pixels, int pw, int ph, // bitmap to be filled in + int first_char, int num_chars, // characters to bake + stbtt_bakedchar *chardata); // you allocate this, it's num_chars long +// if return is positive, the first unused row of the bitmap +// if return is negative, returns the negative of the number of characters that fit +// if return is 0, no characters fit and no rows were used +// This uses a very crappy packing. + +typedef struct +{ + float x0,y0,s0,t0; // top-left + float x1,y1,s1,t1; // bottom-right +} stbtt_aligned_quad; + +STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int pw, int ph, // same data as above + int char_index, // character to display + float *xpos, float *ypos, // pointers to current position in screen pixel space + stbtt_aligned_quad *q, // output: quad to draw + int opengl_fillrule); // true if opengl fill rule; false if DX9 or earlier +// Call GetBakedQuad with char_index = 'character - first_char', and it +// creates the quad you need to draw and advances the current position. +// +// The coordinate system used assumes y increases downwards. +// +// Characters will extend both above and below the current position; +// see discussion of "BASELINE" above. +// +// It's inefficient; you might want to c&p it and optimize it. + +STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata, int index, float size, float *ascent, float *descent, float *lineGap); +// Query the font vertical metrics without having to create a font first. + + +////////////////////////////////////////////////////////////////////////////// +// +// NEW TEXTURE BAKING API +// +// This provides options for packing multiple fonts into one atlas, not +// perfectly but better than nothing. + +typedef struct +{ + unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap + float xoff,yoff,xadvance; + float xoff2,yoff2; +} stbtt_packedchar; + +typedef struct stbtt_pack_context stbtt_pack_context; +typedef struct stbtt_fontinfo stbtt_fontinfo; +#ifndef STB_RECT_PACK_VERSION +typedef struct stbrp_rect stbrp_rect; +#endif + +STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int width, int height, int stride_in_bytes, int padding, void *alloc_context); +// Initializes a packing context stored in the passed-in stbtt_pack_context. +// Future calls using this context will pack characters into the bitmap passed +// in here: a 1-channel bitmap that is width * height. stride_in_bytes is +// the distance from one row to the next (or 0 to mean they are packed tightly +// together). "padding" is the amount of padding to leave between each +// character (normally you want '1' for bitmaps you'll use as textures with +// bilinear filtering). +// +// Returns 0 on failure, 1 on success. + +STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc); +// Cleans up the packing context and frees all memory. + +#define STBTT_POINT_SIZE(x) (-(x)) + +STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, float font_size, + int first_unicode_char_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range); +// Creates character bitmaps from the font_index'th font found in fontdata (use +// font_index=0 if you don't know what that is). It creates num_chars_in_range +// bitmaps for characters with unicode values starting at first_unicode_char_in_range +// and increasing. Data for how to render them is stored in chardata_for_range; +// pass these to stbtt_GetPackedQuad to get back renderable quads. +// +// font_size is the full height of the character from ascender to descender, +// as computed by stbtt_ScaleForPixelHeight. To use a point size as computed +// by stbtt_ScaleForMappingEmToPixels, wrap the point size in STBTT_POINT_SIZE() +// and pass that result as 'font_size': +// ..., 20 , ... // font max minus min y is 20 pixels tall +// ..., STBTT_POINT_SIZE(20), ... // 'M' is 20 pixels tall + +typedef struct +{ + float font_size; + int first_unicode_codepoint_in_range; // if non-zero, then the chars are continuous, and this is the first codepoint + int *array_of_unicode_codepoints; // if non-zero, then this is an array of unicode codepoints + int num_chars; + stbtt_packedchar *chardata_for_range; // output + unsigned char h_oversample, v_oversample; // don't set these, they're used internally +} stbtt_pack_range; + +STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges); +// Creates character bitmaps from multiple ranges of characters stored in +// ranges. This will usually create a better-packed bitmap than multiple +// calls to stbtt_PackFontRange. Note that you can call this multiple +// times within a single PackBegin/PackEnd. + +STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample); +// Oversampling a font increases the quality by allowing higher-quality subpixel +// positioning, and is especially valuable at smaller text sizes. +// +// This function sets the amount of oversampling for all following calls to +// stbtt_PackFontRange(s) or stbtt_PackFontRangesGatherRects for a given +// pack context. The default (no oversampling) is achieved by h_oversample=1 +// and v_oversample=1. The total number of pixels required is +// h_oversample*v_oversample larger than the default; for example, 2x2 +// oversampling requires 4x the storage of 1x1. For best results, render +// oversampled textures with bilinear filtering. Look at the readme in +// stb/tests/oversample for information about oversampled fonts +// +// To use with PackFontRangesGather etc., you must set it before calls +// call to PackFontRangesGatherRects. + +STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip); +// If skip != 0, this tells stb_truetype to skip any codepoints for which +// there is no corresponding glyph. If skip=0, which is the default, then +// codepoints without a glyph recived the font's "missing character" glyph, +// typically an empty box by convention. + +STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, // same data as above + int char_index, // character to display + float *xpos, float *ypos, // pointers to current position in screen pixel space + stbtt_aligned_quad *q, // output: quad to draw + int align_to_integer); + +STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); +STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects); +STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); +// Calling these functions in sequence is roughly equivalent to calling +// stbtt_PackFontRanges(). If you more control over the packing of multiple +// fonts, or if you want to pack custom data into a font texture, take a look +// at the source to of stbtt_PackFontRanges() and create a custom version +// using these functions, e.g. call GatherRects multiple times, +// building up a single array of rects, then call PackRects once, +// then call RenderIntoRects repeatedly. This may result in a +// better packing than calling PackFontRanges multiple times +// (or it may not). + +// this is an opaque structure that you shouldn't mess with which holds +// all the context needed from PackBegin to PackEnd. +struct stbtt_pack_context { + void *user_allocator_context; + void *pack_info; + int width; + int height; + int stride_in_bytes; + int padding; + int skip_missing; + unsigned int h_oversample, v_oversample; + unsigned char *pixels; + void *nodes; +}; + +////////////////////////////////////////////////////////////////////////////// +// +// FONT LOADING +// +// + +STBTT_DEF int stbtt_GetNumberOfFonts(const unsigned char *data); +// This function will determine the number of fonts in a font file. TrueType +// collection (.ttc) files may contain multiple fonts, while TrueType font +// (.ttf) files only contain one font. The number of fonts can be used for +// indexing with the previous function where the index is between zero and one +// less than the total fonts. If an error occurs, -1 is returned. + +STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index); +// Each .ttf/.ttc file may have more than one font. Each font has a sequential +// index number starting from 0. Call this function to get the font offset for +// a given index; it returns -1 if the index is out of range. A regular .ttf +// file will only define one font and it always be at offset 0, so it will +// return '0' for index 0, and -1 for all other indices. + +// The following structure is defined publicly so you can declare one on +// the stack or as a global or etc, but you should treat it as opaque. +struct stbtt_fontinfo +{ + void * userdata; + unsigned char * data; // pointer to .ttf file + int fontstart; // offset of start of font + + int numGlyphs; // number of glyphs, needed for range checking + + int loca,head,glyf,hhea,hmtx,kern,gpos,svg; // table locations as offset from start of .ttf + int index_map; // a cmap mapping for our chosen character encoding + int indexToLocFormat; // format needed to map from glyph index to glyph + + stbtt__buf cff; // cff font data + stbtt__buf charstrings; // the charstring index + stbtt__buf gsubrs; // global charstring subroutines index + stbtt__buf subrs; // private charstring subroutines index + stbtt__buf fontdicts; // array of font dicts + stbtt__buf fdselect; // map from glyph to fontdict +}; + +STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset); +// Given an offset into the file that defines a font, this function builds +// the necessary cached info for the rest of the system. You must allocate +// the stbtt_fontinfo yourself, and stbtt_InitFont will fill it out. You don't +// need to do anything special to free it, because the contents are pure +// value data with no additional data structures. Returns 0 on failure. + + +////////////////////////////////////////////////////////////////////////////// +// +// CHARACTER TO GLYPH-INDEX CONVERSIOn + +STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint); +// If you're going to perform multiple operations on the same character +// and you want a speed-up, call this function with the character you're +// going to process, then use glyph-based functions instead of the +// codepoint-based functions. +// Returns 0 if the character codepoint is not defined in the font. + + +////////////////////////////////////////////////////////////////////////////// +// +// CHARACTER PROPERTIES +// + +STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float pixels); +// computes a scale factor to produce a font whose "height" is 'pixels' tall. +// Height is measured as the distance from the highest ascender to the lowest +// descender; in other words, it's equivalent to calling stbtt_GetFontVMetrics +// and computing: +// scale = pixels / (ascent - descent) +// so if you prefer to measure height by the ascent only, use a similar calculation. + +STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels); +// computes a scale factor to produce a font whose EM size is mapped to +// 'pixels' tall. This is probably what traditional APIs compute, but +// I'm not positive. + +STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap); +// ascent is the coordinate above the baseline the font extends; descent +// is the coordinate below the baseline the font extends (i.e. it is typically negative) +// lineGap is the spacing between one row's descent and the next row's ascent... +// so you should advance the vertical position by "*ascent - *descent + *lineGap" +// these are expressed in unscaled coordinates, so you must multiply by +// the scale factor for a given size + +STBTT_DEF int stbtt_GetFontVMetricsOS2(const stbtt_fontinfo *info, int *typoAscent, int *typoDescent, int *typoLineGap); +// analogous to GetFontVMetrics, but returns the "typographic" values from the OS/2 +// table (specific to MS/Windows TTF files). +// +// Returns 1 on success (table present), 0 on failure. + +STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1); +// the bounding box around all possible characters + +STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing); +// leftSideBearing is the offset from the current horizontal position to the left edge of the character +// advanceWidth is the offset from the current horizontal position to the next horizontal position +// these are expressed in unscaled coordinates + +STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2); +// an additional amount to add to the 'advance' value between ch1 and ch2 + +STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1); +// Gets the bounding box of the visible part of the glyph, in unscaled coordinates + +STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing); +STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2); +STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); +// as above, but takes one or more glyph indices for greater efficiency + +typedef struct stbtt_kerningentry +{ + int glyph1; // use stbtt_FindGlyphIndex + int glyph2; + int advance; +} stbtt_kerningentry; + +STBTT_DEF int stbtt_GetKerningTableLength(const stbtt_fontinfo *info); +STBTT_DEF int stbtt_GetKerningTable(const stbtt_fontinfo *info, stbtt_kerningentry* table, int table_length); +// Retrieves a complete list of all of the kerning pairs provided by the font +// stbtt_GetKerningTable never writes more than table_length entries and returns how many entries it did write. +// The table will be sorted by (a.glyph1 == b.glyph1)?(a.glyph2 < b.glyph2):(a.glyph1 < b.glyph1) + +////////////////////////////////////////////////////////////////////////////// +// +// GLYPH SHAPES (you probably don't need these, but they have to go before +// the bitmaps for C declaration-order reasons) +// + +#ifndef STBTT_vmove // you can predefine these to use different values (but why?) + enum { + STBTT_vmove=1, + STBTT_vline, + STBTT_vcurve, + STBTT_vcubic + }; +#endif + +#ifndef stbtt_vertex // you can predefine this to use different values + // (we share this with other code at RAD) + #define stbtt_vertex_type short // can't use stbtt_int16 because that's not visible in the header file + typedef struct + { + stbtt_vertex_type x,y,cx,cy,cx1,cy1; + unsigned char type,padding; + } stbtt_vertex; +#endif + +STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index); +// returns non-zero if nothing is drawn for this glyph + +STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices); +STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices); +// returns # of vertices and fills *vertices with the pointer to them +// these are expressed in "unscaled" coordinates +// +// The shape is a series of contours. Each one starts with +// a STBTT_moveto, then consists of a series of mixed +// STBTT_lineto and STBTT_curveto segments. A lineto +// draws a line from previous endpoint to its x,y; a curveto +// draws a quadratic bezier from previous endpoint to +// its x,y, using cx,cy as the bezier control point. + +STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices); +// frees the data allocated above + +STBTT_DEF unsigned char *stbtt_FindSVGDoc(const stbtt_fontinfo *info, int gl); +STBTT_DEF int stbtt_GetCodepointSVG(const stbtt_fontinfo *info, int unicode_codepoint, const char **svg); +STBTT_DEF int stbtt_GetGlyphSVG(const stbtt_fontinfo *info, int gl, const char **svg); +// fills svg with the character's SVG data. +// returns data size or 0 if SVG not found. + +////////////////////////////////////////////////////////////////////////////// +// +// BITMAP RENDERING +// + +STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata); +// frees the bitmap allocated below + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff); +// allocates a large-enough single-channel 8bpp bitmap and renders the +// specified character/glyph at the specified scale into it, with +// antialiasing. 0 is no coverage (transparent), 255 is fully covered (opaque). +// *width & *height are filled out with the width & height of the bitmap, +// which is stored left-to-right, top-to-bottom. +// +// xoff/yoff are the offset it pixel space from the glyph origin to the top-left of the bitmap + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff); +// the same as stbtt_GetCodepoitnBitmap, but you can specify a subpixel +// shift for the character + +STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint); +// the same as stbtt_GetCodepointBitmap, but you pass in storage for the bitmap +// in the form of 'output', with row spacing of 'out_stride' bytes. the bitmap +// is clipped to out_w/out_h bytes. Call stbtt_GetCodepointBitmapBox to get the +// width and height and positioning info for it first. + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint); +// same as stbtt_MakeCodepointBitmap, but you can specify a subpixel +// shift for the character + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int oversample_x, int oversample_y, float *sub_x, float *sub_y, int codepoint); +// same as stbtt_MakeCodepointBitmapSubpixel, but prefiltering +// is performed (see stbtt_PackSetOversampling) + +STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); +// get the bbox of the bitmap centered around the glyph origin; so the +// bitmap width is ix1-ix0, height is iy1-iy0, and location to place +// the bitmap top left is (leftSideBearing*scale,iy0). +// (Note that the bitmap uses y-increases-down, but the shape uses +// y-increases-up, so CodepointBitmapBox and CodepointBox are inverted.) + +STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); +// same as stbtt_GetCodepointBitmapBox, but you can specify a subpixel +// shift for the character + +// the following functions are equivalent to the above functions, but operate +// on glyph indices instead of Unicode codepoints (for efficiency) +STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph); +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph); +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int oversample_x, int oversample_y, float *sub_x, float *sub_y, int glyph); +STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); +STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); + + +// @TODO: don't expose this structure +typedef struct +{ + int w,h,stride; + unsigned char *pixels; +} stbtt__bitmap; + +// rasterize a shape with quadratic beziers into a bitmap +STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, // 1-channel bitmap to draw into + float flatness_in_pixels, // allowable error of curve in pixels + stbtt_vertex *vertices, // array of vertices defining shape + int num_verts, // number of vertices in above array + float scale_x, float scale_y, // scale applied to input vertices + float shift_x, float shift_y, // translation applied to input vertices + int x_off, int y_off, // another translation applied to input + int invert, // if non-zero, vertically flip shape + void *userdata); // context for to STBTT_MALLOC + +////////////////////////////////////////////////////////////////////////////// +// +// Signed Distance Function (or Field) rendering + +STBTT_DEF void stbtt_FreeSDF(unsigned char *bitmap, void *userdata); +// frees the SDF bitmap allocated below + +STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float scale, int glyph, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF unsigned char * stbtt_GetCodepointSDF(const stbtt_fontinfo *info, float scale, int codepoint, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff); +// These functions compute a discretized SDF field for a single character, suitable for storing +// in a single-channel texture, sampling with bilinear filtering, and testing against +// larger than some threshold to produce scalable fonts. +// info -- the font +// scale -- controls the size of the resulting SDF bitmap, same as it would be creating a regular bitmap +// glyph/codepoint -- the character to generate the SDF for +// padding -- extra "pixels" around the character which are filled with the distance to the character (not 0), +// which allows effects like bit outlines +// onedge_value -- value 0-255 to test the SDF against to reconstruct the character (i.e. the isocontour of the character) +// pixel_dist_scale -- what value the SDF should increase by when moving one SDF "pixel" away from the edge (on the 0..255 scale) +// if positive, > onedge_value is inside; if negative, < onedge_value is inside +// width,height -- output height & width of the SDF bitmap (including padding) +// xoff,yoff -- output origin of the character +// return value -- a 2D array of bytes 0..255, width*height in size +// +// pixel_dist_scale & onedge_value are a scale & bias that allows you to make +// optimal use of the limited 0..255 for your application, trading off precision +// and special effects. SDF values outside the range 0..255 are clamped to 0..255. +// +// Example: +// scale = stbtt_ScaleForPixelHeight(22) +// padding = 5 +// onedge_value = 180 +// pixel_dist_scale = 180/5.0 = 36.0 +// +// This will create an SDF bitmap in which the character is about 22 pixels +// high but the whole bitmap is about 22+5+5=32 pixels high. To produce a filled +// shape, sample the SDF at each pixel and fill the pixel if the SDF value +// is greater than or equal to 180/255. (You'll actually want to antialias, +// which is beyond the scope of this example.) Additionally, you can compute +// offset outlines (e.g. to stroke the character border inside & outside, +// or only outside). For example, to fill outside the character up to 3 SDF +// pixels, you would compare against (180-36.0*3)/255 = 72/255. The above +// choice of variables maps a range from 5 pixels outside the shape to +// 2 pixels inside the shape to 0..255; this is intended primarily for apply +// outside effects only (the interior range is needed to allow proper +// antialiasing of the font at *smaller* sizes) +// +// The function computes the SDF analytically at each SDF pixel, not by e.g. +// building a higher-res bitmap and approximating it. In theory the quality +// should be as high as possible for an SDF of this size & representation, but +// unclear if this is true in practice (perhaps building a higher-res bitmap +// and computing from that can allow drop-out prevention). +// +// The algorithm has not been optimized at all, so expect it to be slow +// if computing lots of characters or very large sizes. + + + +////////////////////////////////////////////////////////////////////////////// +// +// Finding the right font... +// +// You should really just solve this offline, keep your own tables +// of what font is what, and don't try to get it out of the .ttf file. +// That's because getting it out of the .ttf file is really hard, because +// the names in the file can appear in many possible encodings, in many +// possible languages, and e.g. if you need a case-insensitive comparison, +// the details of that depend on the encoding & language in a complex way +// (actually underspecified in truetype, but also gigantic). +// +// But you can use the provided functions in two possible ways: +// stbtt_FindMatchingFont() will use *case-sensitive* comparisons on +// unicode-encoded names to try to find the font you want; +// you can run this before calling stbtt_InitFont() +// +// stbtt_GetFontNameString() lets you get any of the various strings +// from the file yourself and do your own comparisons on them. +// You have to have called stbtt_InitFont() first. + + +STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags); +// returns the offset (not index) of the font that matches, or -1 if none +// if you use STBTT_MACSTYLE_DONTCARE, use a font name like "Arial Bold". +// if you use any other flag, use a font name like "Arial"; this checks +// the 'macStyle' header field; i don't know if fonts set this consistently +#define STBTT_MACSTYLE_DONTCARE 0 +#define STBTT_MACSTYLE_BOLD 1 +#define STBTT_MACSTYLE_ITALIC 2 +#define STBTT_MACSTYLE_UNDERSCORE 4 +#define STBTT_MACSTYLE_NONE 8 // <= not same as 0, this makes us check the bitfield is 0 + +STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2); +// returns 1/0 whether the first string interpreted as utf8 is identical to +// the second string interpreted as big-endian utf16... useful for strings from next func + +STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID); +// returns the string (which may be big-endian double byte, e.g. for unicode) +// and puts the length in bytes in *length. +// +// some of the values for the IDs are below; for more see the truetype spec: +// http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6name.html +// http://www.microsoft.com/typography/otspec/name.htm + +enum { // platformID + STBTT_PLATFORM_ID_UNICODE =0, + STBTT_PLATFORM_ID_MAC =1, + STBTT_PLATFORM_ID_ISO =2, + STBTT_PLATFORM_ID_MICROSOFT =3 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_UNICODE + STBTT_UNICODE_EID_UNICODE_1_0 =0, + STBTT_UNICODE_EID_UNICODE_1_1 =1, + STBTT_UNICODE_EID_ISO_10646 =2, + STBTT_UNICODE_EID_UNICODE_2_0_BMP=3, + STBTT_UNICODE_EID_UNICODE_2_0_FULL=4 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_MICROSOFT + STBTT_MS_EID_SYMBOL =0, + STBTT_MS_EID_UNICODE_BMP =1, + STBTT_MS_EID_SHIFTJIS =2, + STBTT_MS_EID_UNICODE_FULL =10 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_MAC; same as Script Manager codes + STBTT_MAC_EID_ROMAN =0, STBTT_MAC_EID_ARABIC =4, + STBTT_MAC_EID_JAPANESE =1, STBTT_MAC_EID_HEBREW =5, + STBTT_MAC_EID_CHINESE_TRAD =2, STBTT_MAC_EID_GREEK =6, + STBTT_MAC_EID_KOREAN =3, STBTT_MAC_EID_RUSSIAN =7 +}; + +enum { // languageID for STBTT_PLATFORM_ID_MICROSOFT; same as LCID... + // problematic because there are e.g. 16 english LCIDs and 16 arabic LCIDs + STBTT_MS_LANG_ENGLISH =0x0409, STBTT_MS_LANG_ITALIAN =0x0410, + STBTT_MS_LANG_CHINESE =0x0804, STBTT_MS_LANG_JAPANESE =0x0411, + STBTT_MS_LANG_DUTCH =0x0413, STBTT_MS_LANG_KOREAN =0x0412, + STBTT_MS_LANG_FRENCH =0x040c, STBTT_MS_LANG_RUSSIAN =0x0419, + STBTT_MS_LANG_GERMAN =0x0407, STBTT_MS_LANG_SPANISH =0x0409, + STBTT_MS_LANG_HEBREW =0x040d, STBTT_MS_LANG_SWEDISH =0x041D +}; + +enum { // languageID for STBTT_PLATFORM_ID_MAC + STBTT_MAC_LANG_ENGLISH =0 , STBTT_MAC_LANG_JAPANESE =11, + STBTT_MAC_LANG_ARABIC =12, STBTT_MAC_LANG_KOREAN =23, + STBTT_MAC_LANG_DUTCH =4 , STBTT_MAC_LANG_RUSSIAN =32, + STBTT_MAC_LANG_FRENCH =1 , STBTT_MAC_LANG_SPANISH =6 , + STBTT_MAC_LANG_GERMAN =2 , STBTT_MAC_LANG_SWEDISH =5 , + STBTT_MAC_LANG_HEBREW =10, STBTT_MAC_LANG_CHINESE_SIMPLIFIED =33, + STBTT_MAC_LANG_ITALIAN =3 , STBTT_MAC_LANG_CHINESE_TRAD =19 +}; + +#ifdef __cplusplus +} +#endif + +#endif // __STB_INCLUDE_STB_TRUETYPE_H__ + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +//// +//// IMPLEMENTATION +//// +//// + +#ifdef STB_TRUETYPE_IMPLEMENTATION + +#ifndef STBTT_MAX_OVERSAMPLE +#define STBTT_MAX_OVERSAMPLE 8 +#endif + +#if STBTT_MAX_OVERSAMPLE > 255 +#error "STBTT_MAX_OVERSAMPLE cannot be > 255" +#endif + +typedef int stbtt__test_oversample_pow2[(STBTT_MAX_OVERSAMPLE & (STBTT_MAX_OVERSAMPLE-1)) == 0 ? 1 : -1]; + +#ifndef STBTT_RASTERIZER_VERSION +#define STBTT_RASTERIZER_VERSION 2 +#endif + +#ifdef _MSC_VER +#define STBTT__NOTUSED(v) (void)(v) +#else +#define STBTT__NOTUSED(v) (void)sizeof(v) +#endif + +////////////////////////////////////////////////////////////////////////// +// +// stbtt__buf helpers to parse data from file +// + +static stbtt_uint8 stbtt__buf_get8(stbtt__buf *b) +{ + if (b->cursor >= b->size) + return 0; + return b->data[b->cursor++]; +} + +static stbtt_uint8 stbtt__buf_peek8(stbtt__buf *b) +{ + if (b->cursor >= b->size) + return 0; + return b->data[b->cursor]; +} + +static void stbtt__buf_seek(stbtt__buf *b, int o) +{ + STBTT_assert(!(o > b->size || o < 0)); + b->cursor = (o > b->size || o < 0) ? b->size : o; +} + +static void stbtt__buf_skip(stbtt__buf *b, int o) +{ + stbtt__buf_seek(b, b->cursor + o); +} + +static stbtt_uint32 stbtt__buf_get(stbtt__buf *b, int n) +{ + stbtt_uint32 v = 0; + int i; + STBTT_assert(n >= 1 && n <= 4); + for (i = 0; i < n; i++) + v = (v << 8) | stbtt__buf_get8(b); + return v; +} + +static stbtt__buf stbtt__new_buf(const void *p, size_t size) +{ + stbtt__buf r; + STBTT_assert(size < 0x40000000); + r.data = (stbtt_uint8*) p; + r.size = (int) size; + r.cursor = 0; + return r; +} + +#define stbtt__buf_get16(b) stbtt__buf_get((b), 2) +#define stbtt__buf_get32(b) stbtt__buf_get((b), 4) + +static stbtt__buf stbtt__buf_range(const stbtt__buf *b, int o, int s) +{ + stbtt__buf r = stbtt__new_buf(NULL, 0); + if (o < 0 || s < 0 || o > b->size || s > b->size - o) return r; + r.data = b->data + o; + r.size = s; + return r; +} + +static stbtt__buf stbtt__cff_get_index(stbtt__buf *b) +{ + int count, start, offsize; + start = b->cursor; + count = stbtt__buf_get16(b); + if (count) { + offsize = stbtt__buf_get8(b); + STBTT_assert(offsize >= 1 && offsize <= 4); + stbtt__buf_skip(b, offsize * count); + stbtt__buf_skip(b, stbtt__buf_get(b, offsize) - 1); + } + return stbtt__buf_range(b, start, b->cursor - start); +} + +static stbtt_uint32 stbtt__cff_int(stbtt__buf *b) +{ + int b0 = stbtt__buf_get8(b); + if (b0 >= 32 && b0 <= 246) return b0 - 139; + else if (b0 >= 247 && b0 <= 250) return (b0 - 247)*256 + stbtt__buf_get8(b) + 108; + else if (b0 >= 251 && b0 <= 254) return -(b0 - 251)*256 - stbtt__buf_get8(b) - 108; + else if (b0 == 28) return stbtt__buf_get16(b); + else if (b0 == 29) return stbtt__buf_get32(b); + STBTT_assert(0); + return 0; +} + +static void stbtt__cff_skip_operand(stbtt__buf *b) { + int v, b0 = stbtt__buf_peek8(b); + STBTT_assert(b0 >= 28); + if (b0 == 30) { + stbtt__buf_skip(b, 1); + while (b->cursor < b->size) { + v = stbtt__buf_get8(b); + if ((v & 0xF) == 0xF || (v >> 4) == 0xF) + break; + } + } else { + stbtt__cff_int(b); + } +} + +static stbtt__buf stbtt__dict_get(stbtt__buf *b, int key) +{ + stbtt__buf_seek(b, 0); + while (b->cursor < b->size) { + int start = b->cursor, end, op; + while (stbtt__buf_peek8(b) >= 28) + stbtt__cff_skip_operand(b); + end = b->cursor; + op = stbtt__buf_get8(b); + if (op == 12) op = stbtt__buf_get8(b) | 0x100; + if (op == key) return stbtt__buf_range(b, start, end-start); + } + return stbtt__buf_range(b, 0, 0); +} + +static void stbtt__dict_get_ints(stbtt__buf *b, int key, int outcount, stbtt_uint32 *out) +{ + int i; + stbtt__buf operands = stbtt__dict_get(b, key); + for (i = 0; i < outcount && operands.cursor < operands.size; i++) + out[i] = stbtt__cff_int(&operands); +} + +static int stbtt__cff_index_count(stbtt__buf *b) +{ + stbtt__buf_seek(b, 0); + return stbtt__buf_get16(b); +} + +static stbtt__buf stbtt__cff_index_get(stbtt__buf b, int i) +{ + int count, offsize, start, end; + stbtt__buf_seek(&b, 0); + count = stbtt__buf_get16(&b); + offsize = stbtt__buf_get8(&b); + STBTT_assert(i >= 0 && i < count); + STBTT_assert(offsize >= 1 && offsize <= 4); + stbtt__buf_skip(&b, i*offsize); + start = stbtt__buf_get(&b, offsize); + end = stbtt__buf_get(&b, offsize); + return stbtt__buf_range(&b, 2+(count+1)*offsize+start, end - start); +} + +////////////////////////////////////////////////////////////////////////// +// +// accessors to parse data from file +// + +// on platforms that don't allow misaligned reads, if we want to allow +// truetype fonts that aren't padded to alignment, define ALLOW_UNALIGNED_TRUETYPE + +#define ttBYTE(p) (* (stbtt_uint8 *) (p)) +#define ttCHAR(p) (* (stbtt_int8 *) (p)) +#define ttFixed(p) ttLONG(p) + +static stbtt_uint16 ttUSHORT(stbtt_uint8 *p) { return p[0]*256 + p[1]; } +static stbtt_int16 ttSHORT(stbtt_uint8 *p) { return p[0]*256 + p[1]; } +static stbtt_uint32 ttULONG(stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } +static stbtt_int32 ttLONG(stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } + +#define stbtt_tag4(p,c0,c1,c2,c3) ((p)[0] == (c0) && (p)[1] == (c1) && (p)[2] == (c2) && (p)[3] == (c3)) +#define stbtt_tag(p,str) stbtt_tag4(p,str[0],str[1],str[2],str[3]) + +static int stbtt__isfont(stbtt_uint8 *font) +{ + // check the version number + if (stbtt_tag4(font, '1',0,0,0)) return 1; // TrueType 1 + if (stbtt_tag(font, "typ1")) return 1; // TrueType with type 1 font -- we don't support this! + if (stbtt_tag(font, "OTTO")) return 1; // OpenType with CFF + if (stbtt_tag4(font, 0,1,0,0)) return 1; // OpenType 1.0 + if (stbtt_tag(font, "true")) return 1; // Apple specification for TrueType fonts + return 0; +} + +// @OPTIMIZE: binary search +static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fontstart, const char *tag) +{ + stbtt_int32 num_tables = ttUSHORT(data+fontstart+4); + stbtt_uint32 tabledir = fontstart + 12; + stbtt_int32 i; + for (i=0; i < num_tables; ++i) { + stbtt_uint32 loc = tabledir + 16*i; + if (stbtt_tag(data+loc+0, tag)) + return ttULONG(data+loc+8); + } + return 0; +} + +static int stbtt_GetFontOffsetForIndex_internal(unsigned char *font_collection, int index) +{ + // if it's just a font, there's only one valid index + if (stbtt__isfont(font_collection)) + return index == 0 ? 0 : -1; + + // check if it's a TTC + if (stbtt_tag(font_collection, "ttcf")) { + // version 1? + if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { + stbtt_int32 n = ttLONG(font_collection+8); + if (index >= n) + return -1; + return ttULONG(font_collection+12+index*4); + } + } + return -1; +} + +static int stbtt_GetNumberOfFonts_internal(unsigned char *font_collection) +{ + // if it's just a font, there's only one valid font + if (stbtt__isfont(font_collection)) + return 1; + + // check if it's a TTC + if (stbtt_tag(font_collection, "ttcf")) { + // version 1? + if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { + return ttLONG(font_collection+8); + } + } + return 0; +} + +static stbtt__buf stbtt__get_subrs(stbtt__buf cff, stbtt__buf fontdict) +{ + stbtt_uint32 subrsoff = 0, private_loc[2] = { 0, 0 }; + stbtt__buf pdict; + stbtt__dict_get_ints(&fontdict, 18, 2, private_loc); + if (!private_loc[1] || !private_loc[0]) return stbtt__new_buf(NULL, 0); + pdict = stbtt__buf_range(&cff, private_loc[1], private_loc[0]); + stbtt__dict_get_ints(&pdict, 19, 1, &subrsoff); + if (!subrsoff) return stbtt__new_buf(NULL, 0); + stbtt__buf_seek(&cff, private_loc[1]+subrsoff); + return stbtt__cff_get_index(&cff); +} + +// since most people won't use this, find this table the first time it's needed +static int stbtt__get_svg(stbtt_fontinfo *info) +{ + stbtt_uint32 t; + if (info->svg < 0) { + t = stbtt__find_table(info->data, info->fontstart, "SVG "); + if (t) { + stbtt_uint32 offset = ttULONG(info->data + t + 2); + info->svg = t + offset; + } else { + info->svg = 0; + } + } + return info->svg; +} + +static int stbtt_InitFont_internal(stbtt_fontinfo *info, unsigned char *data, int fontstart) +{ + stbtt_uint32 cmap, t; + stbtt_int32 i,numTables; + + info->data = data; + info->fontstart = fontstart; + info->cff = stbtt__new_buf(NULL, 0); + + cmap = stbtt__find_table(data, fontstart, "cmap"); // required + info->loca = stbtt__find_table(data, fontstart, "loca"); // required + info->head = stbtt__find_table(data, fontstart, "head"); // required + info->glyf = stbtt__find_table(data, fontstart, "glyf"); // required + info->hhea = stbtt__find_table(data, fontstart, "hhea"); // required + info->hmtx = stbtt__find_table(data, fontstart, "hmtx"); // required + info->kern = stbtt__find_table(data, fontstart, "kern"); // not required + info->gpos = stbtt__find_table(data, fontstart, "GPOS"); // not required + + if (!cmap || !info->head || !info->hhea || !info->hmtx) + return 0; + if (info->glyf) { + // required for truetype + if (!info->loca) return 0; + } else { + // initialization for CFF / Type2 fonts (OTF) + stbtt__buf b, topdict, topdictidx; + stbtt_uint32 cstype = 2, charstrings = 0, fdarrayoff = 0, fdselectoff = 0; + stbtt_uint32 cff; + + cff = stbtt__find_table(data, fontstart, "CFF "); + if (!cff) return 0; + + info->fontdicts = stbtt__new_buf(NULL, 0); + info->fdselect = stbtt__new_buf(NULL, 0); + + // @TODO this should use size from table (not 512MB) + info->cff = stbtt__new_buf(data+cff, 512*1024*1024); + b = info->cff; + + // read the header + stbtt__buf_skip(&b, 2); + stbtt__buf_seek(&b, stbtt__buf_get8(&b)); // hdrsize + + // @TODO the name INDEX could list multiple fonts, + // but we just use the first one. + stbtt__cff_get_index(&b); // name INDEX + topdictidx = stbtt__cff_get_index(&b); + topdict = stbtt__cff_index_get(topdictidx, 0); + stbtt__cff_get_index(&b); // string INDEX + info->gsubrs = stbtt__cff_get_index(&b); + + stbtt__dict_get_ints(&topdict, 17, 1, &charstrings); + stbtt__dict_get_ints(&topdict, 0x100 | 6, 1, &cstype); + stbtt__dict_get_ints(&topdict, 0x100 | 36, 1, &fdarrayoff); + stbtt__dict_get_ints(&topdict, 0x100 | 37, 1, &fdselectoff); + info->subrs = stbtt__get_subrs(b, topdict); + + // we only support Type 2 charstrings + if (cstype != 2) return 0; + if (charstrings == 0) return 0; + + if (fdarrayoff) { + // looks like a CID font + if (!fdselectoff) return 0; + stbtt__buf_seek(&b, fdarrayoff); + info->fontdicts = stbtt__cff_get_index(&b); + info->fdselect = stbtt__buf_range(&b, fdselectoff, b.size-fdselectoff); + } + + stbtt__buf_seek(&b, charstrings); + info->charstrings = stbtt__cff_get_index(&b); + } + + t = stbtt__find_table(data, fontstart, "maxp"); + if (t) + info->numGlyphs = ttUSHORT(data+t+4); + else + info->numGlyphs = 0xffff; + + info->svg = -1; + + // find a cmap encoding table we understand *now* to avoid searching + // later. (todo: could make this installable) + // the same regardless of glyph. + numTables = ttUSHORT(data + cmap + 2); + info->index_map = 0; + for (i=0; i < numTables; ++i) { + stbtt_uint32 encoding_record = cmap + 4 + 8 * i; + // find an encoding we understand: + switch(ttUSHORT(data+encoding_record)) { + case STBTT_PLATFORM_ID_MICROSOFT: + switch (ttUSHORT(data+encoding_record+2)) { + case STBTT_MS_EID_UNICODE_BMP: + case STBTT_MS_EID_UNICODE_FULL: + // MS/Unicode + info->index_map = cmap + ttULONG(data+encoding_record+4); + break; + } + break; + case STBTT_PLATFORM_ID_UNICODE: + // Mac/iOS has these + // all the encodingIDs are unicode, so we don't bother to check it + info->index_map = cmap + ttULONG(data+encoding_record+4); + break; + } + } + if (info->index_map == 0) + return 0; + + info->indexToLocFormat = ttUSHORT(data+info->head + 50); + return 1; +} + +STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint) +{ + stbtt_uint8 *data = info->data; + stbtt_uint32 index_map = info->index_map; + + stbtt_uint16 format = ttUSHORT(data + index_map + 0); + if (format == 0) { // apple byte encoding + stbtt_int32 bytes = ttUSHORT(data + index_map + 2); + if (unicode_codepoint < bytes-6) + return ttBYTE(data + index_map + 6 + unicode_codepoint); + return 0; + } else if (format == 6) { + stbtt_uint32 first = ttUSHORT(data + index_map + 6); + stbtt_uint32 count = ttUSHORT(data + index_map + 8); + if ((stbtt_uint32) unicode_codepoint >= first && (stbtt_uint32) unicode_codepoint < first+count) + return ttUSHORT(data + index_map + 10 + (unicode_codepoint - first)*2); + return 0; + } else if (format == 2) { + STBTT_assert(0); // @TODO: high-byte mapping for japanese/chinese/korean + return 0; + } else if (format == 4) { // standard mapping for windows fonts: binary search collection of ranges + stbtt_uint16 segcount = ttUSHORT(data+index_map+6) >> 1; + stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1; + stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10); + stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1; + + // do a binary search of the segments + stbtt_uint32 endCount = index_map + 14; + stbtt_uint32 search = endCount; + + if (unicode_codepoint > 0xffff) + return 0; + + // they lie from endCount .. endCount + segCount + // but searchRange is the nearest power of two, so... + if (unicode_codepoint >= ttUSHORT(data + search + rangeShift*2)) + search += rangeShift*2; + + // now decrement to bias correctly to find smallest + search -= 2; + while (entrySelector) { + stbtt_uint16 end; + searchRange >>= 1; + end = ttUSHORT(data + search + searchRange*2); + if (unicode_codepoint > end) + search += searchRange*2; + --entrySelector; + } + search += 2; + + { + stbtt_uint16 offset, start, last; + stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1); + + start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item); + last = ttUSHORT(data + endCount + 2*item); + if (unicode_codepoint < start || unicode_codepoint > last) + return 0; + + offset = ttUSHORT(data + index_map + 14 + segcount*6 + 2 + 2*item); + if (offset == 0) + return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item)); + + return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item); + } + } else if (format == 12 || format == 13) { + stbtt_uint32 ngroups = ttULONG(data+index_map+12); + stbtt_int32 low,high; + low = 0; high = (stbtt_int32)ngroups; + // Binary search the right group. + while (low < high) { + stbtt_int32 mid = low + ((high-low) >> 1); // rounds down, so low <= mid < high + stbtt_uint32 start_char = ttULONG(data+index_map+16+mid*12); + stbtt_uint32 end_char = ttULONG(data+index_map+16+mid*12+4); + if ((stbtt_uint32) unicode_codepoint < start_char) + high = mid; + else if ((stbtt_uint32) unicode_codepoint > end_char) + low = mid+1; + else { + stbtt_uint32 start_glyph = ttULONG(data+index_map+16+mid*12+8); + if (format == 12) + return start_glyph + unicode_codepoint-start_char; + else // format == 13 + return start_glyph; + } + } + return 0; // not found + } + // @TODO + STBTT_assert(0); + return 0; +} + +STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices) +{ + return stbtt_GetGlyphShape(info, stbtt_FindGlyphIndex(info, unicode_codepoint), vertices); +} + +static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy) +{ + v->type = type; + v->x = (stbtt_int16) x; + v->y = (stbtt_int16) y; + v->cx = (stbtt_int16) cx; + v->cy = (stbtt_int16) cy; +} + +static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_index) +{ + int g1,g2; + + STBTT_assert(!info->cff.size); + + if (glyph_index >= info->numGlyphs) return -1; // glyph index out of range + if (info->indexToLocFormat >= 2) return -1; // unknown index->glyph map format + + if (info->indexToLocFormat == 0) { + g1 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2) * 2; + g2 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2 + 2) * 2; + } else { + g1 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4); + g2 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4 + 4); + } + + return g1==g2 ? -1 : g1; // if length is 0, return -1 +} + +static int stbtt__GetGlyphInfoT2(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); + +STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) +{ + if (info->cff.size) { + stbtt__GetGlyphInfoT2(info, glyph_index, x0, y0, x1, y1); + } else { + int g = stbtt__GetGlyfOffset(info, glyph_index); + if (g < 0) return 0; + + if (x0) *x0 = ttSHORT(info->data + g + 2); + if (y0) *y0 = ttSHORT(info->data + g + 4); + if (x1) *x1 = ttSHORT(info->data + g + 6); + if (y1) *y1 = ttSHORT(info->data + g + 8); + } + return 1; +} + +STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1) +{ + return stbtt_GetGlyphBox(info, stbtt_FindGlyphIndex(info,codepoint), x0,y0,x1,y1); +} + +STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index) +{ + stbtt_int16 numberOfContours; + int g; + if (info->cff.size) + return stbtt__GetGlyphInfoT2(info, glyph_index, NULL, NULL, NULL, NULL) == 0; + g = stbtt__GetGlyfOffset(info, glyph_index); + if (g < 0) return 1; + numberOfContours = ttSHORT(info->data + g); + return numberOfContours == 0; +} + +static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, int was_off, int start_off, + stbtt_int32 sx, stbtt_int32 sy, stbtt_int32 scx, stbtt_int32 scy, stbtt_int32 cx, stbtt_int32 cy) +{ + if (start_off) { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+scx)>>1, (cy+scy)>>1, cx,cy); + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, sx,sy,scx,scy); + } else { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve,sx,sy,cx,cy); + else + stbtt_setvertex(&vertices[num_vertices++], STBTT_vline,sx,sy,0,0); + } + return num_vertices; +} + +static int stbtt__GetGlyphShapeTT(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) +{ + stbtt_int16 numberOfContours; + stbtt_uint8 *endPtsOfContours; + stbtt_uint8 *data = info->data; + stbtt_vertex *vertices=0; + int num_vertices=0; + int g = stbtt__GetGlyfOffset(info, glyph_index); + + *pvertices = NULL; + + if (g < 0) return 0; + + numberOfContours = ttSHORT(data + g); + + if (numberOfContours > 0) { + stbtt_uint8 flags=0,flagcount; + stbtt_int32 ins, i,j=0,m,n, next_move, was_off=0, off, start_off=0; + stbtt_int32 x,y,cx,cy,sx,sy, scx,scy; + stbtt_uint8 *points; + endPtsOfContours = (data + g + 10); + ins = ttUSHORT(data + g + 10 + numberOfContours * 2); + points = data + g + 10 + numberOfContours * 2 + 2 + ins; + + n = 1+ttUSHORT(endPtsOfContours + numberOfContours*2-2); + + m = n + 2*numberOfContours; // a loose bound on how many vertices we might need + vertices = (stbtt_vertex *) STBTT_malloc(m * sizeof(vertices[0]), info->userdata); + if (vertices == 0) + return 0; + + next_move = 0; + flagcount=0; + + // in first pass, we load uninterpreted data into the allocated array + // above, shifted to the end of the array so we won't overwrite it when + // we create our final data starting from the front + + off = m - n; // starting offset for uninterpreted data, regardless of how m ends up being calculated + + // first load flags + + for (i=0; i < n; ++i) { + if (flagcount == 0) { + flags = *points++; + if (flags & 8) + flagcount = *points++; + } else + --flagcount; + vertices[off+i].type = flags; + } + + // now load x coordinates + x=0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + if (flags & 2) { + stbtt_int16 dx = *points++; + x += (flags & 16) ? dx : -dx; // ??? + } else { + if (!(flags & 16)) { + x = x + (stbtt_int16) (points[0]*256 + points[1]); + points += 2; + } + } + vertices[off+i].x = (stbtt_int16) x; + } + + // now load y coordinates + y=0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + if (flags & 4) { + stbtt_int16 dy = *points++; + y += (flags & 32) ? dy : -dy; // ??? + } else { + if (!(flags & 32)) { + y = y + (stbtt_int16) (points[0]*256 + points[1]); + points += 2; + } + } + vertices[off+i].y = (stbtt_int16) y; + } + + // now convert them to our format + num_vertices=0; + sx = sy = cx = cy = scx = scy = 0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + x = (stbtt_int16) vertices[off+i].x; + y = (stbtt_int16) vertices[off+i].y; + + if (next_move == i) { + if (i != 0) + num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); + + // now start the new one + start_off = !(flags & 1); + if (start_off) { + // if we start off with an off-curve point, then when we need to find a point on the curve + // where we can start, and we need to save some state for when we wraparound. + scx = x; + scy = y; + if (!(vertices[off+i+1].type & 1)) { + // next point is also a curve point, so interpolate an on-point curve + sx = (x + (stbtt_int32) vertices[off+i+1].x) >> 1; + sy = (y + (stbtt_int32) vertices[off+i+1].y) >> 1; + } else { + // otherwise just use the next point as our start point + sx = (stbtt_int32) vertices[off+i+1].x; + sy = (stbtt_int32) vertices[off+i+1].y; + ++i; // we're using point i+1 as the starting point, so skip it + } + } else { + sx = x; + sy = y; + } + stbtt_setvertex(&vertices[num_vertices++], STBTT_vmove,sx,sy,0,0); + was_off = 0; + next_move = 1 + ttUSHORT(endPtsOfContours+j*2); + ++j; + } else { + if (!(flags & 1)) { // if it's a curve + if (was_off) // two off-curve control points in a row means interpolate an on-curve midpoint + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+x)>>1, (cy+y)>>1, cx, cy); + cx = x; + cy = y; + was_off = 1; + } else { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, x,y, cx, cy); + else + stbtt_setvertex(&vertices[num_vertices++], STBTT_vline, x,y,0,0); + was_off = 0; + } + } + } + num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); + } else if (numberOfContours < 0) { + // Compound shapes. + int more = 1; + stbtt_uint8 *comp = data + g + 10; + num_vertices = 0; + vertices = 0; + while (more) { + stbtt_uint16 flags, gidx; + int comp_num_verts = 0, i; + stbtt_vertex *comp_verts = 0, *tmp = 0; + float mtx[6] = {1,0,0,1,0,0}, m, n; + + flags = ttSHORT(comp); comp+=2; + gidx = ttSHORT(comp); comp+=2; + + if (flags & 2) { // XY values + if (flags & 1) { // shorts + mtx[4] = ttSHORT(comp); comp+=2; + mtx[5] = ttSHORT(comp); comp+=2; + } else { + mtx[4] = ttCHAR(comp); comp+=1; + mtx[5] = ttCHAR(comp); comp+=1; + } + } + else { + // @TODO handle matching point + STBTT_assert(0); + } + if (flags & (1<<3)) { // WE_HAVE_A_SCALE + mtx[0] = mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = mtx[2] = 0; + } else if (flags & (1<<6)) { // WE_HAVE_AN_X_AND_YSCALE + mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = mtx[2] = 0; + mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + } else if (flags & (1<<7)) { // WE_HAVE_A_TWO_BY_TWO + mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + } + + // Find transformation scales. + m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); + n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); + + // Get indexed glyph. + comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts); + if (comp_num_verts > 0) { + // Transform vertices. + for (i = 0; i < comp_num_verts; ++i) { + stbtt_vertex* v = &comp_verts[i]; + stbtt_vertex_type x,y; + x=v->x; y=v->y; + v->x = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); + v->y = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); + x=v->cx; y=v->cy; + v->cx = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); + v->cy = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); + } + // Append vertices. + tmp = (stbtt_vertex*)STBTT_malloc((num_vertices+comp_num_verts)*sizeof(stbtt_vertex), info->userdata); + if (!tmp) { + if (vertices) STBTT_free(vertices, info->userdata); + if (comp_verts) STBTT_free(comp_verts, info->userdata); + return 0; + } + if (num_vertices > 0 && vertices) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex)); + STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex)); + if (vertices) STBTT_free(vertices, info->userdata); + vertices = tmp; + STBTT_free(comp_verts, info->userdata); + num_vertices += comp_num_verts; + } + // More components ? + more = flags & (1<<5); + } + } else { + // numberOfCounters == 0, do nothing + } + + *pvertices = vertices; + return num_vertices; +} + +typedef struct +{ + int bounds; + int started; + float first_x, first_y; + float x, y; + stbtt_int32 min_x, max_x, min_y, max_y; + + stbtt_vertex *pvertices; + int num_vertices; +} stbtt__csctx; + +#define STBTT__CSCTX_INIT(bounds) {bounds,0, 0,0, 0,0, 0,0,0,0, NULL, 0} + +static void stbtt__track_vertex(stbtt__csctx *c, stbtt_int32 x, stbtt_int32 y) +{ + if (x > c->max_x || !c->started) c->max_x = x; + if (y > c->max_y || !c->started) c->max_y = y; + if (x < c->min_x || !c->started) c->min_x = x; + if (y < c->min_y || !c->started) c->min_y = y; + c->started = 1; +} + +static void stbtt__csctx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy, stbtt_int32 cx1, stbtt_int32 cy1) +{ + if (c->bounds) { + stbtt__track_vertex(c, x, y); + if (type == STBTT_vcubic) { + stbtt__track_vertex(c, cx, cy); + stbtt__track_vertex(c, cx1, cy1); + } + } else { + stbtt_setvertex(&c->pvertices[c->num_vertices], type, x, y, cx, cy); + c->pvertices[c->num_vertices].cx1 = (stbtt_int16) cx1; + c->pvertices[c->num_vertices].cy1 = (stbtt_int16) cy1; + } + c->num_vertices++; +} + +static void stbtt__csctx_close_shape(stbtt__csctx *ctx) +{ + if (ctx->first_x != ctx->x || ctx->first_y != ctx->y) + stbtt__csctx_v(ctx, STBTT_vline, (int)ctx->first_x, (int)ctx->first_y, 0, 0, 0, 0); +} + +static void stbtt__csctx_rmove_to(stbtt__csctx *ctx, float dx, float dy) +{ + stbtt__csctx_close_shape(ctx); + ctx->first_x = ctx->x = ctx->x + dx; + ctx->first_y = ctx->y = ctx->y + dy; + stbtt__csctx_v(ctx, STBTT_vmove, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0); +} + +static void stbtt__csctx_rline_to(stbtt__csctx *ctx, float dx, float dy) +{ + ctx->x += dx; + ctx->y += dy; + stbtt__csctx_v(ctx, STBTT_vline, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0); +} + +static void stbtt__csctx_rccurve_to(stbtt__csctx *ctx, float dx1, float dy1, float dx2, float dy2, float dx3, float dy3) +{ + float cx1 = ctx->x + dx1; + float cy1 = ctx->y + dy1; + float cx2 = cx1 + dx2; + float cy2 = cy1 + dy2; + ctx->x = cx2 + dx3; + ctx->y = cy2 + dy3; + stbtt__csctx_v(ctx, STBTT_vcubic, (int)ctx->x, (int)ctx->y, (int)cx1, (int)cy1, (int)cx2, (int)cy2); +} + +static stbtt__buf stbtt__get_subr(stbtt__buf idx, int n) +{ + int count = stbtt__cff_index_count(&idx); + int bias = 107; + if (count >= 33900) + bias = 32768; + else if (count >= 1240) + bias = 1131; + n += bias; + if (n < 0 || n >= count) + return stbtt__new_buf(NULL, 0); + return stbtt__cff_index_get(idx, n); +} + +static stbtt__buf stbtt__cid_get_glyph_subrs(const stbtt_fontinfo *info, int glyph_index) +{ + stbtt__buf fdselect = info->fdselect; + int nranges, start, end, v, fmt, fdselector = -1, i; + + stbtt__buf_seek(&fdselect, 0); + fmt = stbtt__buf_get8(&fdselect); + if (fmt == 0) { + // untested + stbtt__buf_skip(&fdselect, glyph_index); + fdselector = stbtt__buf_get8(&fdselect); + } else if (fmt == 3) { + nranges = stbtt__buf_get16(&fdselect); + start = stbtt__buf_get16(&fdselect); + for (i = 0; i < nranges; i++) { + v = stbtt__buf_get8(&fdselect); + end = stbtt__buf_get16(&fdselect); + if (glyph_index >= start && glyph_index < end) { + fdselector = v; + break; + } + start = end; + } + } + if (fdselector == -1) stbtt__new_buf(NULL, 0); + return stbtt__get_subrs(info->cff, stbtt__cff_index_get(info->fontdicts, fdselector)); +} + +static int stbtt__run_charstring(const stbtt_fontinfo *info, int glyph_index, stbtt__csctx *c) +{ + int in_header = 1, maskbits = 0, subr_stack_height = 0, sp = 0, v, i, b0; + int has_subrs = 0, clear_stack; + float s[48]; + stbtt__buf subr_stack[10], subrs = info->subrs, b; + float f; + +#define STBTT__CSERR(s) (0) + + // this currently ignores the initial width value, which isn't needed if we have hmtx + b = stbtt__cff_index_get(info->charstrings, glyph_index); + while (b.cursor < b.size) { + i = 0; + clear_stack = 1; + b0 = stbtt__buf_get8(&b); + switch (b0) { + // @TODO implement hinting + case 0x13: // hintmask + case 0x14: // cntrmask + if (in_header) + maskbits += (sp / 2); // implicit "vstem" + in_header = 0; + stbtt__buf_skip(&b, (maskbits + 7) / 8); + break; + + case 0x01: // hstem + case 0x03: // vstem + case 0x12: // hstemhm + case 0x17: // vstemhm + maskbits += (sp / 2); + break; + + case 0x15: // rmoveto + in_header = 0; + if (sp < 2) return STBTT__CSERR("rmoveto stack"); + stbtt__csctx_rmove_to(c, s[sp-2], s[sp-1]); + break; + case 0x04: // vmoveto + in_header = 0; + if (sp < 1) return STBTT__CSERR("vmoveto stack"); + stbtt__csctx_rmove_to(c, 0, s[sp-1]); + break; + case 0x16: // hmoveto + in_header = 0; + if (sp < 1) return STBTT__CSERR("hmoveto stack"); + stbtt__csctx_rmove_to(c, s[sp-1], 0); + break; + + case 0x05: // rlineto + if (sp < 2) return STBTT__CSERR("rlineto stack"); + for (; i + 1 < sp; i += 2) + stbtt__csctx_rline_to(c, s[i], s[i+1]); + break; + + // hlineto/vlineto and vhcurveto/hvcurveto alternate horizontal and vertical + // starting from a different place. + + case 0x07: // vlineto + if (sp < 1) return STBTT__CSERR("vlineto stack"); + goto vlineto; + case 0x06: // hlineto + if (sp < 1) return STBTT__CSERR("hlineto stack"); + for (;;) { + if (i >= sp) break; + stbtt__csctx_rline_to(c, s[i], 0); + i++; + vlineto: + if (i >= sp) break; + stbtt__csctx_rline_to(c, 0, s[i]); + i++; + } + break; + + case 0x1F: // hvcurveto + if (sp < 4) return STBTT__CSERR("hvcurveto stack"); + goto hvcurveto; + case 0x1E: // vhcurveto + if (sp < 4) return STBTT__CSERR("vhcurveto stack"); + for (;;) { + if (i + 3 >= sp) break; + stbtt__csctx_rccurve_to(c, 0, s[i], s[i+1], s[i+2], s[i+3], (sp - i == 5) ? s[i + 4] : 0.0f); + i += 4; + hvcurveto: + if (i + 3 >= sp) break; + stbtt__csctx_rccurve_to(c, s[i], 0, s[i+1], s[i+2], (sp - i == 5) ? s[i+4] : 0.0f, s[i+3]); + i += 4; + } + break; + + case 0x08: // rrcurveto + if (sp < 6) return STBTT__CSERR("rcurveline stack"); + for (; i + 5 < sp; i += 6) + stbtt__csctx_rccurve_to(c, s[i], s[i+1], s[i+2], s[i+3], s[i+4], s[i+5]); + break; + + case 0x18: // rcurveline + if (sp < 8) return STBTT__CSERR("rcurveline stack"); + for (; i + 5 < sp - 2; i += 6) + stbtt__csctx_rccurve_to(c, s[i], s[i+1], s[i+2], s[i+3], s[i+4], s[i+5]); + if (i + 1 >= sp) return STBTT__CSERR("rcurveline stack"); + stbtt__csctx_rline_to(c, s[i], s[i+1]); + break; + + case 0x19: // rlinecurve + if (sp < 8) return STBTT__CSERR("rlinecurve stack"); + for (; i + 1 < sp - 6; i += 2) + stbtt__csctx_rline_to(c, s[i], s[i+1]); + if (i + 5 >= sp) return STBTT__CSERR("rlinecurve stack"); + stbtt__csctx_rccurve_to(c, s[i], s[i+1], s[i+2], s[i+3], s[i+4], s[i+5]); + break; + + case 0x1A: // vvcurveto + case 0x1B: // hhcurveto + if (sp < 4) return STBTT__CSERR("(vv|hh)curveto stack"); + f = 0.0; + if (sp & 1) { f = s[i]; i++; } + for (; i + 3 < sp; i += 4) { + if (b0 == 0x1B) + stbtt__csctx_rccurve_to(c, s[i], f, s[i+1], s[i+2], s[i+3], 0.0); + else + stbtt__csctx_rccurve_to(c, f, s[i], s[i+1], s[i+2], 0.0, s[i+3]); + f = 0.0; + } + break; + + case 0x0A: // callsubr + if (!has_subrs) { + if (info->fdselect.size) + subrs = stbtt__cid_get_glyph_subrs(info, glyph_index); + has_subrs = 1; + } + // FALLTHROUGH + case 0x1D: // callgsubr + if (sp < 1) return STBTT__CSERR("call(g|)subr stack"); + v = (int) s[--sp]; + if (subr_stack_height >= 10) return STBTT__CSERR("recursion limit"); + subr_stack[subr_stack_height++] = b; + b = stbtt__get_subr(b0 == 0x0A ? subrs : info->gsubrs, v); + if (b.size == 0) return STBTT__CSERR("subr not found"); + b.cursor = 0; + clear_stack = 0; + break; + + case 0x0B: // return + if (subr_stack_height <= 0) return STBTT__CSERR("return outside subr"); + b = subr_stack[--subr_stack_height]; + clear_stack = 0; + break; + + case 0x0E: // endchar + stbtt__csctx_close_shape(c); + return 1; + + case 0x0C: { // two-byte escape + float dx1, dx2, dx3, dx4, dx5, dx6, dy1, dy2, dy3, dy4, dy5, dy6; + float dx, dy; + int b1 = stbtt__buf_get8(&b); + switch (b1) { + // @TODO These "flex" implementations ignore the flex-depth and resolution, + // and always draw beziers. + case 0x22: // hflex + if (sp < 7) return STBTT__CSERR("hflex stack"); + dx1 = s[0]; + dx2 = s[1]; + dy2 = s[2]; + dx3 = s[3]; + dx4 = s[4]; + dx5 = s[5]; + dx6 = s[6]; + stbtt__csctx_rccurve_to(c, dx1, 0, dx2, dy2, dx3, 0); + stbtt__csctx_rccurve_to(c, dx4, 0, dx5, -dy2, dx6, 0); + break; + + case 0x23: // flex + if (sp < 13) return STBTT__CSERR("flex stack"); + dx1 = s[0]; + dy1 = s[1]; + dx2 = s[2]; + dy2 = s[3]; + dx3 = s[4]; + dy3 = s[5]; + dx4 = s[6]; + dy4 = s[7]; + dx5 = s[8]; + dy5 = s[9]; + dx6 = s[10]; + dy6 = s[11]; + //fd is s[12] + stbtt__csctx_rccurve_to(c, dx1, dy1, dx2, dy2, dx3, dy3); + stbtt__csctx_rccurve_to(c, dx4, dy4, dx5, dy5, dx6, dy6); + break; + + case 0x24: // hflex1 + if (sp < 9) return STBTT__CSERR("hflex1 stack"); + dx1 = s[0]; + dy1 = s[1]; + dx2 = s[2]; + dy2 = s[3]; + dx3 = s[4]; + dx4 = s[5]; + dx5 = s[6]; + dy5 = s[7]; + dx6 = s[8]; + stbtt__csctx_rccurve_to(c, dx1, dy1, dx2, dy2, dx3, 0); + stbtt__csctx_rccurve_to(c, dx4, 0, dx5, dy5, dx6, -(dy1+dy2+dy5)); + break; + + case 0x25: // flex1 + if (sp < 11) return STBTT__CSERR("flex1 stack"); + dx1 = s[0]; + dy1 = s[1]; + dx2 = s[2]; + dy2 = s[3]; + dx3 = s[4]; + dy3 = s[5]; + dx4 = s[6]; + dy4 = s[7]; + dx5 = s[8]; + dy5 = s[9]; + dx6 = dy6 = s[10]; + dx = dx1+dx2+dx3+dx4+dx5; + dy = dy1+dy2+dy3+dy4+dy5; + if (STBTT_fabs(dx) > STBTT_fabs(dy)) + dy6 = -dy; + else + dx6 = -dx; + stbtt__csctx_rccurve_to(c, dx1, dy1, dx2, dy2, dx3, dy3); + stbtt__csctx_rccurve_to(c, dx4, dy4, dx5, dy5, dx6, dy6); + break; + + default: + return STBTT__CSERR("unimplemented"); + } + } break; + + default: + if (b0 != 255 && b0 != 28 && b0 < 32) + return STBTT__CSERR("reserved operator"); + + // push immediate + if (b0 == 255) { + f = (float)(stbtt_int32)stbtt__buf_get32(&b) / 0x10000; + } else { + stbtt__buf_skip(&b, -1); + f = (float)(stbtt_int16)stbtt__cff_int(&b); + } + if (sp >= 48) return STBTT__CSERR("push stack overflow"); + s[sp++] = f; + clear_stack = 0; + break; + } + if (clear_stack) sp = 0; + } + return STBTT__CSERR("no endchar"); + +#undef STBTT__CSERR +} + +static int stbtt__GetGlyphShapeT2(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) +{ + // runs the charstring twice, once to count and once to output (to avoid realloc) + stbtt__csctx count_ctx = STBTT__CSCTX_INIT(1); + stbtt__csctx output_ctx = STBTT__CSCTX_INIT(0); + if (stbtt__run_charstring(info, glyph_index, &count_ctx)) { + *pvertices = (stbtt_vertex*)STBTT_malloc(count_ctx.num_vertices*sizeof(stbtt_vertex), info->userdata); + output_ctx.pvertices = *pvertices; + if (stbtt__run_charstring(info, glyph_index, &output_ctx)) { + STBTT_assert(output_ctx.num_vertices == count_ctx.num_vertices); + return output_ctx.num_vertices; + } + } + *pvertices = NULL; + return 0; +} + +static int stbtt__GetGlyphInfoT2(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) +{ + stbtt__csctx c = STBTT__CSCTX_INIT(1); + int r = stbtt__run_charstring(info, glyph_index, &c); + if (x0) *x0 = r ? c.min_x : 0; + if (y0) *y0 = r ? c.min_y : 0; + if (x1) *x1 = r ? c.max_x : 0; + if (y1) *y1 = r ? c.max_y : 0; + return r ? c.num_vertices : 0; +} + +STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) +{ + if (!info->cff.size) + return stbtt__GetGlyphShapeTT(info, glyph_index, pvertices); + else + return stbtt__GetGlyphShapeT2(info, glyph_index, pvertices); +} + +STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing) +{ + stbtt_uint16 numOfLongHorMetrics = ttUSHORT(info->data+info->hhea + 34); + if (glyph_index < numOfLongHorMetrics) { + if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*glyph_index); + if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*glyph_index + 2); + } else { + if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*(numOfLongHorMetrics-1)); + if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*numOfLongHorMetrics + 2*(glyph_index - numOfLongHorMetrics)); + } +} + +STBTT_DEF int stbtt_GetKerningTableLength(const stbtt_fontinfo *info) +{ + stbtt_uint8 *data = info->data + info->kern; + + // we only look at the first table. it must be 'horizontal' and format 0. + if (!info->kern) + return 0; + if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 + return 0; + if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format + return 0; + + return ttUSHORT(data+10); +} + +STBTT_DEF int stbtt_GetKerningTable(const stbtt_fontinfo *info, stbtt_kerningentry* table, int table_length) +{ + stbtt_uint8 *data = info->data + info->kern; + int k, length; + + // we only look at the first table. it must be 'horizontal' and format 0. + if (!info->kern) + return 0; + if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 + return 0; + if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format + return 0; + + length = ttUSHORT(data+10); + if (table_length < length) + length = table_length; + + for (k = 0; k < length; k++) + { + table[k].glyph1 = ttUSHORT(data+18+(k*6)); + table[k].glyph2 = ttUSHORT(data+20+(k*6)); + table[k].advance = ttSHORT(data+22+(k*6)); + } + + return length; +} + +static int stbtt__GetGlyphKernInfoAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) +{ + stbtt_uint8 *data = info->data + info->kern; + stbtt_uint32 needle, straw; + int l, r, m; + + // we only look at the first table. it must be 'horizontal' and format 0. + if (!info->kern) + return 0; + if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 + return 0; + if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format + return 0; + + l = 0; + r = ttUSHORT(data+10) - 1; + needle = glyph1 << 16 | glyph2; + while (l <= r) { + m = (l + r) >> 1; + straw = ttULONG(data+18+(m*6)); // note: unaligned read + if (needle < straw) + r = m - 1; + else if (needle > straw) + l = m + 1; + else + return ttSHORT(data+22+(m*6)); + } + return 0; +} + +static stbtt_int32 stbtt__GetCoverageIndex(stbtt_uint8 *coverageTable, int glyph) +{ + stbtt_uint16 coverageFormat = ttUSHORT(coverageTable); + switch (coverageFormat) { + case 1: { + stbtt_uint16 glyphCount = ttUSHORT(coverageTable + 2); + + // Binary search. + stbtt_int32 l=0, r=glyphCount-1, m; + int straw, needle=glyph; + while (l <= r) { + stbtt_uint8 *glyphArray = coverageTable + 4; + stbtt_uint16 glyphID; + m = (l + r) >> 1; + glyphID = ttUSHORT(glyphArray + 2 * m); + straw = glyphID; + if (needle < straw) + r = m - 1; + else if (needle > straw) + l = m + 1; + else { + return m; + } + } + break; + } + + case 2: { + stbtt_uint16 rangeCount = ttUSHORT(coverageTable + 2); + stbtt_uint8 *rangeArray = coverageTable + 4; + + // Binary search. + stbtt_int32 l=0, r=rangeCount-1, m; + int strawStart, strawEnd, needle=glyph; + while (l <= r) { + stbtt_uint8 *rangeRecord; + m = (l + r) >> 1; + rangeRecord = rangeArray + 6 * m; + strawStart = ttUSHORT(rangeRecord); + strawEnd = ttUSHORT(rangeRecord + 2); + if (needle < strawStart) + r = m - 1; + else if (needle > strawEnd) + l = m + 1; + else { + stbtt_uint16 startCoverageIndex = ttUSHORT(rangeRecord + 4); + return startCoverageIndex + glyph - strawStart; + } + } + break; + } + + default: return -1; // unsupported + } + + return -1; +} + +static stbtt_int32 stbtt__GetGlyphClass(stbtt_uint8 *classDefTable, int glyph) +{ + stbtt_uint16 classDefFormat = ttUSHORT(classDefTable); + switch (classDefFormat) + { + case 1: { + stbtt_uint16 startGlyphID = ttUSHORT(classDefTable + 2); + stbtt_uint16 glyphCount = ttUSHORT(classDefTable + 4); + stbtt_uint8 *classDef1ValueArray = classDefTable + 6; + + if (glyph >= startGlyphID && glyph < startGlyphID + glyphCount) + return (stbtt_int32)ttUSHORT(classDef1ValueArray + 2 * (glyph - startGlyphID)); + break; + } + + case 2: { + stbtt_uint16 classRangeCount = ttUSHORT(classDefTable + 2); + stbtt_uint8 *classRangeRecords = classDefTable + 4; + + // Binary search. + stbtt_int32 l=0, r=classRangeCount-1, m; + int strawStart, strawEnd, needle=glyph; + while (l <= r) { + stbtt_uint8 *classRangeRecord; + m = (l + r) >> 1; + classRangeRecord = classRangeRecords + 6 * m; + strawStart = ttUSHORT(classRangeRecord); + strawEnd = ttUSHORT(classRangeRecord + 2); + if (needle < strawStart) + r = m - 1; + else if (needle > strawEnd) + l = m + 1; + else + return (stbtt_int32)ttUSHORT(classRangeRecord + 4); + } + break; + } + + default: + return -1; // Unsupported definition type, return an error. + } + + // "All glyphs not assigned to a class fall into class 0". (OpenType spec) + return 0; +} + +// Define to STBTT_assert(x) if you want to break on unimplemented formats. +#define STBTT_GPOS_TODO_assert(x) + +static stbtt_int32 stbtt__GetGlyphGPOSInfoAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) +{ + stbtt_uint16 lookupListOffset; + stbtt_uint8 *lookupList; + stbtt_uint16 lookupCount; + stbtt_uint8 *data; + stbtt_int32 i, sti; + + if (!info->gpos) return 0; + + data = info->data + info->gpos; + + if (ttUSHORT(data+0) != 1) return 0; // Major version 1 + if (ttUSHORT(data+2) != 0) return 0; // Minor version 0 + + lookupListOffset = ttUSHORT(data+8); + lookupList = data + lookupListOffset; + lookupCount = ttUSHORT(lookupList); + + for (i=0; i= pairSetCount) return 0; + + needle=glyph2; + r=pairValueCount-1; + l=0; + + // Binary search. + while (l <= r) { + stbtt_uint16 secondGlyph; + stbtt_uint8 *pairValue; + m = (l + r) >> 1; + pairValue = pairValueArray + (2 + valueRecordPairSizeInBytes) * m; + secondGlyph = ttUSHORT(pairValue); + straw = secondGlyph; + if (needle < straw) + r = m - 1; + else if (needle > straw) + l = m + 1; + else { + stbtt_int16 xAdvance = ttSHORT(pairValue + 2); + return xAdvance; + } + } + } else + return 0; + break; + } + + case 2: { + stbtt_uint16 valueFormat1 = ttUSHORT(table + 4); + stbtt_uint16 valueFormat2 = ttUSHORT(table + 6); + if (valueFormat1 == 4 && valueFormat2 == 0) { // Support more formats? + stbtt_uint16 classDef1Offset = ttUSHORT(table + 8); + stbtt_uint16 classDef2Offset = ttUSHORT(table + 10); + int glyph1class = stbtt__GetGlyphClass(table + classDef1Offset, glyph1); + int glyph2class = stbtt__GetGlyphClass(table + classDef2Offset, glyph2); + + stbtt_uint16 class1Count = ttUSHORT(table + 12); + stbtt_uint16 class2Count = ttUSHORT(table + 14); + stbtt_uint8 *class1Records, *class2Records; + stbtt_int16 xAdvance; + + if (glyph1class < 0 || glyph1class >= class1Count) return 0; // malformed + if (glyph2class < 0 || glyph2class >= class2Count) return 0; // malformed + + class1Records = table + 16; + class2Records = class1Records + 2 * (glyph1class * class2Count); + xAdvance = ttSHORT(class2Records + 2 * glyph2class); + return xAdvance; + } else + return 0; + break; + } + + default: + return 0; // Unsupported position format + } + } + } + + return 0; +} + +STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int g1, int g2) +{ + int xAdvance = 0; + + if (info->gpos) + xAdvance += stbtt__GetGlyphGPOSInfoAdvance(info, g1, g2); + else if (info->kern) + xAdvance += stbtt__GetGlyphKernInfoAdvance(info, g1, g2); + + return xAdvance; +} + +STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2) +{ + if (!info->kern && !info->gpos) // if no kerning table, don't waste time looking up both codepoint->glyphs + return 0; + return stbtt_GetGlyphKernAdvance(info, stbtt_FindGlyphIndex(info,ch1), stbtt_FindGlyphIndex(info,ch2)); +} + +STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing) +{ + stbtt_GetGlyphHMetrics(info, stbtt_FindGlyphIndex(info,codepoint), advanceWidth, leftSideBearing); +} + +STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap) +{ + if (ascent ) *ascent = ttSHORT(info->data+info->hhea + 4); + if (descent) *descent = ttSHORT(info->data+info->hhea + 6); + if (lineGap) *lineGap = ttSHORT(info->data+info->hhea + 8); +} + +STBTT_DEF int stbtt_GetFontVMetricsOS2(const stbtt_fontinfo *info, int *typoAscent, int *typoDescent, int *typoLineGap) +{ + int tab = stbtt__find_table(info->data, info->fontstart, "OS/2"); + if (!tab) + return 0; + if (typoAscent ) *typoAscent = ttSHORT(info->data+tab + 68); + if (typoDescent) *typoDescent = ttSHORT(info->data+tab + 70); + if (typoLineGap) *typoLineGap = ttSHORT(info->data+tab + 72); + return 1; +} + +STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1) +{ + *x0 = ttSHORT(info->data + info->head + 36); + *y0 = ttSHORT(info->data + info->head + 38); + *x1 = ttSHORT(info->data + info->head + 40); + *y1 = ttSHORT(info->data + info->head + 42); +} + +STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float height) +{ + int fheight = ttSHORT(info->data + info->hhea + 4) - ttSHORT(info->data + info->hhea + 6); + return (float) height / fheight; +} + +STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels) +{ + int unitsPerEm = ttUSHORT(info->data + info->head + 18); + return pixels / unitsPerEm; +} + +STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v) +{ + STBTT_free(v, info->userdata); +} + +STBTT_DEF stbtt_uint8 *stbtt_FindSVGDoc(const stbtt_fontinfo *info, int gl) +{ + int i; + stbtt_uint8 *data = info->data; + stbtt_uint8 *svg_doc_list = data + stbtt__get_svg((stbtt_fontinfo *) info); + + int numEntries = ttUSHORT(svg_doc_list); + stbtt_uint8 *svg_docs = svg_doc_list + 2; + + for(i=0; i= ttUSHORT(svg_doc)) && (gl <= ttUSHORT(svg_doc + 2))) + return svg_doc; + } + return 0; +} + +STBTT_DEF int stbtt_GetGlyphSVG(const stbtt_fontinfo *info, int gl, const char **svg) +{ + stbtt_uint8 *data = info->data; + stbtt_uint8 *svg_doc; + + if (info->svg == 0) + return 0; + + svg_doc = stbtt_FindSVGDoc(info, gl); + if (svg_doc != NULL) { + *svg = (char *) data + info->svg + ttULONG(svg_doc + 4); + return ttULONG(svg_doc + 8); + } else { + return 0; + } +} + +STBTT_DEF int stbtt_GetCodepointSVG(const stbtt_fontinfo *info, int unicode_codepoint, const char **svg) +{ + return stbtt_GetGlyphSVG(info, stbtt_FindGlyphIndex(info, unicode_codepoint), svg); +} + +////////////////////////////////////////////////////////////////////////////// +// +// antialiasing software rasterizer +// + +STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + int x0=0,y0=0,x1,y1; // =0 suppresses compiler warning + if (!stbtt_GetGlyphBox(font, glyph, &x0,&y0,&x1,&y1)) { + // e.g. space character + if (ix0) *ix0 = 0; + if (iy0) *iy0 = 0; + if (ix1) *ix1 = 0; + if (iy1) *iy1 = 0; + } else { + // move to integral bboxes (treating pixels as little squares, what pixels get touched)? + if (ix0) *ix0 = STBTT_ifloor( x0 * scale_x + shift_x); + if (iy0) *iy0 = STBTT_ifloor(-y1 * scale_y + shift_y); + if (ix1) *ix1 = STBTT_iceil ( x1 * scale_x + shift_x); + if (iy1) *iy1 = STBTT_iceil (-y0 * scale_y + shift_y); + } +} + +STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetGlyphBitmapBoxSubpixel(font, glyph, scale_x, scale_y,0.0f,0.0f, ix0, iy0, ix1, iy1); +} + +STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetGlyphBitmapBoxSubpixel(font, stbtt_FindGlyphIndex(font,codepoint), scale_x, scale_y,shift_x,shift_y, ix0,iy0,ix1,iy1); +} + +STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetCodepointBitmapBoxSubpixel(font, codepoint, scale_x, scale_y,0.0f,0.0f, ix0,iy0,ix1,iy1); +} + +////////////////////////////////////////////////////////////////////////////// +// +// Rasterizer + +typedef struct stbtt__hheap_chunk +{ + struct stbtt__hheap_chunk *next; +} stbtt__hheap_chunk; + +typedef struct stbtt__hheap +{ + struct stbtt__hheap_chunk *head; + void *first_free; + int num_remaining_in_head_chunk; +} stbtt__hheap; + +static void *stbtt__hheap_alloc(stbtt__hheap *hh, size_t size, void *userdata) +{ + if (hh->first_free) { + void *p = hh->first_free; + hh->first_free = * (void **) p; + return p; + } else { + if (hh->num_remaining_in_head_chunk == 0) { + int count = (size < 32 ? 2000 : size < 128 ? 800 : 100); + stbtt__hheap_chunk *c = (stbtt__hheap_chunk *) STBTT_malloc(sizeof(stbtt__hheap_chunk) + size * count, userdata); + if (c == NULL) + return NULL; + c->next = hh->head; + hh->head = c; + hh->num_remaining_in_head_chunk = count; + } + --hh->num_remaining_in_head_chunk; + return (char *) (hh->head) + sizeof(stbtt__hheap_chunk) + size * hh->num_remaining_in_head_chunk; + } +} + +static void stbtt__hheap_free(stbtt__hheap *hh, void *p) +{ + *(void **) p = hh->first_free; + hh->first_free = p; +} + +static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata) +{ + stbtt__hheap_chunk *c = hh->head; + while (c) { + stbtt__hheap_chunk *n = c->next; + STBTT_free(c, userdata); + c = n; + } +} + +typedef struct stbtt__edge { + float x0,y0, x1,y1; + int invert; +} stbtt__edge; + + +typedef struct stbtt__active_edge +{ + struct stbtt__active_edge *next; + #if STBTT_RASTERIZER_VERSION==1 + int x,dx; + float ey; + int direction; + #elif STBTT_RASTERIZER_VERSION==2 + float fx,fdx,fdy; + float direction; + float sy; + float ey; + #else + #error "Unrecognized value of STBTT_RASTERIZER_VERSION" + #endif +} stbtt__active_edge; + +#if STBTT_RASTERIZER_VERSION == 1 +#define STBTT_FIXSHIFT 10 +#define STBTT_FIX (1 << STBTT_FIXSHIFT) +#define STBTT_FIXMASK (STBTT_FIX-1) + +static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) +{ + stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); + STBTT_assert(z != NULL); + if (!z) return z; + + // round dx down to avoid overshooting + if (dxdy < 0) + z->dx = -STBTT_ifloor(STBTT_FIX * -dxdy); + else + z->dx = STBTT_ifloor(STBTT_FIX * dxdy); + + z->x = STBTT_ifloor(STBTT_FIX * e->x0 + z->dx * (start_point - e->y0)); // use z->dx so when we offset later it's by the same amount + z->x -= off_x * STBTT_FIX; + + z->ey = e->y1; + z->next = 0; + z->direction = e->invert ? 1 : -1; + return z; +} +#elif STBTT_RASTERIZER_VERSION == 2 +static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) +{ + stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); + STBTT_assert(z != NULL); + //STBTT_assert(e->y0 <= start_point); + if (!z) return z; + z->fdx = dxdy; + z->fdy = dxdy != 0.0f ? (1.0f/dxdy) : 0.0f; + z->fx = e->x0 + dxdy * (start_point - e->y0); + z->fx -= off_x; + z->direction = e->invert ? 1.0f : -1.0f; + z->sy = e->y0; + z->ey = e->y1; + z->next = 0; + return z; +} +#else +#error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + +#if STBTT_RASTERIZER_VERSION == 1 +// note: this routine clips fills that extend off the edges... ideally this +// wouldn't happen, but it could happen if the truetype glyph bounding boxes +// are wrong, or if the user supplies a too-small bitmap +static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__active_edge *e, int max_weight) +{ + // non-zero winding fill + int x0=0, w=0; + + while (e) { + if (w == 0) { + // if we're currently at zero, we need to record the edge start point + x0 = e->x; w += e->direction; + } else { + int x1 = e->x; w += e->direction; + // if we went to zero, we need to draw + if (w == 0) { + int i = x0 >> STBTT_FIXSHIFT; + int j = x1 >> STBTT_FIXSHIFT; + + if (i < len && j >= 0) { + if (i == j) { + // x0,x1 are the same pixel, so compute combined coverage + scanline[i] = scanline[i] + (stbtt_uint8) ((x1 - x0) * max_weight >> STBTT_FIXSHIFT); + } else { + if (i >= 0) // add antialiasing for x0 + scanline[i] = scanline[i] + (stbtt_uint8) (((STBTT_FIX - (x0 & STBTT_FIXMASK)) * max_weight) >> STBTT_FIXSHIFT); + else + i = -1; // clip + + if (j < len) // add antialiasing for x1 + scanline[j] = scanline[j] + (stbtt_uint8) (((x1 & STBTT_FIXMASK) * max_weight) >> STBTT_FIXSHIFT); + else + j = len; // clip + + for (++i; i < j; ++i) // fill pixels between x0 and x1 + scanline[i] = scanline[i] + (stbtt_uint8) max_weight; + } + } + } + } + + e = e->next; + } +} + +static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) +{ + stbtt__hheap hh = { 0, 0, 0 }; + stbtt__active_edge *active = NULL; + int y,j=0; + int max_weight = (255 / vsubsample); // weight per vertical scanline + int s; // vertical subsample index + unsigned char scanline_data[512], *scanline; + + if (result->w > 512) + scanline = (unsigned char *) STBTT_malloc(result->w, userdata); + else + scanline = scanline_data; + + y = off_y * vsubsample; + e[n].y0 = (off_y + result->h) * (float) vsubsample + 1; + + while (j < result->h) { + STBTT_memset(scanline, 0, result->w); + for (s=0; s < vsubsample; ++s) { + // find center of pixel for this scanline + float scan_y = y + 0.5f; + stbtt__active_edge **step = &active; + + // update all active edges; + // remove all active edges that terminate before the center of this scanline + while (*step) { + stbtt__active_edge * z = *step; + if (z->ey <= scan_y) { + *step = z->next; // delete from list + STBTT_assert(z->direction); + z->direction = 0; + stbtt__hheap_free(&hh, z); + } else { + z->x += z->dx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + } + + // resort the list if needed + for(;;) { + int changed=0; + step = &active; + while (*step && (*step)->next) { + if ((*step)->x > (*step)->next->x) { + stbtt__active_edge *t = *step; + stbtt__active_edge *q = t->next; + + t->next = q->next; + q->next = t; + *step = q; + changed = 1; + } + step = &(*step)->next; + } + if (!changed) break; + } + + // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline + while (e->y0 <= scan_y) { + if (e->y1 > scan_y) { + stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y, userdata); + if (z != NULL) { + // find insertion point + if (active == NULL) + active = z; + else if (z->x < active->x) { + // insert at front + z->next = active; + active = z; + } else { + // find thing to insert AFTER + stbtt__active_edge *p = active; + while (p->next && p->next->x < z->x) + p = p->next; + // at this point, p->next->x is NOT < z->x + z->next = p->next; + p->next = z; + } + } + } + ++e; + } + + // now process all active edges in XOR fashion + if (active) + stbtt__fill_active_edges(scanline, result->w, active, max_weight); + + ++y; + } + STBTT_memcpy(result->pixels + j * result->stride, scanline, result->w); + ++j; + } + + stbtt__hheap_cleanup(&hh, userdata); + + if (scanline != scanline_data) + STBTT_free(scanline, userdata); +} + +#elif STBTT_RASTERIZER_VERSION == 2 + +// the edge passed in here does not cross the vertical line at x or the vertical line at x+1 +// (i.e. it has already been clipped to those) +static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__active_edge *e, float x0, float y0, float x1, float y1) +{ + if (y0 == y1) return; + STBTT_assert(y0 < y1); + STBTT_assert(e->sy <= e->ey); + if (y0 > e->ey) return; + if (y1 < e->sy) return; + if (y0 < e->sy) { + x0 += (x1-x0) * (e->sy - y0) / (y1-y0); + y0 = e->sy; + } + if (y1 > e->ey) { + x1 += (x1-x0) * (e->ey - y1) / (y1-y0); + y1 = e->ey; + } + + if (x0 == x) + STBTT_assert(x1 <= x+1); + else if (x0 == x+1) + STBTT_assert(x1 >= x); + else if (x0 <= x) + STBTT_assert(x1 <= x); + else if (x0 >= x+1) + STBTT_assert(x1 >= x+1); + else + STBTT_assert(x1 >= x && x1 <= x+1); + + if (x0 <= x && x1 <= x) + scanline[x] += e->direction * (y1-y0); + else if (x0 >= x+1 && x1 >= x+1) + ; + else { + STBTT_assert(x0 >= x && x0 <= x+1 && x1 >= x && x1 <= x+1); + scanline[x] += e->direction * (y1-y0) * (1-((x0-x)+(x1-x))/2); // coverage = 1 - average x position + } +} + +static float stbtt__sized_trapezoid_area(float height, float top_width, float bottom_width) +{ + STBTT_assert(top_width >= 0); + STBTT_assert(bottom_width >= 0); + return (top_width + bottom_width) / 2.0f * height; +} + +static float stbtt__position_trapezoid_area(float height, float tx0, float tx1, float bx0, float bx1) +{ + return stbtt__sized_trapezoid_area(height, tx1 - tx0, bx1 - bx0); +} + +static float stbtt__sized_triangle_area(float height, float width) +{ + return height * width / 2; +} + +static void stbtt__fill_active_edges_new(float *scanline, float *scanline_fill, int len, stbtt__active_edge *e, float y_top) +{ + float y_bottom = y_top+1; + + while (e) { + // brute force every pixel + + // compute intersection points with top & bottom + STBTT_assert(e->ey >= y_top); + + if (e->fdx == 0) { + float x0 = e->fx; + if (x0 < len) { + if (x0 >= 0) { + stbtt__handle_clipped_edge(scanline,(int) x0,e, x0,y_top, x0,y_bottom); + stbtt__handle_clipped_edge(scanline_fill-1,(int) x0+1,e, x0,y_top, x0,y_bottom); + } else { + stbtt__handle_clipped_edge(scanline_fill-1,0,e, x0,y_top, x0,y_bottom); + } + } + } else { + float x0 = e->fx; + float dx = e->fdx; + float xb = x0 + dx; + float x_top, x_bottom; + float sy0,sy1; + float dy = e->fdy; + STBTT_assert(e->sy <= y_bottom && e->ey >= y_top); + + // compute endpoints of line segment clipped to this scanline (if the + // line segment starts on this scanline. x0 is the intersection of the + // line with y_top, but that may be off the line segment. + if (e->sy > y_top) { + x_top = x0 + dx * (e->sy - y_top); + sy0 = e->sy; + } else { + x_top = x0; + sy0 = y_top; + } + if (e->ey < y_bottom) { + x_bottom = x0 + dx * (e->ey - y_top); + sy1 = e->ey; + } else { + x_bottom = xb; + sy1 = y_bottom; + } + + if (x_top >= 0 && x_bottom >= 0 && x_top < len && x_bottom < len) { + // from here on, we don't have to range check x values + + if ((int) x_top == (int) x_bottom) { + float height; + // simple case, only spans one pixel + int x = (int) x_top; + height = (sy1 - sy0) * e->direction; + STBTT_assert(x >= 0 && x < len); + scanline[x] += stbtt__position_trapezoid_area(height, x_top, x+1.0f, x_bottom, x+1.0f); + scanline_fill[x] += height; // everything right of this pixel is filled + } else { + int x,x1,x2; + float y_crossing, y_final, step, sign, area; + // covers 2+ pixels + if (x_top > x_bottom) { + // flip scanline vertically; signed area is the same + float t; + sy0 = y_bottom - (sy0 - y_top); + sy1 = y_bottom - (sy1 - y_top); + t = sy0, sy0 = sy1, sy1 = t; + t = x_bottom, x_bottom = x_top, x_top = t; + dx = -dx; + dy = -dy; + t = x0, x0 = xb, xb = t; + } + STBTT_assert(dy >= 0); + STBTT_assert(dx >= 0); + + x1 = (int) x_top; + x2 = (int) x_bottom; + // compute intersection with y axis at x1+1 + y_crossing = y_top + dy * (x1+1 - x0); + + // compute intersection with y axis at x2 + y_final = y_top + dy * (x2 - x0); + + // x1 x_top x2 x_bottom + // y_top +------|-----+------------+------------+--------|---+------------+ + // | | | | | | + // | | | | | | + // sy0 | Txxxxx|............|............|............|............| + // y_crossing | *xxxxx.......|............|............|............| + // | | xxxxx..|............|............|............| + // | | /- xx*xxxx........|............|............| + // | | dy < | xxxxxx..|............|............| + // y_final | | \- | xx*xxx.........|............| + // sy1 | | | | xxxxxB...|............| + // | | | | | | + // | | | | | | + // y_bottom +------------+------------+------------+------------+------------+ + // + // goal is to measure the area covered by '.' in each pixel + + // if x2 is right at the right edge of x1, y_crossing can blow up, github #1057 + // @TODO: maybe test against sy1 rather than y_bottom? + if (y_crossing > y_bottom) + y_crossing = y_bottom; + + sign = e->direction; + + // area of the rectangle covered from sy0..y_crossing + area = sign * (y_crossing-sy0); + + // area of the triangle (x_top,sy0), (x1+1,sy0), (x1+1,y_crossing) + scanline[x1] += stbtt__sized_triangle_area(area, x1+1 - x_top); + + // check if final y_crossing is blown up; no test case for this + if (y_final > y_bottom) { + y_final = y_bottom; + dy = (y_final - y_crossing ) / (x2 - (x1+1)); // if denom=0, y_final = y_crossing, so y_final <= y_bottom + } + + // in second pixel, area covered by line segment found in first pixel + // is always a rectangle 1 wide * the height of that line segment; this + // is exactly what the variable 'area' stores. it also gets a contribution + // from the line segment within it. the THIRD pixel will get the first + // pixel's rectangle contribution, the second pixel's rectangle contribution, + // and its own contribution. the 'own contribution' is the same in every pixel except + // the leftmost and rightmost, a trapezoid that slides down in each pixel. + // the second pixel's contribution to the third pixel will be the + // rectangle 1 wide times the height change in the second pixel, which is dy. + + step = sign * dy * 1; // dy is dy/dx, change in y for every 1 change in x, + // which multiplied by 1-pixel-width is how much pixel area changes for each step in x + // so the area advances by 'step' every time + + for (x = x1+1; x < x2; ++x) { + scanline[x] += area + step/2; // area of trapezoid is 1*step/2 + area += step; + } + STBTT_assert(STBTT_fabs(area) <= 1.01f); // accumulated error from area += step unless we round step down + STBTT_assert(sy1 > y_final-0.01f); + + // area covered in the last pixel is the rectangle from all the pixels to the left, + // plus the trapezoid filled by the line segment in this pixel all the way to the right edge + scanline[x2] += area + sign * stbtt__position_trapezoid_area(sy1-y_final, (float) x2, x2+1.0f, x_bottom, x2+1.0f); + + // the rest of the line is filled based on the total height of the line segment in this pixel + scanline_fill[x2] += sign * (sy1-sy0); + } + } else { + // if edge goes outside of box we're drawing, we require + // clipping logic. since this does not match the intended use + // of this library, we use a different, very slow brute + // force implementation + // note though that this does happen some of the time because + // x_top and x_bottom can be extrapolated at the top & bottom of + // the shape and actually lie outside the bounding box + int x; + for (x=0; x < len; ++x) { + // cases: + // + // there can be up to two intersections with the pixel. any intersection + // with left or right edges can be handled by splitting into two (or three) + // regions. intersections with top & bottom do not necessitate case-wise logic. + // + // the old way of doing this found the intersections with the left & right edges, + // then used some simple logic to produce up to three segments in sorted order + // from top-to-bottom. however, this had a problem: if an x edge was epsilon + // across the x border, then the corresponding y position might not be distinct + // from the other y segment, and it might ignored as an empty segment. to avoid + // that, we need to explicitly produce segments based on x positions. + + // rename variables to clearly-defined pairs + float y0 = y_top; + float x1 = (float) (x); + float x2 = (float) (x+1); + float x3 = xb; + float y3 = y_bottom; + + // x = e->x + e->dx * (y-y_top) + // (y-y_top) = (x - e->x) / e->dx + // y = (x - e->x) / e->dx + y_top + float y1 = (x - x0) / dx + y_top; + float y2 = (x+1 - x0) / dx + y_top; + + if (x0 < x1 && x3 > x2) { // three segments descending down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else if (x3 < x1 && x0 > x2) { // three segments descending down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x0 < x1 && x3 > x1) { // two segments across x, down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x3 < x1 && x0 > x1) { // two segments across x, down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x0 < x2 && x3 > x2) { // two segments across x+1, down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else if (x3 < x2 && x0 > x2) { // two segments across x+1, down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else { // one segment + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x3,y3); + } + } + } + } + e = e->next; + } +} + +// directly AA rasterize edges w/o supersampling +static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) +{ + stbtt__hheap hh = { 0, 0, 0 }; + stbtt__active_edge *active = NULL; + int y,j=0, i; + float scanline_data[129], *scanline, *scanline2; + + STBTT__NOTUSED(vsubsample); + + if (result->w > 64) + scanline = (float *) STBTT_malloc((result->w*2+1) * sizeof(float), userdata); + else + scanline = scanline_data; + + scanline2 = scanline + result->w; + + y = off_y; + e[n].y0 = (float) (off_y + result->h) + 1; + + while (j < result->h) { + // find center of pixel for this scanline + float scan_y_top = y + 0.0f; + float scan_y_bottom = y + 1.0f; + stbtt__active_edge **step = &active; + + STBTT_memset(scanline , 0, result->w*sizeof(scanline[0])); + STBTT_memset(scanline2, 0, (result->w+1)*sizeof(scanline[0])); + + // update all active edges; + // remove all active edges that terminate before the top of this scanline + while (*step) { + stbtt__active_edge * z = *step; + if (z->ey <= scan_y_top) { + *step = z->next; // delete from list + STBTT_assert(z->direction); + z->direction = 0; + stbtt__hheap_free(&hh, z); + } else { + step = &((*step)->next); // advance through list + } + } + + // insert all edges that start before the bottom of this scanline + while (e->y0 <= scan_y_bottom) { + if (e->y0 != e->y1) { + stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y_top, userdata); + if (z != NULL) { + if (j == 0 && off_y != 0) { + if (z->ey < scan_y_top) { + // this can happen due to subpixel positioning and some kind of fp rounding error i think + z->ey = scan_y_top; + } + } + STBTT_assert(z->ey >= scan_y_top); // if we get really unlucky a tiny bit of an edge can be out of bounds + // insert at front + z->next = active; + active = z; + } + } + ++e; + } + + // now process all active edges + if (active) + stbtt__fill_active_edges_new(scanline, scanline2+1, result->w, active, scan_y_top); + + { + float sum = 0; + for (i=0; i < result->w; ++i) { + float k; + int m; + sum += scanline2[i]; + k = scanline[i] + sum; + k = (float) STBTT_fabs(k)*255 + 0.5f; + m = (int) k; + if (m > 255) m = 255; + result->pixels[j*result->stride + i] = (unsigned char) m; + } + } + // advance all the edges + step = &active; + while (*step) { + stbtt__active_edge *z = *step; + z->fx += z->fdx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + + ++y; + ++j; + } + + stbtt__hheap_cleanup(&hh, userdata); + + if (scanline != scanline_data) + STBTT_free(scanline, userdata); +} +#else +#error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + +#define STBTT__COMPARE(a,b) ((a)->y0 < (b)->y0) + +static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n) +{ + int i,j; + for (i=1; i < n; ++i) { + stbtt__edge t = p[i], *a = &t; + j = i; + while (j > 0) { + stbtt__edge *b = &p[j-1]; + int c = STBTT__COMPARE(a,b); + if (!c) break; + p[j] = p[j-1]; + --j; + } + if (i != j) + p[j] = t; + } +} + +static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n) +{ + /* threshold for transitioning to insertion sort */ + while (n > 12) { + stbtt__edge t; + int c01,c12,c,m,i,j; + + /* compute median of three */ + m = n >> 1; + c01 = STBTT__COMPARE(&p[0],&p[m]); + c12 = STBTT__COMPARE(&p[m],&p[n-1]); + /* if 0 >= mid >= end, or 0 < mid < end, then use mid */ + if (c01 != c12) { + /* otherwise, we'll need to swap something else to middle */ + int z; + c = STBTT__COMPARE(&p[0],&p[n-1]); + /* 0>mid && midn => n; 0 0 */ + /* 0n: 0>n => 0; 0 n */ + z = (c == c12) ? 0 : n-1; + t = p[z]; + p[z] = p[m]; + p[m] = t; + } + /* now p[m] is the median-of-three */ + /* swap it to the beginning so it won't move around */ + t = p[0]; + p[0] = p[m]; + p[m] = t; + + /* partition loop */ + i=1; + j=n-1; + for(;;) { + /* handling of equality is crucial here */ + /* for sentinels & efficiency with duplicates */ + for (;;++i) { + if (!STBTT__COMPARE(&p[i], &p[0])) break; + } + for (;;--j) { + if (!STBTT__COMPARE(&p[0], &p[j])) break; + } + /* make sure we haven't crossed */ + if (i >= j) break; + t = p[i]; + p[i] = p[j]; + p[j] = t; + + ++i; + --j; + } + /* recurse on smaller side, iterate on larger */ + if (j < (n-i)) { + stbtt__sort_edges_quicksort(p,j); + p = p+i; + n = n-i; + } else { + stbtt__sort_edges_quicksort(p+i, n-i); + n = j; + } + } +} + +static void stbtt__sort_edges(stbtt__edge *p, int n) +{ + stbtt__sort_edges_quicksort(p, n); + stbtt__sort_edges_ins_sort(p, n); +} + +typedef struct +{ + float x,y; +} stbtt__point; + +static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, int *wcount, int windings, float scale_x, float scale_y, float shift_x, float shift_y, int off_x, int off_y, int invert, void *userdata) +{ + float y_scale_inv = invert ? -scale_y : scale_y; + stbtt__edge *e; + int n,i,j,k,m; +#if STBTT_RASTERIZER_VERSION == 1 + int vsubsample = result->h < 8 ? 15 : 5; +#elif STBTT_RASTERIZER_VERSION == 2 + int vsubsample = 1; +#else + #error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + // vsubsample should divide 255 evenly; otherwise we won't reach full opacity + + // now we have to blow out the windings into explicit edge lists + n = 0; + for (i=0; i < windings; ++i) + n += wcount[i]; + + e = (stbtt__edge *) STBTT_malloc(sizeof(*e) * (n+1), userdata); // add an extra one as a sentinel + if (e == 0) return; + n = 0; + + m=0; + for (i=0; i < windings; ++i) { + stbtt__point *p = pts + m; + m += wcount[i]; + j = wcount[i]-1; + for (k=0; k < wcount[i]; j=k++) { + int a=k,b=j; + // skip the edge if horizontal + if (p[j].y == p[k].y) + continue; + // add edge from j to k to the list + e[n].invert = 0; + if (invert ? p[j].y > p[k].y : p[j].y < p[k].y) { + e[n].invert = 1; + a=j,b=k; + } + e[n].x0 = p[a].x * scale_x + shift_x; + e[n].y0 = (p[a].y * y_scale_inv + shift_y) * vsubsample; + e[n].x1 = p[b].x * scale_x + shift_x; + e[n].y1 = (p[b].y * y_scale_inv + shift_y) * vsubsample; + ++n; + } + } + + // now sort the edges by their highest point (should snap to integer, and then by x) + //STBTT_sort(e, n, sizeof(e[0]), stbtt__edge_compare); + stbtt__sort_edges(e, n); + + // now, traverse the scanlines and find the intersections on each scanline, use xor winding rule + stbtt__rasterize_sorted_edges(result, e, n, vsubsample, off_x, off_y, userdata); + + STBTT_free(e, userdata); +} + +static void stbtt__add_point(stbtt__point *points, int n, float x, float y) +{ + if (!points) return; // during first pass, it's unallocated + points[n].x = x; + points[n].y = y; +} + +// tessellate until threshold p is happy... @TODO warped to compensate for non-linear stretching +static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n) +{ + // midpoint + float mx = (x0 + 2*x1 + x2)/4; + float my = (y0 + 2*y1 + y2)/4; + // versus directly drawn line + float dx = (x0+x2)/2 - mx; + float dy = (y0+y2)/2 - my; + if (n > 16) // 65536 segments on one curve better be enough! + return 1; + if (dx*dx+dy*dy > objspace_flatness_squared) { // half-pixel error allowed... need to be smaller if AA + stbtt__tesselate_curve(points, num_points, x0,y0, (x0+x1)/2.0f,(y0+y1)/2.0f, mx,my, objspace_flatness_squared,n+1); + stbtt__tesselate_curve(points, num_points, mx,my, (x1+x2)/2.0f,(y1+y2)/2.0f, x2,y2, objspace_flatness_squared,n+1); + } else { + stbtt__add_point(points, *num_points,x2,y2); + *num_points = *num_points+1; + } + return 1; +} + +static void stbtt__tesselate_cubic(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3, float objspace_flatness_squared, int n) +{ + // @TODO this "flatness" calculation is just made-up nonsense that seems to work well enough + float dx0 = x1-x0; + float dy0 = y1-y0; + float dx1 = x2-x1; + float dy1 = y2-y1; + float dx2 = x3-x2; + float dy2 = y3-y2; + float dx = x3-x0; + float dy = y3-y0; + float longlen = (float) (STBTT_sqrt(dx0*dx0+dy0*dy0)+STBTT_sqrt(dx1*dx1+dy1*dy1)+STBTT_sqrt(dx2*dx2+dy2*dy2)); + float shortlen = (float) STBTT_sqrt(dx*dx+dy*dy); + float flatness_squared = longlen*longlen-shortlen*shortlen; + + if (n > 16) // 65536 segments on one curve better be enough! + return; + + if (flatness_squared > objspace_flatness_squared) { + float x01 = (x0+x1)/2; + float y01 = (y0+y1)/2; + float x12 = (x1+x2)/2; + float y12 = (y1+y2)/2; + float x23 = (x2+x3)/2; + float y23 = (y2+y3)/2; + + float xa = (x01+x12)/2; + float ya = (y01+y12)/2; + float xb = (x12+x23)/2; + float yb = (y12+y23)/2; + + float mx = (xa+xb)/2; + float my = (ya+yb)/2; + + stbtt__tesselate_cubic(points, num_points, x0,y0, x01,y01, xa,ya, mx,my, objspace_flatness_squared,n+1); + stbtt__tesselate_cubic(points, num_points, mx,my, xb,yb, x23,y23, x3,y3, objspace_flatness_squared,n+1); + } else { + stbtt__add_point(points, *num_points,x3,y3); + *num_points = *num_points+1; + } +} + +// returns number of contours +static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num_verts, float objspace_flatness, int **contour_lengths, int *num_contours, void *userdata) +{ + stbtt__point *points=0; + int num_points=0; + + float objspace_flatness_squared = objspace_flatness * objspace_flatness; + int i,n=0,start=0, pass; + + // count how many "moves" there are to get the contour count + for (i=0; i < num_verts; ++i) + if (vertices[i].type == STBTT_vmove) + ++n; + + *num_contours = n; + if (n == 0) return 0; + + *contour_lengths = (int *) STBTT_malloc(sizeof(**contour_lengths) * n, userdata); + + if (*contour_lengths == 0) { + *num_contours = 0; + return 0; + } + + // make two passes through the points so we don't need to realloc + for (pass=0; pass < 2; ++pass) { + float x=0,y=0; + if (pass == 1) { + points = (stbtt__point *) STBTT_malloc(num_points * sizeof(points[0]), userdata); + if (points == NULL) goto error; + } + num_points = 0; + n= -1; + for (i=0; i < num_verts; ++i) { + switch (vertices[i].type) { + case STBTT_vmove: + // start the next contour + if (n >= 0) + (*contour_lengths)[n] = num_points - start; + ++n; + start = num_points; + + x = vertices[i].x, y = vertices[i].y; + stbtt__add_point(points, num_points++, x,y); + break; + case STBTT_vline: + x = vertices[i].x, y = vertices[i].y; + stbtt__add_point(points, num_points++, x, y); + break; + case STBTT_vcurve: + stbtt__tesselate_curve(points, &num_points, x,y, + vertices[i].cx, vertices[i].cy, + vertices[i].x, vertices[i].y, + objspace_flatness_squared, 0); + x = vertices[i].x, y = vertices[i].y; + break; + case STBTT_vcubic: + stbtt__tesselate_cubic(points, &num_points, x,y, + vertices[i].cx, vertices[i].cy, + vertices[i].cx1, vertices[i].cy1, + vertices[i].x, vertices[i].y, + objspace_flatness_squared, 0); + x = vertices[i].x, y = vertices[i].y; + break; + } + } + (*contour_lengths)[n] = num_points - start; + } + + return points; +error: + STBTT_free(points, userdata); + STBTT_free(*contour_lengths, userdata); + *contour_lengths = 0; + *num_contours = 0; + return NULL; +} + +STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata) +{ + float scale = scale_x > scale_y ? scale_y : scale_x; + int winding_count = 0; + int *winding_lengths = NULL; + stbtt__point *windings = stbtt_FlattenCurves(vertices, num_verts, flatness_in_pixels / scale, &winding_lengths, &winding_count, userdata); + if (windings) { + stbtt__rasterize(result, windings, winding_lengths, winding_count, scale_x, scale_y, shift_x, shift_y, x_off, y_off, invert, userdata); + STBTT_free(winding_lengths, userdata); + STBTT_free(windings, userdata); + } +} + +STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata) +{ + STBTT_free(bitmap, userdata); +} + +STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff) +{ + int ix0,iy0,ix1,iy1; + stbtt__bitmap gbm; + stbtt_vertex *vertices; + int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); + + if (scale_x == 0) scale_x = scale_y; + if (scale_y == 0) { + if (scale_x == 0) { + STBTT_free(vertices, info->userdata); + return NULL; + } + scale_y = scale_x; + } + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1); + + // now we get the size + gbm.w = (ix1 - ix0); + gbm.h = (iy1 - iy0); + gbm.pixels = NULL; // in case we error + + if (width ) *width = gbm.w; + if (height) *height = gbm.h; + if (xoff ) *xoff = ix0; + if (yoff ) *yoff = iy0; + + if (gbm.w && gbm.h) { + gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); + if (gbm.pixels) { + gbm.stride = gbm.w; + + stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0, iy0, 1, info->userdata); + } + } + STBTT_free(vertices, info->userdata); + return gbm.pixels; +} + +STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y, 0.0f, 0.0f, glyph, width, height, xoff, yoff); +} + +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph) +{ + int ix0,iy0; + stbtt_vertex *vertices; + int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); + stbtt__bitmap gbm; + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); + gbm.pixels = output; + gbm.w = out_w; + gbm.h = out_h; + gbm.stride = out_stride; + + if (gbm.w && gbm.h) + stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0,iy0, 1, info->userdata); + + STBTT_free(vertices, info->userdata); +} + +STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph) +{ + stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, glyph); +} + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); +} + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int oversample_x, int oversample_y, float *sub_x, float *sub_y, int codepoint) +{ + stbtt_MakeGlyphBitmapSubpixelPrefilter(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, oversample_x, oversample_y, sub_x, sub_y, stbtt_FindGlyphIndex(info,codepoint)); +} + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) +{ + stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, stbtt_FindGlyphIndex(info,codepoint)); +} + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); +} + +STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) +{ + stbtt_MakeCodepointBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, codepoint); +} + +////////////////////////////////////////////////////////////////////////////// +// +// bitmap baking +// +// This is SUPER-CRAPPY packing to keep source code small + +static int stbtt_BakeFontBitmap_internal(unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) + float pixel_height, // height of font in pixels + unsigned char *pixels, int pw, int ph, // bitmap to be filled in + int first_char, int num_chars, // characters to bake + stbtt_bakedchar *chardata) +{ + float scale; + int x,y,bottom_y, i; + stbtt_fontinfo f; + f.userdata = NULL; + if (!stbtt_InitFont(&f, data, offset)) + return -1; + STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels + x=y=1; + bottom_y = 1; + + scale = stbtt_ScaleForPixelHeight(&f, pixel_height); + + for (i=0; i < num_chars; ++i) { + int advance, lsb, x0,y0,x1,y1,gw,gh; + int g = stbtt_FindGlyphIndex(&f, first_char + i); + stbtt_GetGlyphHMetrics(&f, g, &advance, &lsb); + stbtt_GetGlyphBitmapBox(&f, g, scale,scale, &x0,&y0,&x1,&y1); + gw = x1-x0; + gh = y1-y0; + if (x + gw + 1 >= pw) + y = bottom_y, x = 1; // advance to next row + if (y + gh + 1 >= ph) // check if it fits vertically AFTER potentially moving to next row + return -i; + STBTT_assert(x+gw < pw); + STBTT_assert(y+gh < ph); + stbtt_MakeGlyphBitmap(&f, pixels+x+y*pw, gw,gh,pw, scale,scale, g); + chardata[i].x0 = (stbtt_int16) x; + chardata[i].y0 = (stbtt_int16) y; + chardata[i].x1 = (stbtt_int16) (x + gw); + chardata[i].y1 = (stbtt_int16) (y + gh); + chardata[i].xadvance = scale * advance; + chardata[i].xoff = (float) x0; + chardata[i].yoff = (float) y0; + x = x + gw + 1; + if (y+gh+1 > bottom_y) + bottom_y = y+gh+1; + } + return bottom_y; +} + +STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int opengl_fillrule) +{ + float d3d_bias = opengl_fillrule ? 0 : -0.5f; + float ipw = 1.0f / pw, iph = 1.0f / ph; + const stbtt_bakedchar *b = chardata + char_index; + int round_x = STBTT_ifloor((*xpos + b->xoff) + 0.5f); + int round_y = STBTT_ifloor((*ypos + b->yoff) + 0.5f); + + q->x0 = round_x + d3d_bias; + q->y0 = round_y + d3d_bias; + q->x1 = round_x + b->x1 - b->x0 + d3d_bias; + q->y1 = round_y + b->y1 - b->y0 + d3d_bias; + + q->s0 = b->x0 * ipw; + q->t0 = b->y0 * iph; + q->s1 = b->x1 * ipw; + q->t1 = b->y1 * iph; + + *xpos += b->xadvance; +} + +////////////////////////////////////////////////////////////////////////////// +// +// rectangle packing replacement routines if you don't have stb_rect_pack.h +// + +#ifndef STB_RECT_PACK_VERSION + +typedef int stbrp_coord; + +//////////////////////////////////////////////////////////////////////////////////// +// // +// // +// COMPILER WARNING ?!?!? // +// // +// // +// if you get a compile warning due to these symbols being defined more than // +// once, move #include "stb_rect_pack.h" before #include "stb_truetype.h" // +// // +//////////////////////////////////////////////////////////////////////////////////// + +typedef struct +{ + int width,height; + int x,y,bottom_y; +} stbrp_context; + +typedef struct +{ + unsigned char x; +} stbrp_node; + +struct stbrp_rect +{ + stbrp_coord x,y; + int id,w,h,was_packed; +}; + +static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *nodes, int num_nodes) +{ + con->width = pw; + con->height = ph; + con->x = 0; + con->y = 0; + con->bottom_y = 0; + STBTT__NOTUSED(nodes); + STBTT__NOTUSED(num_nodes); +} + +static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects) +{ + int i; + for (i=0; i < num_rects; ++i) { + if (con->x + rects[i].w > con->width) { + con->x = 0; + con->y = con->bottom_y; + } + if (con->y + rects[i].h > con->height) + break; + rects[i].x = con->x; + rects[i].y = con->y; + rects[i].was_packed = 1; + con->x += rects[i].w; + if (con->y + rects[i].h > con->bottom_y) + con->bottom_y = con->y + rects[i].h; + } + for ( ; i < num_rects; ++i) + rects[i].was_packed = 0; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// bitmap baking +// +// This is SUPER-AWESOME (tm Ryan Gordon) packing using stb_rect_pack.h. If +// stb_rect_pack.h isn't available, it uses the BakeFontBitmap strategy. + +STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int pw, int ph, int stride_in_bytes, int padding, void *alloc_context) +{ + stbrp_context *context = (stbrp_context *) STBTT_malloc(sizeof(*context) ,alloc_context); + int num_nodes = pw - padding; + stbrp_node *nodes = (stbrp_node *) STBTT_malloc(sizeof(*nodes ) * num_nodes,alloc_context); + + if (context == NULL || nodes == NULL) { + if (context != NULL) STBTT_free(context, alloc_context); + if (nodes != NULL) STBTT_free(nodes , alloc_context); + return 0; + } + + spc->user_allocator_context = alloc_context; + spc->width = pw; + spc->height = ph; + spc->pixels = pixels; + spc->pack_info = context; + spc->nodes = nodes; + spc->padding = padding; + spc->stride_in_bytes = stride_in_bytes != 0 ? stride_in_bytes : pw; + spc->h_oversample = 1; + spc->v_oversample = 1; + spc->skip_missing = 0; + + stbrp_init_target(context, pw-padding, ph-padding, nodes, num_nodes); + + if (pixels) + STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels + + return 1; +} + +STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc) +{ + STBTT_free(spc->nodes , spc->user_allocator_context); + STBTT_free(spc->pack_info, spc->user_allocator_context); +} + +STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample) +{ + STBTT_assert(h_oversample <= STBTT_MAX_OVERSAMPLE); + STBTT_assert(v_oversample <= STBTT_MAX_OVERSAMPLE); + if (h_oversample <= STBTT_MAX_OVERSAMPLE) + spc->h_oversample = h_oversample; + if (v_oversample <= STBTT_MAX_OVERSAMPLE) + spc->v_oversample = v_oversample; +} + +STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip) +{ + spc->skip_missing = skip; +} + +#define STBTT__OVER_MASK (STBTT_MAX_OVERSAMPLE-1) + +static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) +{ + unsigned char buffer[STBTT_MAX_OVERSAMPLE]; + int safe_w = w - kernel_width; + int j; + STBTT_memset(buffer, 0, STBTT_MAX_OVERSAMPLE); // suppress bogus warning from VS2013 -analyze + for (j=0; j < h; ++j) { + int i; + unsigned int total; + STBTT_memset(buffer, 0, kernel_width); + + total = 0; + + // make kernel_width a constant in common cases so compiler can optimize out the divide + switch (kernel_width) { + case 2: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 2); + } + break; + case 3: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 3); + } + break; + case 4: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 4); + } + break; + case 5: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 5); + } + break; + default: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / kernel_width); + } + break; + } + + for (; i < w; ++i) { + STBTT_assert(pixels[i] == 0); + total -= buffer[i & STBTT__OVER_MASK]; + pixels[i] = (unsigned char) (total / kernel_width); + } + + pixels += stride_in_bytes; + } +} + +static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) +{ + unsigned char buffer[STBTT_MAX_OVERSAMPLE]; + int safe_h = h - kernel_width; + int j; + STBTT_memset(buffer, 0, STBTT_MAX_OVERSAMPLE); // suppress bogus warning from VS2013 -analyze + for (j=0; j < w; ++j) { + int i; + unsigned int total; + STBTT_memset(buffer, 0, kernel_width); + + total = 0; + + // make kernel_width a constant in common cases so compiler can optimize out the divide + switch (kernel_width) { + case 2: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 2); + } + break; + case 3: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 3); + } + break; + case 4: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 4); + } + break; + case 5: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 5); + } + break; + default: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); + } + break; + } + + for (; i < h; ++i) { + STBTT_assert(pixels[i*stride_in_bytes] == 0); + total -= buffer[i & STBTT__OVER_MASK]; + pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); + } + + pixels += 1; + } +} + +static float stbtt__oversample_shift(int oversample) +{ + if (!oversample) + return 0.0f; + + // The prefilter is a box filter of width "oversample", + // which shifts phase by (oversample - 1)/2 pixels in + // oversampled space. We want to shift in the opposite + // direction to counter this. + return (float)-(oversample - 1) / (2.0f * (float)oversample); +} + +// rects array must be big enough to accommodate all characters in the given ranges +STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) +{ + int i,j,k; + int missing_glyph_added = 0; + + k=0; + for (i=0; i < num_ranges; ++i) { + float fh = ranges[i].font_size; + float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); + ranges[i].h_oversample = (unsigned char) spc->h_oversample; + ranges[i].v_oversample = (unsigned char) spc->v_oversample; + for (j=0; j < ranges[i].num_chars; ++j) { + int x0,y0,x1,y1; + int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; + int glyph = stbtt_FindGlyphIndex(info, codepoint); + if (glyph == 0 && (spc->skip_missing || missing_glyph_added)) { + rects[k].w = rects[k].h = 0; + } else { + stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, + scale * spc->h_oversample, + scale * spc->v_oversample, + 0,0, + &x0,&y0,&x1,&y1); + rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); + rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); + if (glyph == 0) + missing_glyph_added = 1; + } + ++k; + } + } + + return k; +} + +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int prefilter_x, int prefilter_y, float *sub_x, float *sub_y, int glyph) +{ + stbtt_MakeGlyphBitmapSubpixel(info, + output, + out_w - (prefilter_x - 1), + out_h - (prefilter_y - 1), + out_stride, + scale_x, + scale_y, + shift_x, + shift_y, + glyph); + + if (prefilter_x > 1) + stbtt__h_prefilter(output, out_w, out_h, out_stride, prefilter_x); + + if (prefilter_y > 1) + stbtt__v_prefilter(output, out_w, out_h, out_stride, prefilter_y); + + *sub_x = stbtt__oversample_shift(prefilter_x); + *sub_y = stbtt__oversample_shift(prefilter_y); +} + +// rects array must be big enough to accommodate all characters in the given ranges +STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) +{ + int i,j,k, missing_glyph = -1, return_value = 1; + + // save current values + int old_h_over = spc->h_oversample; + int old_v_over = spc->v_oversample; + + k = 0; + for (i=0; i < num_ranges; ++i) { + float fh = ranges[i].font_size; + float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); + float recip_h,recip_v,sub_x,sub_y; + spc->h_oversample = ranges[i].h_oversample; + spc->v_oversample = ranges[i].v_oversample; + recip_h = 1.0f / spc->h_oversample; + recip_v = 1.0f / spc->v_oversample; + sub_x = stbtt__oversample_shift(spc->h_oversample); + sub_y = stbtt__oversample_shift(spc->v_oversample); + for (j=0; j < ranges[i].num_chars; ++j) { + stbrp_rect *r = &rects[k]; + if (r->was_packed && r->w != 0 && r->h != 0) { + stbtt_packedchar *bc = &ranges[i].chardata_for_range[j]; + int advance, lsb, x0,y0,x1,y1; + int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; + int glyph = stbtt_FindGlyphIndex(info, codepoint); + stbrp_coord pad = (stbrp_coord) spc->padding; + + // pad on left and top + r->x += pad; + r->y += pad; + r->w -= pad; + r->h -= pad; + stbtt_GetGlyphHMetrics(info, glyph, &advance, &lsb); + stbtt_GetGlyphBitmapBox(info, glyph, + scale * spc->h_oversample, + scale * spc->v_oversample, + &x0,&y0,&x1,&y1); + stbtt_MakeGlyphBitmapSubpixel(info, + spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w - spc->h_oversample+1, + r->h - spc->v_oversample+1, + spc->stride_in_bytes, + scale * spc->h_oversample, + scale * spc->v_oversample, + 0,0, + glyph); + + if (spc->h_oversample > 1) + stbtt__h_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w, r->h, spc->stride_in_bytes, + spc->h_oversample); + + if (spc->v_oversample > 1) + stbtt__v_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w, r->h, spc->stride_in_bytes, + spc->v_oversample); + + bc->x0 = (stbtt_int16) r->x; + bc->y0 = (stbtt_int16) r->y; + bc->x1 = (stbtt_int16) (r->x + r->w); + bc->y1 = (stbtt_int16) (r->y + r->h); + bc->xadvance = scale * advance; + bc->xoff = (float) x0 * recip_h + sub_x; + bc->yoff = (float) y0 * recip_v + sub_y; + bc->xoff2 = (x0 + r->w) * recip_h + sub_x; + bc->yoff2 = (y0 + r->h) * recip_v + sub_y; + + if (glyph == 0) + missing_glyph = j; + } else if (spc->skip_missing) { + return_value = 0; + } else if (r->was_packed && r->w == 0 && r->h == 0 && missing_glyph >= 0) { + ranges[i].chardata_for_range[j] = ranges[i].chardata_for_range[missing_glyph]; + } else { + return_value = 0; // if any fail, report failure + } + + ++k; + } + } + + // restore original values + spc->h_oversample = old_h_over; + spc->v_oversample = old_v_over; + + return return_value; +} + +STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects) +{ + stbrp_pack_rects((stbrp_context *) spc->pack_info, rects, num_rects); +} + +STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges) +{ + stbtt_fontinfo info; + int i,j,n, return_value = 1; + //stbrp_context *context = (stbrp_context *) spc->pack_info; + stbrp_rect *rects; + + // flag all characters as NOT packed + for (i=0; i < num_ranges; ++i) + for (j=0; j < ranges[i].num_chars; ++j) + ranges[i].chardata_for_range[j].x0 = + ranges[i].chardata_for_range[j].y0 = + ranges[i].chardata_for_range[j].x1 = + ranges[i].chardata_for_range[j].y1 = 0; + + n = 0; + for (i=0; i < num_ranges; ++i) + n += ranges[i].num_chars; + + rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context); + if (rects == NULL) + return 0; + + info.userdata = spc->user_allocator_context; + stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata,font_index)); + + n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects); + + stbtt_PackFontRangesPackRects(spc, rects, n); + + return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects); + + STBTT_free(rects, spc->user_allocator_context); + return return_value; +} + +STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, float font_size, + int first_unicode_codepoint_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range) +{ + stbtt_pack_range range; + range.first_unicode_codepoint_in_range = first_unicode_codepoint_in_range; + range.array_of_unicode_codepoints = NULL; + range.num_chars = num_chars_in_range; + range.chardata_for_range = chardata_for_range; + range.font_size = font_size; + return stbtt_PackFontRanges(spc, fontdata, font_index, &range, 1); +} + +STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata, int index, float size, float *ascent, float *descent, float *lineGap) +{ + int i_ascent, i_descent, i_lineGap; + float scale; + stbtt_fontinfo info; + stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata, index)); + scale = size > 0 ? stbtt_ScaleForPixelHeight(&info, size) : stbtt_ScaleForMappingEmToPixels(&info, -size); + stbtt_GetFontVMetrics(&info, &i_ascent, &i_descent, &i_lineGap); + *ascent = (float) i_ascent * scale; + *descent = (float) i_descent * scale; + *lineGap = (float) i_lineGap * scale; +} + +STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer) +{ + float ipw = 1.0f / pw, iph = 1.0f / ph; + const stbtt_packedchar *b = chardata + char_index; + + if (align_to_integer) { + float x = (float) STBTT_ifloor((*xpos + b->xoff) + 0.5f); + float y = (float) STBTT_ifloor((*ypos + b->yoff) + 0.5f); + q->x0 = x; + q->y0 = y; + q->x1 = x + b->xoff2 - b->xoff; + q->y1 = y + b->yoff2 - b->yoff; + } else { + q->x0 = *xpos + b->xoff; + q->y0 = *ypos + b->yoff; + q->x1 = *xpos + b->xoff2; + q->y1 = *ypos + b->yoff2; + } + + q->s0 = b->x0 * ipw; + q->t0 = b->y0 * iph; + q->s1 = b->x1 * ipw; + q->t1 = b->y1 * iph; + + *xpos += b->xadvance; +} + +////////////////////////////////////////////////////////////////////////////// +// +// sdf computation +// + +#define STBTT_min(a,b) ((a) < (b) ? (a) : (b)) +#define STBTT_max(a,b) ((a) < (b) ? (b) : (a)) + +static int stbtt__ray_intersect_bezier(float orig[2], float ray[2], float q0[2], float q1[2], float q2[2], float hits[2][2]) +{ + float q0perp = q0[1]*ray[0] - q0[0]*ray[1]; + float q1perp = q1[1]*ray[0] - q1[0]*ray[1]; + float q2perp = q2[1]*ray[0] - q2[0]*ray[1]; + float roperp = orig[1]*ray[0] - orig[0]*ray[1]; + + float a = q0perp - 2*q1perp + q2perp; + float b = q1perp - q0perp; + float c = q0perp - roperp; + + float s0 = 0., s1 = 0.; + int num_s = 0; + + if (a != 0.0) { + float discr = b*b - a*c; + if (discr > 0.0) { + float rcpna = -1 / a; + float d = (float) STBTT_sqrt(discr); + s0 = (b+d) * rcpna; + s1 = (b-d) * rcpna; + if (s0 >= 0.0 && s0 <= 1.0) + num_s = 1; + if (d > 0.0 && s1 >= 0.0 && s1 <= 1.0) { + if (num_s == 0) s0 = s1; + ++num_s; + } + } + } else { + // 2*b*s + c = 0 + // s = -c / (2*b) + s0 = c / (-2 * b); + if (s0 >= 0.0 && s0 <= 1.0) + num_s = 1; + } + + if (num_s == 0) + return 0; + else { + float rcp_len2 = 1 / (ray[0]*ray[0] + ray[1]*ray[1]); + float rayn_x = ray[0] * rcp_len2, rayn_y = ray[1] * rcp_len2; + + float q0d = q0[0]*rayn_x + q0[1]*rayn_y; + float q1d = q1[0]*rayn_x + q1[1]*rayn_y; + float q2d = q2[0]*rayn_x + q2[1]*rayn_y; + float rod = orig[0]*rayn_x + orig[1]*rayn_y; + + float q10d = q1d - q0d; + float q20d = q2d - q0d; + float q0rd = q0d - rod; + + hits[0][0] = q0rd + s0*(2.0f - 2.0f*s0)*q10d + s0*s0*q20d; + hits[0][1] = a*s0+b; + + if (num_s > 1) { + hits[1][0] = q0rd + s1*(2.0f - 2.0f*s1)*q10d + s1*s1*q20d; + hits[1][1] = a*s1+b; + return 2; + } else { + return 1; + } + } +} + +static int equal(float *a, float *b) +{ + return (a[0] == b[0] && a[1] == b[1]); +} + +static int stbtt__compute_crossings_x(float x, float y, int nverts, stbtt_vertex *verts) +{ + int i; + float orig[2], ray[2] = { 1, 0 }; + float y_frac; + int winding = 0; + + // make sure y never passes through a vertex of the shape + y_frac = (float) STBTT_fmod(y, 1.0f); + if (y_frac < 0.01f) + y += 0.01f; + else if (y_frac > 0.99f) + y -= 0.01f; + + orig[0] = x; + orig[1] = y; + + // test a ray from (-infinity,y) to (x,y) + for (i=0; i < nverts; ++i) { + if (verts[i].type == STBTT_vline) { + int x0 = (int) verts[i-1].x, y0 = (int) verts[i-1].y; + int x1 = (int) verts[i ].x, y1 = (int) verts[i ].y; + if (y > STBTT_min(y0,y1) && y < STBTT_max(y0,y1) && x > STBTT_min(x0,x1)) { + float x_inter = (y - y0) / (y1 - y0) * (x1-x0) + x0; + if (x_inter < x) + winding += (y0 < y1) ? 1 : -1; + } + } + if (verts[i].type == STBTT_vcurve) { + int x0 = (int) verts[i-1].x , y0 = (int) verts[i-1].y ; + int x1 = (int) verts[i ].cx, y1 = (int) verts[i ].cy; + int x2 = (int) verts[i ].x , y2 = (int) verts[i ].y ; + int ax = STBTT_min(x0,STBTT_min(x1,x2)), ay = STBTT_min(y0,STBTT_min(y1,y2)); + int by = STBTT_max(y0,STBTT_max(y1,y2)); + if (y > ay && y < by && x > ax) { + float q0[2],q1[2],q2[2]; + float hits[2][2]; + q0[0] = (float)x0; + q0[1] = (float)y0; + q1[0] = (float)x1; + q1[1] = (float)y1; + q2[0] = (float)x2; + q2[1] = (float)y2; + if (equal(q0,q1) || equal(q1,q2)) { + x0 = (int)verts[i-1].x; + y0 = (int)verts[i-1].y; + x1 = (int)verts[i ].x; + y1 = (int)verts[i ].y; + if (y > STBTT_min(y0,y1) && y < STBTT_max(y0,y1) && x > STBTT_min(x0,x1)) { + float x_inter = (y - y0) / (y1 - y0) * (x1-x0) + x0; + if (x_inter < x) + winding += (y0 < y1) ? 1 : -1; + } + } else { + int num_hits = stbtt__ray_intersect_bezier(orig, ray, q0, q1, q2, hits); + if (num_hits >= 1) + if (hits[0][0] < 0) + winding += (hits[0][1] < 0 ? -1 : 1); + if (num_hits >= 2) + if (hits[1][0] < 0) + winding += (hits[1][1] < 0 ? -1 : 1); + } + } + } + } + return winding; +} + +static float stbtt__cuberoot( float x ) +{ + if (x<0) + return -(float) STBTT_pow(-x,1.0f/3.0f); + else + return (float) STBTT_pow( x,1.0f/3.0f); +} + +// x^3 + a*x^2 + b*x + c = 0 +static int stbtt__solve_cubic(float a, float b, float c, float* r) +{ + float s = -a / 3; + float p = b - a*a / 3; + float q = a * (2*a*a - 9*b) / 27 + c; + float p3 = p*p*p; + float d = q*q + 4*p3 / 27; + if (d >= 0) { + float z = (float) STBTT_sqrt(d); + float u = (-q + z) / 2; + float v = (-q - z) / 2; + u = stbtt__cuberoot(u); + v = stbtt__cuberoot(v); + r[0] = s + u + v; + return 1; + } else { + float u = (float) STBTT_sqrt(-p/3); + float v = (float) STBTT_acos(-STBTT_sqrt(-27/p3) * q / 2) / 3; // p3 must be negative, since d is negative + float m = (float) STBTT_cos(v); + float n = (float) STBTT_cos(v-3.141592/2)*1.732050808f; + r[0] = s + u * 2 * m; + r[1] = s - u * (m + n); + r[2] = s - u * (m - n); + + //STBTT_assert( STBTT_fabs(((r[0]+a)*r[0]+b)*r[0]+c) < 0.05f); // these asserts may not be safe at all scales, though they're in bezier t parameter units so maybe? + //STBTT_assert( STBTT_fabs(((r[1]+a)*r[1]+b)*r[1]+c) < 0.05f); + //STBTT_assert( STBTT_fabs(((r[2]+a)*r[2]+b)*r[2]+c) < 0.05f); + return 3; + } +} + +STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float scale, int glyph, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff) +{ + float scale_x = scale, scale_y = scale; + int ix0,iy0,ix1,iy1; + int w,h; + unsigned char *data; + + if (scale == 0) return NULL; + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale, scale, 0.0f,0.0f, &ix0,&iy0,&ix1,&iy1); + + // if empty, return NULL + if (ix0 == ix1 || iy0 == iy1) + return NULL; + + ix0 -= padding; + iy0 -= padding; + ix1 += padding; + iy1 += padding; + + w = (ix1 - ix0); + h = (iy1 - iy0); + + if (width ) *width = w; + if (height) *height = h; + if (xoff ) *xoff = ix0; + if (yoff ) *yoff = iy0; + + // invert for y-downwards bitmaps + scale_y = -scale_y; + + { + int x,y,i,j; + float *precompute; + stbtt_vertex *verts; + int num_verts = stbtt_GetGlyphShape(info, glyph, &verts); + data = (unsigned char *) STBTT_malloc(w * h, info->userdata); + precompute = (float *) STBTT_malloc(num_verts * sizeof(float), info->userdata); + + for (i=0,j=num_verts-1; i < num_verts; j=i++) { + if (verts[i].type == STBTT_vline) { + float x0 = verts[i].x*scale_x, y0 = verts[i].y*scale_y; + float x1 = verts[j].x*scale_x, y1 = verts[j].y*scale_y; + float dist = (float) STBTT_sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0)); + precompute[i] = (dist == 0) ? 0.0f : 1.0f / dist; + } else if (verts[i].type == STBTT_vcurve) { + float x2 = verts[j].x *scale_x, y2 = verts[j].y *scale_y; + float x1 = verts[i].cx*scale_x, y1 = verts[i].cy*scale_y; + float x0 = verts[i].x *scale_x, y0 = verts[i].y *scale_y; + float bx = x0 - 2*x1 + x2, by = y0 - 2*y1 + y2; + float len2 = bx*bx + by*by; + if (len2 != 0.0f) + precompute[i] = 1.0f / (bx*bx + by*by); + else + precompute[i] = 0.0f; + } else + precompute[i] = 0.0f; + } + + for (y=iy0; y < iy1; ++y) { + for (x=ix0; x < ix1; ++x) { + float val; + float min_dist = 999999.0f; + float sx = (float) x + 0.5f; + float sy = (float) y + 0.5f; + float x_gspace = (sx / scale_x); + float y_gspace = (sy / scale_y); + + int winding = stbtt__compute_crossings_x(x_gspace, y_gspace, num_verts, verts); // @OPTIMIZE: this could just be a rasterization, but needs to be line vs. non-tesselated curves so a new path + + for (i=0; i < num_verts; ++i) { + float x0 = verts[i].x*scale_x, y0 = verts[i].y*scale_y; + + if (verts[i].type == STBTT_vline && precompute[i] != 0.0f) { + float x1 = verts[i-1].x*scale_x, y1 = verts[i-1].y*scale_y; + + float dist,dist2 = (x0-sx)*(x0-sx) + (y0-sy)*(y0-sy); + if (dist2 < min_dist*min_dist) + min_dist = (float) STBTT_sqrt(dist2); + + // coarse culling against bbox + //if (sx > STBTT_min(x0,x1)-min_dist && sx < STBTT_max(x0,x1)+min_dist && + // sy > STBTT_min(y0,y1)-min_dist && sy < STBTT_max(y0,y1)+min_dist) + dist = (float) STBTT_fabs((x1-x0)*(y0-sy) - (y1-y0)*(x0-sx)) * precompute[i]; + STBTT_assert(i != 0); + if (dist < min_dist) { + // check position along line + // x' = x0 + t*(x1-x0), y' = y0 + t*(y1-y0) + // minimize (x'-sx)*(x'-sx)+(y'-sy)*(y'-sy) + float dx = x1-x0, dy = y1-y0; + float px = x0-sx, py = y0-sy; + // minimize (px+t*dx)^2 + (py+t*dy)^2 = px*px + 2*px*dx*t + t^2*dx*dx + py*py + 2*py*dy*t + t^2*dy*dy + // derivative: 2*px*dx + 2*py*dy + (2*dx*dx+2*dy*dy)*t, set to 0 and solve + float t = -(px*dx + py*dy) / (dx*dx + dy*dy); + if (t >= 0.0f && t <= 1.0f) + min_dist = dist; + } + } else if (verts[i].type == STBTT_vcurve) { + float x2 = verts[i-1].x *scale_x, y2 = verts[i-1].y *scale_y; + float x1 = verts[i ].cx*scale_x, y1 = verts[i ].cy*scale_y; + float box_x0 = STBTT_min(STBTT_min(x0,x1),x2); + float box_y0 = STBTT_min(STBTT_min(y0,y1),y2); + float box_x1 = STBTT_max(STBTT_max(x0,x1),x2); + float box_y1 = STBTT_max(STBTT_max(y0,y1),y2); + // coarse culling against bbox to avoid computing cubic unnecessarily + if (sx > box_x0-min_dist && sx < box_x1+min_dist && sy > box_y0-min_dist && sy < box_y1+min_dist) { + int num=0; + float ax = x1-x0, ay = y1-y0; + float bx = x0 - 2*x1 + x2, by = y0 - 2*y1 + y2; + float mx = x0 - sx, my = y0 - sy; + float res[3] = {0.f,0.f,0.f}; + float px,py,t,it,dist2; + float a_inv = precompute[i]; + if (a_inv == 0.0) { // if a_inv is 0, it's 2nd degree so use quadratic formula + float a = 3*(ax*bx + ay*by); + float b = 2*(ax*ax + ay*ay) + (mx*bx+my*by); + float c = mx*ax+my*ay; + if (a == 0.0) { // if a is 0, it's linear + if (b != 0.0) { + res[num++] = -c/b; + } + } else { + float discriminant = b*b - 4*a*c; + if (discriminant < 0) + num = 0; + else { + float root = (float) STBTT_sqrt(discriminant); + res[0] = (-b - root)/(2*a); + res[1] = (-b + root)/(2*a); + num = 2; // don't bother distinguishing 1-solution case, as code below will still work + } + } + } else { + float b = 3*(ax*bx + ay*by) * a_inv; // could precompute this as it doesn't depend on sample point + float c = (2*(ax*ax + ay*ay) + (mx*bx+my*by)) * a_inv; + float d = (mx*ax+my*ay) * a_inv; + num = stbtt__solve_cubic(b, c, d, res); + } + dist2 = (x0-sx)*(x0-sx) + (y0-sy)*(y0-sy); + if (dist2 < min_dist*min_dist) + min_dist = (float) STBTT_sqrt(dist2); + + if (num >= 1 && res[0] >= 0.0f && res[0] <= 1.0f) { + t = res[0], it = 1.0f - t; + px = it*it*x0 + 2*t*it*x1 + t*t*x2; + py = it*it*y0 + 2*t*it*y1 + t*t*y2; + dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy); + if (dist2 < min_dist * min_dist) + min_dist = (float) STBTT_sqrt(dist2); + } + if (num >= 2 && res[1] >= 0.0f && res[1] <= 1.0f) { + t = res[1], it = 1.0f - t; + px = it*it*x0 + 2*t*it*x1 + t*t*x2; + py = it*it*y0 + 2*t*it*y1 + t*t*y2; + dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy); + if (dist2 < min_dist * min_dist) + min_dist = (float) STBTT_sqrt(dist2); + } + if (num >= 3 && res[2] >= 0.0f && res[2] <= 1.0f) { + t = res[2], it = 1.0f - t; + px = it*it*x0 + 2*t*it*x1 + t*t*x2; + py = it*it*y0 + 2*t*it*y1 + t*t*y2; + dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy); + if (dist2 < min_dist * min_dist) + min_dist = (float) STBTT_sqrt(dist2); + } + } + } + } + if (winding == 0) + min_dist = -min_dist; // if outside the shape, value is negative + val = onedge_value + pixel_dist_scale * min_dist; + if (val < 0) + val = 0; + else if (val > 255) + val = 255; + data[(y-iy0)*w+(x-ix0)] = (unsigned char) val; + } + } + STBTT_free(precompute, info->userdata); + STBTT_free(verts, info->userdata); + } + return data; +} + +STBTT_DEF unsigned char * stbtt_GetCodepointSDF(const stbtt_fontinfo *info, float scale, int codepoint, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphSDF(info, scale, stbtt_FindGlyphIndex(info, codepoint), padding, onedge_value, pixel_dist_scale, width, height, xoff, yoff); +} + +STBTT_DEF void stbtt_FreeSDF(unsigned char *bitmap, void *userdata) +{ + STBTT_free(bitmap, userdata); +} + +////////////////////////////////////////////////////////////////////////////// +// +// font name matching -- recommended not to use this +// + +// check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string +static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(stbtt_uint8 *s1, stbtt_int32 len1, stbtt_uint8 *s2, stbtt_int32 len2) +{ + stbtt_int32 i=0; + + // convert utf16 to utf8 and compare the results while converting + while (len2) { + stbtt_uint16 ch = s2[0]*256 + s2[1]; + if (ch < 0x80) { + if (i >= len1) return -1; + if (s1[i++] != ch) return -1; + } else if (ch < 0x800) { + if (i+1 >= len1) return -1; + if (s1[i++] != 0xc0 + (ch >> 6)) return -1; + if (s1[i++] != 0x80 + (ch & 0x3f)) return -1; + } else if (ch >= 0xd800 && ch < 0xdc00) { + stbtt_uint32 c; + stbtt_uint16 ch2 = s2[2]*256 + s2[3]; + if (i+3 >= len1) return -1; + c = ((ch - 0xd800) << 10) + (ch2 - 0xdc00) + 0x10000; + if (s1[i++] != 0xf0 + (c >> 18)) return -1; + if (s1[i++] != 0x80 + ((c >> 12) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((c >> 6) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((c ) & 0x3f)) return -1; + s2 += 2; // plus another 2 below + len2 -= 2; + } else if (ch >= 0xdc00 && ch < 0xe000) { + return -1; + } else { + if (i+2 >= len1) return -1; + if (s1[i++] != 0xe0 + (ch >> 12)) return -1; + if (s1[i++] != 0x80 + ((ch >> 6) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((ch ) & 0x3f)) return -1; + } + s2 += 2; + len2 -= 2; + } + return i; +} + +static int stbtt_CompareUTF8toUTF16_bigendian_internal(char *s1, int len1, char *s2, int len2) +{ + return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((stbtt_uint8*) s1, len1, (stbtt_uint8*) s2, len2); +} + +// returns results in whatever encoding you request... but note that 2-byte encodings +// will be BIG-ENDIAN... use stbtt_CompareUTF8toUTF16_bigendian() to compare +STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID) +{ + stbtt_int32 i,count,stringOffset; + stbtt_uint8 *fc = font->data; + stbtt_uint32 offset = font->fontstart; + stbtt_uint32 nm = stbtt__find_table(fc, offset, "name"); + if (!nm) return NULL; + + count = ttUSHORT(fc+nm+2); + stringOffset = nm + ttUSHORT(fc+nm+4); + for (i=0; i < count; ++i) { + stbtt_uint32 loc = nm + 6 + 12 * i; + if (platformID == ttUSHORT(fc+loc+0) && encodingID == ttUSHORT(fc+loc+2) + && languageID == ttUSHORT(fc+loc+4) && nameID == ttUSHORT(fc+loc+6)) { + *length = ttUSHORT(fc+loc+8); + return (const char *) (fc+stringOffset+ttUSHORT(fc+loc+10)); + } + } + return NULL; +} + +static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint8 *name, stbtt_int32 nlen, stbtt_int32 target_id, stbtt_int32 next_id) +{ + stbtt_int32 i; + stbtt_int32 count = ttUSHORT(fc+nm+2); + stbtt_int32 stringOffset = nm + ttUSHORT(fc+nm+4); + + for (i=0; i < count; ++i) { + stbtt_uint32 loc = nm + 6 + 12 * i; + stbtt_int32 id = ttUSHORT(fc+loc+6); + if (id == target_id) { + // find the encoding + stbtt_int32 platform = ttUSHORT(fc+loc+0), encoding = ttUSHORT(fc+loc+2), language = ttUSHORT(fc+loc+4); + + // is this a Unicode encoding? + if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) { + stbtt_int32 slen = ttUSHORT(fc+loc+8); + stbtt_int32 off = ttUSHORT(fc+loc+10); + + // check if there's a prefix match + stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen); + if (matchlen >= 0) { + // check for target_id+1 immediately following, with same encoding & language + if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) { + slen = ttUSHORT(fc+loc+12+8); + off = ttUSHORT(fc+loc+12+10); + if (slen == 0) { + if (matchlen == nlen) + return 1; + } else if (matchlen < nlen && name[matchlen] == ' ') { + ++matchlen; + if (stbtt_CompareUTF8toUTF16_bigendian_internal((char*) (name+matchlen), nlen-matchlen, (char*)(fc+stringOffset+off),slen)) + return 1; + } + } else { + // if nothing immediately following + if (matchlen == nlen) + return 1; + } + } + } + + // @TODO handle other encodings + } + } + return 0; +} + +static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_uint8 *name, stbtt_int32 flags) +{ + stbtt_int32 nlen = (stbtt_int32) STBTT_strlen((char *) name); + stbtt_uint32 nm,hd; + if (!stbtt__isfont(fc+offset)) return 0; + + // check italics/bold/underline flags in macStyle... + if (flags) { + hd = stbtt__find_table(fc, offset, "head"); + if ((ttUSHORT(fc+hd+44) & 7) != (flags & 7)) return 0; + } + + nm = stbtt__find_table(fc, offset, "name"); + if (!nm) return 0; + + if (flags) { + // if we checked the macStyle flags, then just check the family and ignore the subfamily + if (stbtt__matchpair(fc, nm, name, nlen, 16, -1)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 1, -1)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; + } else { + if (stbtt__matchpair(fc, nm, name, nlen, 16, 17)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 1, 2)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; + } + + return 0; +} + +static int stbtt_FindMatchingFont_internal(unsigned char *font_collection, char *name_utf8, stbtt_int32 flags) +{ + stbtt_int32 i; + for (i=0;;++i) { + stbtt_int32 off = stbtt_GetFontOffsetForIndex(font_collection, i); + if (off < 0) return off; + if (stbtt__matches((stbtt_uint8 *) font_collection, off, (stbtt_uint8*) name_utf8, flags)) + return off; + } +} + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif + +STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, + float pixel_height, unsigned char *pixels, int pw, int ph, + int first_char, int num_chars, stbtt_bakedchar *chardata) +{ + return stbtt_BakeFontBitmap_internal((unsigned char *) data, offset, pixel_height, pixels, pw, ph, first_char, num_chars, chardata); +} + +STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index) +{ + return stbtt_GetFontOffsetForIndex_internal((unsigned char *) data, index); +} + +STBTT_DEF int stbtt_GetNumberOfFonts(const unsigned char *data) +{ + return stbtt_GetNumberOfFonts_internal((unsigned char *) data); +} + +STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset) +{ + return stbtt_InitFont_internal(info, (unsigned char *) data, offset); +} + +STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags) +{ + return stbtt_FindMatchingFont_internal((unsigned char *) fontdata, (char *) name, flags); +} + +STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) +{ + return stbtt_CompareUTF8toUTF16_bigendian_internal((char *) s1, len1, (char *) s2, len2); +} + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic pop +#endif + +#endif // STB_TRUETYPE_IMPLEMENTATION + + +// FULL VERSION HISTORY +// +// 1.25 (2021-07-11) many fixes +// 1.24 (2020-02-05) fix warning +// 1.23 (2020-02-02) query SVG data for glyphs; query whole kerning table (but only kern not GPOS) +// 1.22 (2019-08-11) minimize missing-glyph duplication; fix kerning if both 'GPOS' and 'kern' are defined +// 1.21 (2019-02-25) fix warning +// 1.20 (2019-02-07) PackFontRange skips missing codepoints; GetScaleFontVMetrics() +// 1.19 (2018-02-11) OpenType GPOS kerning (horizontal only), STBTT_fmod +// 1.18 (2018-01-29) add missing function +// 1.17 (2017-07-23) make more arguments const; doc fix +// 1.16 (2017-07-12) SDF support +// 1.15 (2017-03-03) make more arguments const +// 1.14 (2017-01-16) num-fonts-in-TTC function +// 1.13 (2017-01-02) support OpenType fonts, certain Apple fonts +// 1.12 (2016-10-25) suppress warnings about casting away const with -Wcast-qual +// 1.11 (2016-04-02) fix unused-variable warning +// 1.10 (2016-04-02) allow user-defined fabs() replacement +// fix memory leak if fontsize=0.0 +// fix warning from duplicate typedef +// 1.09 (2016-01-16) warning fix; avoid crash on outofmem; use alloc userdata for PackFontRanges +// 1.08 (2015-09-13) document stbtt_Rasterize(); fixes for vertical & horizontal edges +// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; +// allow PackFontRanges to pack and render in separate phases; +// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); +// fixed an assert() bug in the new rasterizer +// replace assert() with STBTT_assert() in new rasterizer +// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) +// also more precise AA rasterizer, except if shapes overlap +// remove need for STBTT_sort +// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC +// 1.04 (2015-04-15) typo in example +// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes +// 1.02 (2014-12-10) fix various warnings & compile issues w/ stb_rect_pack, C++ +// 1.01 (2014-12-08) fix subpixel position when oversampling to exactly match +// non-oversampled; STBTT_POINT_SIZE for packed case only +// 1.00 (2014-12-06) add new PackBegin etc. API, w/ support for oversampling +// 0.99 (2014-09-18) fix multiple bugs with subpixel rendering (ryg) +// 0.9 (2014-08-07) support certain mac/iOS fonts without an MS platformID +// 0.8b (2014-07-07) fix a warning +// 0.8 (2014-05-25) fix a few more warnings +// 0.7 (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back +// 0.6c (2012-07-24) improve documentation +// 0.6b (2012-07-20) fix a few more warnings +// 0.6 (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels, +// stbtt_GetFontBoundingBox, stbtt_IsGlyphEmpty +// 0.5 (2011-12-09) bugfixes: +// subpixel glyph renderer computed wrong bounding box +// first vertex of shape can be off-curve (FreeSans) +// 0.4b (2011-12-03) fixed an error in the font baking example +// 0.4 (2011-12-01) kerning, subpixel rendering (tor) +// bugfixes for: +// codepoint-to-glyph conversion using table fmt=12 +// codepoint-to-glyph conversion using table fmt=4 +// stbtt_GetBakedQuad with non-square texture (Zer) +// updated Hello World! sample to use kerning and subpixel +// fixed some warnings +// 0.3 (2009-06-24) cmap fmt=12, compound shapes (MM) +// userdata, malloc-from-userdata, non-zero fill (stb) +// 0.2 (2009-03-11) Fix unsigned/signed char warnings +// 0.1 (2009-03-09) First public release +// + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +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. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +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 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. +------------------------------------------------------------------------------ +*/ \ No newline at end of file diff --git a/lib/stb_truetype.onyx b/lib/stb_truetype.onyx new file mode 100644 index 0000000..a2be6c4 --- /dev/null +++ b/lib/stb_truetype.onyx @@ -0,0 +1,28 @@ +package stb_truetype + +#library "stb_truetype" + +stbtt_pack_context :: struct #size 64 {} + +stbtt_packedchar :: struct #size 28 { + x0, y0, x1, y1: u16; + xoff, yoff, xadvance: f32; + xoff2, yoff2: f32; +} + +stbtt_aligned_quad :: struct #size 32 { + x0, y0, s0, t0 : f32; + x1, y1, s1, t1 : f32; +} + +#foreign "stb_truetype" { + stbtt_PackBegin :: (ctx: ^stbtt_pack_context, pixels: ^u8, width, height, stride_in_bytes, padding: i32) -> i32 --- + stbtt_PackEnd :: (ctx: ^stbtt_pack_context) -> void --- + stbtt_PackFontRange :: (ctx: ^stbtt_pack_context, fontdata: ^u8, font_index: i32, font_size: f32, first_unicode_char_in_range: i32, num_chars_in_range: i32, chardata_for_range: ^stbtt_packedchar) -> i32 --- + stbtt_PackSetOversampling :: (ctx: ^stbtt_pack_context, h_oversample, v_oversample: i32) -> void --- + + stbtt_GetPackedQuad :: (chardata: ^stbtt_packedchar, pw, ph: i32, char_index: i32, xpos, ypos: ^f32, quad: ^stbtt_aligned_quad, align_to_integer: bool) -> void --- +} + +#export "stbtt_heap_alloc" calloc +#export "stbtt_heap_free" cfree diff --git a/run_tree/assets/fonts/calibri.ttf b/run_tree/assets/fonts/calibri.ttf new file mode 100644 index 0000000000000000000000000000000000000000..aac472615cce3f4a197edaf5038de9e078a173d5 GIT binary patch literal 1648120 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�O6Gcp{Ju5fXuRE}=)?L?|scMUw>Q>*fJhyi7 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

q zt<*K!LIMvoacG7hBm6FV4iOSQLe3mPG%0D3uP?N_5Q5;}F`ABFL#USPj5-_FFRDF% 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

-L;KGQgpH_`GfpUbm|T5Qz3AT2)oWkB1Z@%nov-8gqG8d9hHJo`G|Es3=DG8t!ktTy&h1aG3z1e>#3ELQQB1d;9=#J`h@1n8UPRDaE2hp1lL zF!sp_*L(BV!3D_NGRAxOd8)quhY*<*9X};`gu8Pi_fo?zdtl_oqk@rKFGdAuOr_|@|gHM`kF#p^>fq5 z-^BORJS_b@*aX)HIY5Z(K~&T{3Mz$uU&k;?bN^bZ`*3wCDq^VChc=$c9K&A`ZEQEH z4A92-OIQG(`x$&YcPVHvXjsy-qPBT_0rcrq|`n z1wMa{{CSp%qXvi6vdo7(#C2>DswqdsPhCxttMnfAT)#lRK64!JvhnLgqgWPO9N|~*lpo1!A@v|V^i*Yf4@PeMT+8F$x9dN=xLMRHRoRm8xY*v;L zJf-F3D4|9ExO}x|9gXRd!Kbt`B%ktXk_|j5-EJ$6mz-4Agb+0GRr2x=;a+y#PZ~RX zBy8fYTi@}hMwP4zl)BX70$m_5#TOxVzqzB4e@&cIxoG_~n$&!vZ{zUhI`MIf6YDR^`l|RgG@a?47gXW;hNz<7IdBi_Wm9sn z`rG2YN6&NwQK^%Rac=%#*n)sHEP%(x|EA~`GRTLvGjlKyk9{40d)e0xh9mef)jz|& z23eqDUu$=oTGF57TGj>Pfw(R^Y*&1ovk&WNG>C-fDlt2h=B#90NPR_GWmME`UC#B% z)n#%GG;Lu{8naV>Uut%R1Xdltz}MrQ`!+ zzudC#iWxq&R7=qy-pAjG{xVaT=8-84IFOP&kZYJ*nLzn#>QF8*VD$bqXMAe>o9#NC zsoQAOgg(sK=>Y&#JtIAgWC)6S8)!|3k#-ZK$G1oxgk~E^$4Po@F@g)EQ$qtwo=K4~ zI3OU@f3de+dQEBP;+odgL%q?aNfkbC*(IABSInPNT05n0mZ5)8#dRaF|jPJ7k`!9=h&(_9*kB@9ka(8)g(Nt8rG;gkudKJ0`O z7m7c|w1Gn?1Me7_)?9aPnqJVbKYx56h=kO?th^%ce<|Q?Hse{H|qHS4ph3zoMjXT8k685sy0+ zt)1j6?VUc!UsZO!c(=nRsEt~7k9djMX0dXD!%JRY>!_aFS~IK0>-0L4LA73|sp%gm-a0cYx+xh$)EKDUoi3G^l7a9frg0%3#8y2h8!j`kz6KUe7KP08V z;v1h!8|=0Snjf?G6jO-!wMa4J+DlP{X8DXOcJ*hVGeEcV4I>8odva{uS=I+32X50gf{hrS3|{hbUL`&%(- zeS-`bBRK0qZ~s;3tJKAW_iHl2j%suyLj%*HAR=n$mmQo(^ZSsHNSW5QDd|aO!a9%z z5DHTB4~PTgO$qN19&$R+kBzhkso=V5`ZsLc&|kCmtmY-t%Q0e_71U~7bKk=B;NJBu z+5YusukX($rY>phJ!ei0TJvy%-tBZunz5j2$-U=yu;o3Qm-J2V=$&8RI~a(fZrJ9w z=+!#E#}b>db#CvL#XVCdcMUYube7wrrO{BiJLI$(^l0Oon!TN@ZSMFn?lttn?qYoH zCc3!a=Q{d=`gd|cX?ihTR>O(QLgS`WuZqY#X<2hqQ~C${r=;c$R`%3KH3kEVb!l|v zt=-9?3;JTI$^8TUlT*Izv~=Up3QeAR`i%51!>vcMDU!F9!cje;~)k zm<*-{=+I-aHWR~-x2j+3CGBq|9ZQaa;~zXaOf{Scw-Rr>sQeVPls|EoKgUhSnIl2N zy}Ra~jm?RwY`kvi&fa?u#Lx(F@}|3&j}uukPFBJ)M11gXe@owY@z*wpe`f`Ul-G<@`g)-i+AX=1$=6Z0!PnvIP(&R4iovH? z4T{7lxyT)J&ygQgcJ62}@_8|!FwXkQ zAMUvI7q|4(pLPFP;tQsVDt`oB3)nWcS*f)}{8beu@r9rK^k8)MWh>C)Ad<|WoSxEW zbvQGpH5Lr_pFb;Ey7Ip5=iIwK%U(49rZZdWR^70u=aSXa&Frt8CW}Epi$PJ#{vGXA z1*8m}V$^%&zRJOla#eemtHft;p>+u6iYb-0%=B!!zg|<;KDV;&jOitbsb|2B%tG>Q zfqkC=HOJfaj02W?BoNRgbg(egBRL(x5jhjngx+vO{;`;FHW6%=kwiJmWut{oq^k*L zeaPq`G?8N8UtsjRjKP+LE%l4r8}G*+z}UL0lLG-z>%k< za}w#WYWxGW6I3vtN$;!eM;~(Z?5!QDO!K@i4eG8qkV_AB`1%QZl7n8>Cfa&1Z^%kA zoI)Ic}Rdw#VdCd-+zN*3#aTpY_ zfu8EV8(!JbcHySgsnqIC7qsno<%YiMo`IOc;D~rCs`NHTOF#Z-)!xN@+XpiI5aCiW zQ+Gy3vhBjBFC5r=_0@g8xLvK#=#}M{J$Pi}UGLp9*Ocn0tLsRa=HBz(T^o-)cv-np zuTiM&abMrnSMMFbpS2}B&Zq-cR%6or572jVAro!4Y3u71!C5_q@?+>yu9$o*hl7`- zWRi}3Bl`>)N|Sp;juw_HI|6twPva93b^>jLd2rSy$m4(I52kH97th7aZDHHl7Xw{~4 z%E$idl4mcPBd4X4I6q?Sh_pOC(DP?{E`_Xj-i% z@i$GY(II^4rL)%Dx3v==QR1V#!eDeS+;SDXsPP{mDy@UwPcgOV>l?$tINgCftd)wNzr^rx?+$%dOgciYNd%Nf^N<=Pj3)^t#{e= z3RkwAj)zn_D@wc8ObvbO+^2R<8?9M*LFfK&uH7-s#on^Z&Kat;;*pb0e`i)fa7J8>VktP=ls=nR0GUq#@4^ z@Zv*)as`Qvm@qY>44j(eUL$b_rc(GJjk#!%;avn;jq)wH&a-O-wBV(F@5hQGm{rq& z&ii#ED$<0Nto73$W%<|@<`YInM3UTn~fp0cWuoSW_&A!+!zWkg+puw`o|eXO4m^og%XQIcMA#ZlC8Ni^p6aU0=PtgXy4vfZ+x^w!^@P2aPdUEnom_%X z@Sf7JXQr7i5GuZ zm%INg@6_p2JW;PWUg$*6V!CgX6)a{n@jA}le(@Eld4bfN#Kk+g9-iBKeb0FV6&%K` zE8^wcJICobSK(Z;(zo9x*8AHyArlz;aQ-}w6CdXl2v~BE;K!6_fHUKu?#g}PGw}P^U7Tk-zl#GpVneODn={&Jy=BsjHhq-Tdpqd(R=iPcz<9}VWl>& zWFO)jf;32q9{wVAA`z(-GwGOk5~Eon`5ua@7#~qytmZ6Gq6WNcrlR@DJ=xD?FsS_E4KO^2c1ZOl2*zmhlbAKjs={1bUn^wbOo97~PG; zwbV8PHWBrSr2?wLbhn02t*ziN7W<1T8f+pqWP|XJNHP^}-8;8y%iQuh@uU3q@s1^% zCavhH)<<}Q&+TsO>PxNIJ&=50&(%8@%$>4vk{jm}EQ=<0COX$lS=n*IjE6m)>(30t z0_|3h!;a!rt1dHm$-E+xC4d(yw7ltavrdPyx725!3IvEV6TzY|RRPbYGv)@}PzMpw& z5ihtfc-|sd?fiVL5q+7|M&0p8jP|vxaM8z@_y^rIh+2m&3L}>^(6~Q;0rOjK4Y~{X z#*Yibh{QD_?%2)DX0q)b+l(3huAZqC%%n**U0tr4rk~_$x}$m*@s{#7COnK9bXcat z7FpOv`LoDij8sGpt=2`TcTM~bGEkU$ASkiVNO<0;i9Tw%hIkl%?_2tEP!=(UPk2eWji%MjoG4bSl*g;MoUD)4!Cro zkkLNrfmBa8(Gz}1ywI6yh}?Q>q9K7CG*2eZDR+aeO5jmcF%|pb84%NfTzsICgJnX- z#FUjAI8Ny{^wY_Lq}u@IXp&GYw)ONU|qB)h-CZqPnKou9cNvIv&Yt73beUU!K%=XsyK`|=ZMSNy)Xn*E;my|466&@Q{`1g5`< zU0+Pg>=oj#*++gr=2s%8iCG&DVQ1=?;QmCFw+iLdHHUIlLzp>fBA$>1bXsG66`W4} zAQCPi)8B|uDDyli^bP!Ova@e-OKFKh!B0(RIQO&*SMgyd+T$Aaz&;V(YJ-m7aor~m6510MUn%7fxjWM;}hZ}AaTSvegyQZ_fDcEDyMqa8es!f1zLvz(6U$uRwwrDPh!dQmth~w^04RIjDKxVAH z=|^nYtMS;)C(Zj1ehWEYiZcq)cAbz+|2dcJ4l1ljG+{i0!D%gwXP_&f+eEyEQ-jY- zCqkTxh!LYYgx|t{_}i!EbF?>9*wE&cuQA)ivcez^eoHDiw)E4p7z(pDf*Yjq8rW@2 zc2(Q}%%_;pNGgPrd>FbAni$K*!$2dxEQ#dH+Ifj(Llmryh^8zwANN6qbAPd;&q6SDfrE);PF4Jb!q`^ zaWTQ~?tebDqc5s72V7{ytqgT-dH7d11p`Wp7mz}SsdfQ_6-;bj5;1`^5-7>J5tW(O z2j=pQK|Mhs0=qaBAlo7Yi!pg>0vpS3KOtIjHmQa!wV#vga$^s)652SGHR4SN*;R^IY<8eDVAovX%HV`~+I5B6>Pz_8hs-uY-N*mtv~o(! z^ffeI)8Y!WPn{YV`x6e)3Klo#^iAoQ8gR8-(>Qiq4=cxDRtfw-IHGYT{Nk>z>ss4x zn!;Y}iMw?{SZ(keh2LXNWfHSt5mDgc>~mwU;5xi8{^yuinWRMw>Gh=q%_s}I4;mT;AlaE0~u@~=y{Q|!s(PI&-6l7zbydohQ|85&$r915Esa*s}fF zOEd=(8y>mq!0f@nvpRZu)}D3$mx51jIQoJq*f42QS@recDwtf4Q}*$BF!X8H#5xKqDO8?(_L5s#MDMxGx<4vjhE7Ebn%L&sNk!W zC)-LDdhBO`Oj$5g zUdCP)$YcV+in6!JW1uo4wxSswE@W;AWXk<`gWE#h373_LACSMn6|tprV5qxy_H1^r zYhZqN&;Q5Ud%(GI*7?Jlrjaz#j7A!1)O*)zi?r2Sz23eqYwy}#_qK6aZ{oN+wnKUd zgak+f64D@nkOUGtiPH`);eZs9zy&z&fa55~!T(6^PdiFt%kTG@k#^T{67IbZ@9V^t zrfBAQe$Vgu^|E~I%-X?;Rl`He$EekV6DvoCmM^C!2Uf1arKM+rh$E~j;VDUE+AL7t>3h5dU7qUtl3F@b=O+*Z5{39r|dYarLjF~f^$ z9Z=M)LZG1`AXs@?bkr^yM%MkF@+p2F_h(We3spl&E!9E8xM7pw-kvq9C)RFYH?Atx zH@C5^4ULVHt2VZ`wyxhev~)Q$KAcYE3T!@^%`P4uNBGLvcz16{KifGt81C%!dqPpx z8w|(78^^=p@r{f{Q4ut5Fq+ZX*F@@uzf!~oDZN(I_X(OHyoM8~hg~8K-n5N^GuR>I zNIz2tZJ=0$8Bsq2(x%4Ke7q%HQd>&QyzleRJKy8{{CnnqpMO6a{J`ds(M=z?Zu7+W z<`2&MPThCurqPkjmtD7cd}4E8-i7kN&Aae+VBSIbyYp^K&%40YKXd%}GcSJVLw`B) z%&}w7yl~xh?6%68)BpAKv13oac-?iU->jTrUVYC?ka1rupE6!$%))9d8G=1%wgb2R zw24NxA3F_8Ho=|>3Q=+#=GM5EF5#mj8?V~@ws~rb{nKV+ww$77keU92Ki@$80G~7E zl)++1mAm+7jTCT10{>AFiWUa0q#;e$8CLdWJyKmEXm^I3$xJ?#kGj;D>ddQZ-pLrf zwnCxaLiOI6Zsj0WWOHKf)m(q_g6Wp)0{ZZ;skaP{|1ly8 zP>~{*x>+B#eS){-Kl~5tZ@Sc?mUuPJr{gUIRnsj5ZPm9f{mcFXe>#5r&-?fPY1fId zu}3E-A01o%=p?)JdoRBDPyh7di=EeB|EW*mFC@Sz`fKz<+;0$D=kF2o4b%C&;7mSd85gt&E_TgtK5H*Scy|E zp7A+^S@3C-(3AjOdeyyoF4Q!CACDB+?1kLYlS)af&4 zMD%%}|IKcXlv#>4S_M0DVHm*gCF=9sZ;_!&I*KSy2IFxHBdd5VSv0KN+Cn1RHWk8`@KfP*HV{r_gZdz7H!;6IoC*3fxlkxm`GjmUMg0kD zsGwZxultEcIz@k*=?4@-*hT3ck0CiNVOP~*v%NLYHE}jakU4CFRakH2nXd7JC(H}R_Z;M6hKBVpi_9phP zb6zeP)E!;=V?N_d6vN&KFZjKyt%zF0U!U8-S$)1-mV1O@lPQ;1GBO_=A7EI2Di`Cf z_1A=DcnqU#Id#Fo;~n+QyugLkcr>p1TWTZlIwP&}FJ_rVgA1czDqnE&MUw*uR=GUY ze9`VLS;TNbLN5=Yonn!jHtlBX2BoUVo%$)a>mtSz^o6LTuQ@c_&T$^b9ciLzvtW*Td>L<=afh7=c0G)H zW|qF$BsA6A^4;Sp#PJbM&=_n8)(i(b`kaVdyTR} zYyM}Wq;CIP4U>kP_XYMXt_=O8(U3S1g>5?f zQo0>V3oClg^>+TK4l8f6)+oEGXmPp8Oj#if0IQ#qxU3 zP+)^jRdwqbLrS0$3Nbh8s-Xfgt;8ht*-Dex1TjLz3%NM;5s!b?LPcLVYmS<0{aSPI z;om+;sl?Fu-C*d9ea=M1)XiF?2Fo`w7edP%HpCzAP?Mx#K=uhFz>X$cwCIW?ao-X( zP7g35X6D*+``yv#Xc=z_G_JgG--Rn1`!Bh#d=tcWo7Jg?J%uoW zC}V>cqOJDClI3eI{NT#%cVE~hy8Je@Q}lZ3QV79pSh~5cZ+gw*rK_f|S+)Oj(I2LfO96YghMWbE~eL%nY<-1fSV1niFkHit8qG zeXG~6?#tPiU9qkqCQEsrB@}RB=t}*H?gf(r9UZ;ny9X8>UejomWln5Rf=RdEy>Wfh z#9&v?;OYy>jvhVxCV!OJ2IxmLUH=rb7oVteOpAsG^y|i}h)sY&!y7{yP8qlv$aU)L zXMYEX9DpZi4fyXOL;j@Af#66))H)m%1Z-D2sMq^@R%q5p2&VAdWBp;Ds@f!Vx=chX zEzU+mT)EmrlteF7xSMtgU48XKqq0dwqy-E9dh>)qhh zF5YTs`t^()$6px@;%j^z!z5Y~4nSfXg2qO|=jP83{Ad33bPG{)%k1Q;Cn}TUmQ;GL z-?uoka>YoHv|uOAdwunbvW@$j9M$iYKJ1!JmYVhkhaCZjne<|(48&UhA4}HO*#hpK z)$GO*P7vFPjipY(y0CHS3Y*#7=t^=A&XQihMJ@NSKZlKV0CufXkEJm5#!O+T zl=LnkB-lRFrbDHho9^xodNs$u|4XO z^oohK4hwI#vTClorfnOd{HAW+80+>DuUPpOyTf5;u0~z;ucf2q7sl zM%pU04>=-lf{fJ>$NoEK=6cVW0sA#-KATcCJ23_UQ03o=dHK+ZgA3ZGu3yo)Sb`=e zF!o48a_`}qG z%OlSYR!?)Ghgon^du>z;2V~uKxuI>5$ULZ%m7*3Wn$rP`s&FBq@L2P?+_5R9K?5=Z zoe7*VDhY6o8GI+bQ4PN4ndp$q@}n7-Zc^9Aq`87LdO~Cu9ckdQ()F-tQHP(+n^YCQ zNtQU|5gk5y4yew&+1wLFMX{LTlld!eq!Sug;N>Z2xd8Z6FKD;D-7wwWu9QsErG$S) zMhR=_1PX~BERuEB(U;TMF%9icW7xD7f>LEfv(DN|q_FO?n)Ulo-|Al)>)YA?tCk~M zdz`gP7M#hV{1%Xv?n}ZqzF@4R*6n%fxPTBc}1VP+N3#p;5Ojpho zkF$?x0cTYo@2%F>(KUrtmoCpp*`c<{@vO&^YC0#P3s&#OsUE1=Ta%gm(m%^D`x z88Ro61)bg$mithu3(>khp9vnBdZdAX>=1EczB3VCuL?WW(5MoTrqv*WO|FVf6*7}3 zE|;T)poZVHqoLTlae+Ua>pPdOynUD5ZW@}%St}Txnz&}u)smh0l}<=BN^-M?;kDJ# zq7h4Bh>VuiMw@twiet1OCI7q8>bM`uuX>lkE;?rqoc^;Yzsp$Z8!CH2K}HLS?yEPX zPGnJwBMVZO&H7_2{VPNg0-Zwj$mJT!Xt9aVEM_4_r12_ft72GHuOLDkv6;u)wA{!0 z$-ifaC{~fZD#98O($26SAn9zeOfvc=k-Mrw*4v4yd`2X*zW}NjEAx9`cfBFrBW4l* zN(Q>vKdcQD{x~C4AmH}@ZlEo8lB+o3ke&AL6S=A)OH~9fB5{46sUaz3;Z!nukVsNh z(Ww$Z33-c%S|26*@QWB}nY$2iVzCne_>r?DE<3U{Mkrr$# zjqK_TO|Cq1y~gNns!UDQrxxtpHF^tyKPWu!16Ge3vORL2VY;tR=`c-q6#NO0c*rOj z5W)(HKaa*o-3C#lyG4fV+? z%`flMNh3Y>E~F7e|54PzmEQg|J9WGBQC+^AHA>hW=g;{(;{UguGkv@==i2I= zPkTLnEiQarxS=jat&i3hW3zMqYGuxbcbW5f?4TN7^h=?6_?>J4n&`P+Y+my%T#l2*gB(!3rjjaFBs2wn zWj)x3h_A$TPquA{rexUosi+JA9)?9Z8kI$c{nf}VKfd|n-}^}4;#>dqrjLC0#=$eY z$}h6X;r(<|`9+vqlQfqa**8`WQLSV9M^p4C?mB&9)5_2P@!mWB^2o-C`+t9CDfRXB zcN|(wJzegQ#twb*r>kx|u*6m#pq>_&9k>NG7f6i4_o0J35jTr|0;mU>JDHRq;URH; z#+C6+r!pB%8u4=OH}p7#_nQJAhiJ~pam+)TLJ3n~zTdX*p?w$MH`CO%@4XW>H_gM6m6i=pX- zqA0|hr{i(2Fffg-GsLh9Be*7=X>r)|{W0meC>+A@WoTApnX2S9_1^9o=IpF{=KhB* z->6v2UotmMUNZW>^wd1_Q2B*9gZe)%Ikvj)uexmr{Q?EPAM{H$cur6Vn5ublhJpbI z>5H%`R5Yqt!=!Eik)zE0XCA8t#nMaY$#a9>@l-l3w$D>JR8H4YMsHkRC1fD_7P?ziRW<_`z=Zqg%o67DX(z9j*m^~4v zhsp3yb0jn?C~*ltGvZHhQqZFY?c8ZSBx-BwkqA(gF zBXG!-L0z;bf})FZk>-Anp-%wjh<w{8#v11g-X5zjEih8Vy~1LYu*9#F5L8TJwvx(hjd*I7zv>n-EhwMx z9G*giH1lWc%Tiyipx9q8JE}-Pz06CVsJ9fgI?LnKYcd~jh~+;hNJyhB^rz2ULNajJ z9}pe*%=2`&*~+sH(dJXnoIP{9&q-#4OaTf}@H8-{GDGGC?HFlju#2q23=cuO3_!n( zoZukTTAqOE)9QjSE}%EVN-HGCYVMpS)dl+bZKm93;k#BB(g7U?`4BEh%6ud=}pa%k(RD6QBb{ zb-s?lg5g((Oe&@^-$#tR>GW}Q`{p?OL(Q0!n1>7)-;j4Q;zW~clOyPK24oYvb#|b4 zndAT&%Q{qUKf*;Ymh>!4fdx43(8g8|m>$R2O27(RdS$fU!r1*Q?JGEvk)Z`1&I*i( zFPt0O>@K1zrbVO?P*f^a&nq#1yvEH_KQbv%uLn`h)d82AjdnGPKHN^;=Agb zRI1e~N{!3+YZB6lQ3|lZyj|!mhT<{_(bPl6X6Gd~=r|o1Ux&7 z+Hp#o*BTsShagHLa>9oCd#DG1v>cDFo_bcw^YEXO8~NW)%-HQ}1i6&LshP-xTERcf z90Izet1MuuPJ}nSb5j!zON1jL4#B-jDMYowU1X0hF)E3WFN%5#hh2rPiT3@~?VeT3 zZ#FFSjqYEXj`yx_i!>H8$^p?tF@0m+?$XB}=-bvCX8&NaB8t~+x0b)vxVk$|r>lrb zK*KS%)>V5JE!?qefg%J4Cb^8)RYjYOZ4A1 za@!l9UA5s0Z+@)hg2_Rz*KcDV&BRl+sihzO%AVuTUEK#(^ud8tG?Jp;R6-ur<_&Co z=(jiD{?>`jk{T54E_V==?+a&tPhZP=icnqAZt}+KLeYkZ9qAoO=J}9CBer| z_=A3;K^4{Ea7<|2AGKqYDZw$S=z*^g8h8{?XON|CV7`Q1O zQf@Z~!d?;S+O&j8op`4~xOI!N>eRC%k$J~cQD=$%2UhguBB3<=o#mw_N=gO;ai@iu zrhR)@vojeEC+(D}{6x9y->9%4k!(j%U{4~&h9kLM<(H^-5O9V?c4T=ok{~fwLM@JK z)PUq!Q-&EFcL4ff-TL^9Wr9ZKRusmeiBV{dw^u|t9mUV3bf9lD zar#06=`*(z^E~xdc_}GaLY+K=8Yb)ugF0Yiq_WX%u~afdeJe`Fh5Cz=8Vu_+EU89o z(P)-Ca*q~@4G0r#vUWCBUNuVUNc@C>*87O-R zsj%|7+lCL0*N_S;{g*zv`@qvz^l4Hjqkid;!kTN>p4LjMF!3W#T+-Eh`O}B+R`56a z1Zby>9c7tdL}V+YE70tYnuQDKJ|X^&INhOU35hS)J7o5yQOtdX=7rc410_ZRG}{B% z+rd$MCj_Kp0_MU5i?m(t$PGn43POgIz9p`90?-`byup+t!pAuq3%wDD9N zszhRNvvd0Rc|&WVE~@M5s3m_X?!5PIuwjY0=eZSF?$R`at%&pM9n+)RPxnL8A z*s)i&F}*VffPUX`?Xq|>;Yh|~HhVIWaK>Y~_I-xOL?ShQLGaf^Vg>S9IQ_)?545tb zyD(Dp`TY@r=hWFhF<+)T5uFDP@Fav(1m{g7MwkRCV1>2xn_2trd2>18kk7p3z#r5E zcT!f17ldfufT_Qv5vGTf+w#&lMmTS9oBam0$LeuRpY>24i-px*Z-1p4 z%~lnVif+Pp=8l*WUVcP-`E_>Z{O|NftFQf1%d_dIM5nAx7s>ezzSy#|oJy^J9VWhbAo{8|AJwHiLh9$-HVX))DfwRg33Wef(PkP(KTrC$J;1^O%C2wG$!f_X?d zE(LXo=%>0bAYIE<<-#sb%e3G{4$+kwERkdsVu+O3($w6{ycMepS_87WtSz^6>9V|I zV9nIl)e$8farzOx6W)5{gV%qsT`;>M+m2jw<>9(uTOrsqv8%N4+M=hqvCe5%jDk=@ z)BZwRFw?L2V>KN;idjSlD8**ZHg$#)%U7+=dh)5L*TD&LhBZ38kxX5{g>YhPpf=&* zEH0Ojt*y1ADfE>J@eCKwqF^EQJ7_na6aKt>DH3@^v zrn1_aAcBc&Q9s1u0nE`t4x!HQACWB%G1l7@X{im3_SVLtj)soG%-jE(S~jxC8{Is$ z)^9Rfc$!1=o%Tq5+C#X~wSlY^+ZfM26$p z+|E+Rg_%SVqi;BS7&e&+!+JyE16SG8~)CQoEvt&E&TjNNYbvHH8VQ(w38#!&CV zPOmpp(~@0vSI^qxe%8_0J(O%6Z7G0z*h7n#jRss{8Pm2X4Na|nS3|L0kvxiQQX=W5 zY{Ni9#7c9LUv=?jGh^9-fK{*LLuQs!VmXe6{m!^_O|CoVb~mkAh}k24u`$bqENJd}52hcD2WGNH3v}fE0I_S_ZD(hVJ4G=$QggeXD_L zc#8hoNn@z(S^675^$>v*98H8~wGah}v}~+}qAJoHk@E?xKo+zm*Mxly6#8bk+f*E0 zS3hJlx@#8I$h8f1>{Fu2oZ5Nlvd%KI|FM$8MjK6N)+dBUmJEk-%ezx{VU^7-n}wiF z&cszIm|p3Xy{s7VJ90t6qs9s$mmmeK(Uz1eP`@yl81Rvq6w5y~{|EIQ!)C)lLuU^f zTx}U*H+FRemhJrt{SxM|jQ%>b!R_=5Ps|uMZVc4uGYe=lL)5G;+G#c@j)aeba%toZ zX@ey0-54X3tcun^l45fa>p!QYSJqwa;;IU}jzBHY1$9k+)($%=MMci;^doBB6zNja zmkdiI+b_N1iao2;@WSpkS9EgIhNQ`Cr&a&9<2T-T&F*2#@VbaAV&NrcfHm@rRG;;9 z4J}LAy&V zM!QE$G%7<;Kpj+wqOD56!TBUFMS+6SrUmt(A-_X#n$U^Q8n2Nv>((sqN){F^Pt>m( zYH=t4z2y#$0^u}fLV`<(cGd;*i+AW0!~AP{!f@Eof3lE46L=s}CR4v3U!FksozYz_ z`1aULh}rcN{q@He4UCSi*Oy>aTLQ2l>_ko7#(soyQ;EtaVi(z78p7#zkt%?-713xd zTJu1{Ro;UL&Cwv;u2tEtrq^gimMokR730F`j0DlmW<~v4hmm)P7CBlQbQSB8Cf~~D zSWU?7jd;Cv30F|+S=bN?+8Y)wsX5)4SUlKMC0lkQFU6vM-XG3%jmA6)zhbhho`B-5 zO^0b4kGe}jBp$c9Ghs(6>dD94tU2OSovD_E{@kYJ&1x(qwe^PzO~CGG#?e>$WX7HBl_9dlKW8Q2Q&?T_0 zq1IS~E`Dx*P{oI$D&7bRB$`lulkC0GvwvYe&OL{BuSIp@cDt%AI%+%#fv4!_d!#iv zq^eCMhnFp@pI)|%dx}OFA%;Y9uJEDNlOW{RIjaOxB|RTk8)_UC{j{~#P(ouf+NK1- z(G+)H+pD##E_!IT7u1=7G=jQ|rQ!;fL8)wn#F!Y$M_*$M2kw*=r@ZR{VBin-C0G zhf_uN&?t5Vq&)r|1_?&Y-%z&sfe@2d#m)I~NGgdAkP8l_y3WxxW66rla9OR>!;cd2a` z>=sad;%ftS(nD=p<1?e(jxFes z95%CC@r_KZO7ihwdgkNL9z6QlshnF*tz6bEAqOllwt51T!s~FWLA7PW@&5JqUAsL* zG1QK`W?Je;*6n8ki!NR*r0QD(-fYN0|99)|+qW^!P}ZMbS2D|jTvrpaDr(2zvP^0u z=8M@~*{GZC_)uqY$BM?qM?bZ+<3OWStWQWv(B|*yS)icmtl8QzaY5tcrDMsuk@YoZ zuis~KHm)CDdiCb!^1t|MW6lL@I>X>NP}>bJ8U$`F*8&YEZRmw2AMUZOUA(xvp@CsG zs)+>2#H@RjB;#rNE2JxebEy`cu=53m=+A2*yW~%9Y+L#i{nE*q$vS)>Hmq&3ZIZb-s*1!8Q}^m?dVR%wT~$KS zXsd?CDIJX&A}E5MpgWl+3pX{U(>k@C)r~bB5!4022ZTuI0*=Pzh*(X2TqQ<2<)&#l z<`lv{PatH6DBSb-dJZXxaoChhNHkB#hEm-t zMD)`%3Z1ZOG*+j-8Z=8q>bazxXwA4-d)U|9>&v%Cb3J)?x)*^4K1U7xrr@^)db-=( zq9XA_9r5ObGukm;>^rz^SrFObcyIsNYw6pmo$#0|k2#`V(^K>duwZ(zys!#Y$doP| zVOdkD79!GX!=U$Z7L&!QBx8~OC6gr~6?5_azNHhZR;GK}O;+(5lf@JAbggb=WHmw8dI?c-cQ;W@9%J083&U|;(<*Aoj_0Xb zM1Gy8ZdEKWU0S$@rhwdSZd-8yGIwqENFfv+Te+MSKJm{VTV|_jT&K70{$iWUCvlu3 z9?b2Sz95@e)EG9~WbKJ!g>4f_Z>6(2WrpNb!~G7;qf0E*(^n_3m_0tNp?`o=NU$7cE>J2gg} zjes*~iKj@>)=DksHN8tqStK%w3bkr>QjqO6X^$vn6^%^$&?e6kT|nC-1VyyHq=ax1 zsM6Bxrcgqs8jX&hBWPfS4S7>H|LQZVl8IHtrUOThcXe+cN~eZ*U32%^OCN8GrA>?= z*4TV0pV!kcx-OSp(F?mt$IyzJ`q7SB1;$-dw5}}@n;0K<2kSdJTNP_GQ{#F;v6ug; z=g6+f?s&3mdCjU`bmlj+#wEIgR-jQ@J0K?9%UAbgI%;AsOZN6X}^0qtMo>Uv^@=>Q* za$3es!rQyz?W4<!?6o(FiVgNC zhRmA&XZnwrbs8S*{D~G=tX@7f^Y<-O3y1#4FF%eT4R8EeKw`$=C9oh0Q6-=FTyW?q zYjfbyQjF(;i&_bTnGTT3Cw0|3LG;{tx4aW9Rq#|lsb&H%l+Q?KO60SMl{{#;iOF%F zLJg^YL+WI9A=KxWpO`7cV%)-KF$K<`(l1rQYKi?;)9)&4I!_PQ^kQgzpkO>t%&`!g z;32HsNN5H@hJ$sRZ@wTm*56{6>^v=r=1kYBmd=(*F#&C`5d0Ts5234603f%xr1osx7Ue;()s3|iJ*jZb+jjIr_!q9U_Odg< zaNa8j-h4QmBcC~Ftyq1-#nsifp1b;Jsey&iR=>1qQ+4e(&s%zmx}3U*{wRF|Jg24; zW)&nH+~d8)M|z7R5Rs*rQw)hUuCUWCTO+bFB-4E|QYLCWZm&g5J5x?)O7+QJ8DTRN zwc4?K|%^9)|* z)m}!j>WIaaC>{Emp-KQYtv&$A&a)#R$_tDoj7p1gEHSiuK*|M^O;L&XLK#TA#nH*p zqT&yl!O3z%y*=^CU0kcltc+i~p=jdAZoct`k?`Q~aMW%xJx>*Waqq4+v#+ZuZZkIx z7nF5mw1XJ!x4E^D_-jwvddP4epXuo-!r=45DY&ddZA=Xrct{_(HgasXszIkZdXQtF zqGmJ(lRXEBx&lv_JtnKq=HoONTDWbjAu}2Yt{-y76@Pt95$v>Gj@0%o@2i#F9up^U zz5CiT?fH=) zn|aG>XMU(zcII26wlOl#e=uxk)^J0R3*Aph-BE_Fe+E;ci8+NtC6U!=A()0W(CMeX z>+}Ow#T76t%uJK#fW&M?$%ew{l{n&MXj|VC&$M-`?x@QmtKot6RAF@M%$}lZk$VoM zgDWPMcpB?``R10AvtjdSUDwtlT$9MzB5oP=Zj6Y}%m`M$-zQj{o~S2P^d*<}w;=m8 z9`P$2>=#bnpRjv^R^P&0ba-T>uS0cZ3eEABi)XeGY2*pRZI81MNy=R%yc1DRT2o__~ek^Nr6iYE#6M9(~3JSPSKHN>gS4$TUz$%x>kH2U`% zjkG0|rCbU9!@ZsA}m+$@e-njbCQA$yQm3%%zPq5unHsQK!3T2hp}^V=9kPPH!cnjHa>)o{tyXyE=UOD5DX5lv`#B zBA?_?duP$l%lDl>%<^mJ43pZV4HG!_AfUM&v@;AYmOMd6G-5&1R_|9ZVyhve`O&Oo zOKJ6v3BqYRrYf9h)2OT_lZH`G*Ov%3(icx&)wsGV)-*BQ)UkD_z+1A}kU!PRbD>n? z)zW0v6fAV6BMWMLzM6LWzl-6n^&P_>+c&W2=)=>WEWh=QW1^%4Onbig!=I>u)@{T2 zSYwAj*qrr3nt*=JK0m9U2YM`;Nn;UF$~9~1tX1Q0V$%2@+AU}ZgYRay_+P8a1lxzt zc2l3A_M=XW>4X>MeozsY$lmbR68)3lcZI@L5$D+QB~&P4cX!pL#b7MiJy8osl*bjl zyz5v`emv!LOCgKRKhfE_WA$LrY_^!Ku)0x(y?D=))Vf@*=XENMH(HqsyT> zGpph!!YhigRNX>Pt`+9=tSiyAq9FMlsv|1*E?E-KFKUaG;*Ln$SpC9_H!TjBO?Z=A zEbYd-Rx!8GzcQK-cjW3pw?v6ygpi*|2BlZw?FNP+u!!tqeKWLFOQ4jn9l*fV$~NZd z1B~4QJMhC_VvM}W!3>>%YGD0AH)9c;#_k_l1;+F!bJDC(EPch5G~+V=;}P`Skc8LF zCiyi%f=dfc#3{qqA>Don@{J7X)+Foljj1BtY7SHgV46c6P@r!$$waIzAA}de9fVLU zx~#Q@n5a7HatKvo4Of>Jn15xgHS9P1iQ*|0FCgXuo&8j{I$5|DfH9FGB0f|hRon3A zm@8rMBx(_%nUy8x@ht=@PaC0bY1II$v;q}>D(sCs_?*X7>>K16giUwhfpZUq1y6qq zdD`5=bajl#Eo7-7iV~fT?C0w6n;Mhai-<5qei)B2WL+xX)40a{C{}9oc-l%ar^gwH z1>$1RYtAN~D!=;UVEKklgB3>_+fQ)0-2n~(kQnOk?Z9{X|m zm8WpCCxn|(FhW(%^j-dgd)BVK=LeU|UXv#ngwvIGC+oZe8`~ph&S$myICG?Z#>AyjVR`i6aOSS-03t~QHD)&MZEF) zB>71aKSA#>6KoVFXJ=Tk3GEl%@%&FOeWv`iUtTGQ&Paz74>RK@VdJ6Dm4El!8*li{ zvsZ?kkw%|cuvm;%$zhc}5+5tnm`U+ib4?+JfO^^LkgP@vigNiHBhJv3&;I6y8-DlY zD?>`8ZBG@{nRkE1mRpOf%6co znhA?T@j0WBxPS=m5Nra61H$NrVc-{`E`-?`$r;VMOac)I))SP~?9Cg*O8v^-<5DD#{G;W9?AC!EO0z-uTJBcq`Kf~a$xLrF2%Y{LY+(XX5OP@~T zktOsxBUq2`44P~40%&-5O2Oz9A~IrG>l-rMI+r1K!9qH>)bhb3CrS zpTYNLp3DX3^k2g{f$yB!l1}q#3)hn7$rrr7#i^$GB;S%ww(u%@y-{>{gc+H(?-V_< z$oXBj$N?B5%sYilO4wyKT7BZDJSu0CRsAlTSF*9>F27)`-o#OYpWIbmlCUvWV?tsn zMvC(SEyj4eF(z?R9M#1cF)DHPs8Qx6*_f(f(KLsa)qu~1!~i45)}@V3E4fk&i0M}p zPP!+O&dG9_cr0m~j z7tVZ2;P})I{SF2V%$ccxY*FkRwC6Y#Q#cwnXHDEDLE5mh`a^R#9x_cy0@a8=-?-um zl{$F&1UU>G?l;Ca+#CLw_L6;S33g&Wd~&9_8lUkll&6Ez#>Y``G$v5 z-*6&ejR4CLv`{j+OWJ9}T>)|zwuE1qe^>c;QVcM&M|hc=4@ZCxm6!oW)}D}*4T5OY)-=FhS z#wuEwtkL;2!1!|lPyEq93fO5-bXGtLu6CW_IP(kRg9ZgvsFxVfHygQygw+tkd1aqr zlk*y9!)da4u}iS&5uyg>*_4JG3C)Xu^rTdd_QO;ffiYx*;J!4@={_fTmh@lg4{&L} zCKRFtt$h)<|0$}?;|c{{e${3Vx~;ZV$=dp#2yXlleyaEzQqAS-nmd&)hV2$WU_;47 zsQi`k-*tzB7V8JHDXJ(sL<#kEic4#=tf|&!O`QI1+$z-CQgu`}{b$&9val<@@`@O7 z_;MD`C929mVIcoA!DtkI?rMt_29(p~)>bj>=u*`#!6nnD>~2$dX|A{=Of4#ZxnpZ? zNzme!zuvlmyv$@0%daio)3G^zW)N8c1;OiZ#A6_`0{U*!PscZ(JzKSo&_;P5iFyU~ z+)Y2t4dZx!nM9#J1zmoU8^Q4b?RXK6U*Xo`_~2m^B34&W(?s7_H7$wQDM7j-3+?!%XUXzbFPCA0AXDt6tz&tBAN z3v@Nb?56zaf(+lZX(*QrniZd25$&Q2!8O5R!sUzjpwApK>}PIg&qALWFchAU3N%vT|-d@F%qhQ(Dv5Bi5kuLo^9(LN!E|dGrp@s zONLZpd~Z`M;bdAlrP!Ij(+utHw>7 zsQ+Y!Va0Ak{{%Z6nbWeI^fS}`WU@G&L^K`H!Tw4$od}Fwb5=kiC^oAER5}XGg*K%$ zWFW_ynBADB?&o5PRYn1NDj76+tfrvXl@7>=5>x_(usz(mq}JCL7kCpZx&2aXU_p*& z=zHRIf@J69ps`bM*#j9hx*+dMv<)R1FIv06t_V)mfffM)xCA9qfxwmW7sE9O_w9#`lepbes}ycEH! zeo{GFNY`ZGRSyOPca-N)GMYh#E9dh0E!KvHq$gES{wukW`ZTTDRhQY}cStpbwAt)Z zRe=XBX|MM-$q;@K6zGXY%>oF$*=*xkBWCgGvpcDSv;}c9*2e-SlkQf8zNwi@D}$>> z@(~&Y5=0$jc?(C|6d%P27PHe6ursLqBbfv#)0U8z``X)^6pPUwUAAI85pKvPoh*ve z)z`*txv2{e0wX?xT5$W>3xE+j3}yOta^~!f(5$b(nOh9yvp?1DnWjtZ1kUWFHdXGq zi!Oox@t#|$O_h80&?OGt>^-}y_muwu_gslHpP0R8AMT0c%nY?ze@^-PmFIkt+N?e2 zHfA^7&KYsfMbtj+p4-ZA(Cvl~;>_*TzOz3C&K@g2Nqq|TcPPimIa0Zg2EP@ggG2V= z?jRM+IUL{4QMp_LamsEe)!AR&kl%oS85K|@>k9@A6xB&MMCErq`xCd{#|jjbbIRrS zaXdp=jE}hdUd~GKW(%d@oROsj{*TsxPd2k=e&a)HO&)Z5<<~t_XASyf3mnuNA6#eh zxFnlp-NO|)A4Fay@7YChmAQY9I;g?ys@-!JD*0W;2{7B&7HDmBDhi|YzC!G5iJoj?D&i|S(^tX_xs zI`{kKY_stRO?CZ(k{7N ze7cELjdt;>tArZTP06(O?6^xG2!t#AN>!V{#mR0*Y5*9zHp-GNjg^Rmr9BM|8VC;~ zqtWNXb2yIc%6^>aH)Jd-sGi2?O3br_Tz8=pxFYQLDxO0m)ozz5j`|s z?mT1{P1e0$#dpBsg3G3p{H7Dyr6L?qs1y<&q zFb#9E(OSO8CAt;6ezz=pMP(WFh}9^=RcLo|GAq`)?tkLwp+|>Iu(S$-@Bp>{2Ugkcw(g}c?E@BzU7TsQNGK|8X`TjS z6848g-(HJT5gq?T9r?ToHO`F`D{@Pp`Ra2MlGW)nA92f(0}w-J)+8J9`G#boR8v!m z_vBonO|Y3{lf@46fJ1a;scpRE5>31a%Rs$VwVAAFsqVFwU(LEihuLbfTW~jiBf4@u zZ(6+qxo%Uf^)M5Nya~VJfxWMv`6IjFJnYqNgy&)$lv{!V70Te4HK-BH(=iU8vzRr9 z_b6Ll!FyxHIz;eDGp)lBs3R5md?(&>I?}dOk(hrEL`>r8^YB%3E~ZoQnC6j+Q}2QE zm1u6XLIr!%cGWy&rV@Uq!+O9gh7X&qvbf99KRMOFm?+*Z3U2KJ?~3T)8avq{ zUB|rwYAjO&47jsS?YUPf)Oz;3p}7aU<*C9<9V8OkI89>bk_3z>T{VG}@ z7_}e;UNhqo?-R_IB{UPzsAI(`MzCss@!(fK+BE*q&#r4tdwId;gh+)FK=j51QzN;D zJ9k_=GJaJ(wjg7+np4gF80WfjJsmsyGT!c_`p!}~GsE6OhhP~ae5jW#&5r!g?8qzU zF~>F3ca3$p(?x~n=4h;&y|Z%OaAEnEbolIxxYJDyk++aWW>l2(|9THhUJ;X@LQgF zG7u5PC6{hNd=Ja2$zVLvF~0LiFO{3r+?Ua;`^ZmU{K6IEqA0;|yX*GnU;pO|fH8Zh zi_mHG1_LkeEB{|jTY(l&eFt7RUfzEe!VT`Z7;9ih!~yjFQ{;F8$NvhSKJuuexdFQQ70}I%@`rv&j$3hk7@Dh5{_y?hj_H3k#tr!WUf`)w zKJ^pw`wn#LcoQqi%TJy?2&zCCUZ4bg%d7lU;l`5J{9d+*I_F8 z4n%u-22J6OjL+}S)MosM4}$1H6?G=1J{u4h-}yO|>w)i& z3e#!!X5<ijn>e#ySbM`fu(*&TO^;iIMU$AdXsL! zD$s#oys@J(E~{P>#JGk+joLB5UW*i&&aM4Pp>@Z$t)-fs^;YYLzW14ZqiNnzlk`fd zQbg>=$U;#0f$d zpp90>>xPU`wZV{Ybda`)zJ+aS-eGUdSzJP@!7MQTK%}m`g|a?a-y3Z~`r9nblw3(s6N{AbjY1_mWvSYmqR*_jfNCwTT^wZZeEe4m!nt0x@as zC%i=j;G{6_Y6_(uL!xWU=VocBTFQn-)G&GyK%$w4^e7{$C*a`aWh(=j8hgYe$gaAy zm+IMipyc3fbt?j{1s%=uP`Y`65?$0Bs~cL)UhQ6nkBU8>#a@K_ygbFw?OY;m8*9tbBrnenAV&=D7cmejHlMAp?KN+gRY5d?B(LkOxv z@LA~GC=tz%r&%kArmY$MG}1=w0t8F{HP+Z2@|0=y!W zJLHWkJd~M)HD=>eSJNE zat#%r7qLfB`$$2lFJLcPsL|i3#Kz49hqw?MqDz>F4Plx_!)SrBH;2B_YAA1Jf)OwC zUxVR9ecflvfBwqFf*>lE!-ZSqv22pXhI%m?8Q2S~)fXQnG<{^#O{a#@b0N&pV<& zsH2@5M%Sl07N-hBjS(Xs4ykG=XJXub|A*pjD0Ljl`dsOdEC)06uVbqw8!s4Zs9SY( zbobLYthQijjmwVSey?50ENTe2V_Aoi3Zkq9WpIM>tY`0p7h>UwVmF3*YGy&Pm==&Y zj8PZFwD8o~=N|KhhRElW7I8=rJZX=P55)8h^IjXNEHIZIt#5<*q?0Veta=1DWYvTM zZv?jbY&t*}O^+FkNEM0~TI2Q0yrL?bErc}r{c3AN)COlEYvgjv-2Os)B-RdXpJI|-KGX}hxqLQP+$$l`4-`P9V)PnzEBMeNR0%iR3|Xe9G0@}C$Z}6l*z~Ms z3l0;mp&7hMlQpa(vHYDwYtOfL&(Cw1Gk8r=>w4?4qHcXILS3(BrU z$Y0l;Xx(@0Lrc-ChclszRLpB%{jtmTwKZ*BQtKz3P~+f-i`knDord5k7uVWq3)f=R zPtJsqLP;1RG2K?HBw$tbT{LUoh8dCAHL%lWSCME1F!#4K(~Aj9-hS(@g)(h(h;~Xy z726|$1$Cih$7nj*l#hy5vuN~0(r$aPsVLQSE_B%&{g-)}BbG!m%x1SAzIMpO^QL82 z>|7SKW*VA(`Hjm;f3#!wL%DkA5#p~6}w zsv<72Hy-V7t#@`>RhNUk*&mMtOs>xK0t7S|-3uBM8DG=I`}a3DT#T#}e#hsp+S-Re zjKO@q7-?wtZFI!^8g=WZ>gYUs4I+n}C*8b3$2FdQ9k@oMA#MC~LiAi(9?R1LDMMM_ z3chApzJD~$vU1Svb*I|~#tYP`SUeo}sEtTDy!;m@_KOI*vsp)WfAFSH3_?yfIH)uV z%UrC*llxDg3o3!0#36$Go0B4rp6QMlxGFq$Kl3-CUw;6r^bn-D(rc11Q`meCbKI z-D3Tw$>)u_Zxd|PHm{<1eJ*AQAAb<&jS7l`> zHRBaoOYB`T5#98J@DQDR=@ZkyTk&^bVsPit!-erfBiTW8x3h2#Q>-*l*tm82;J6^$ zg|S?JDPWH^rBc16gbCY6G-nqKWse;7)^sNumNf@yPwTp#1V}n>f-eU#OJfTMmpXkO zr#syeLjfTLc9t%c?s3xIiHS2&dfYn}3I=`U=imS_Q#Mm7 zSICZee@K@p1MM!{C)jMleU4~2AyYq;ZFcd@Y3jLh55dz6_~#(I0ks^nC+bix`Ggt z)oRsOy;-tWtF>HZ8DqH$W8q$8x-CpF7~5dUonj0mHXV|XK!DKm1-=kM%NIi8+3$bf zn|V7UHz40<^F!8|J9q9q=iGD8JypegR9>P|sFb+s8}-4N$-<`NtBX^WkQOr0Xz&+T zly)CIctv6`?6!ij{*ic%RKKM%)(ZT*flvj&HkUMsjd zI)213(V;ou(2MiF1?N2n>7O~9Lh%c%JeA^jR0zSz=Q-5DXg&Glu5Ua2h_fS43mL7A zOI)!*C=x-dlP?3@>04sxx3uYK&1();)?K`MaK>cO8BAJtqB}mawO3-}7mbbY>GNLB zCkJwUJ7aE0i^53S!SwZAFrDk4zjJft$ib~+Nrw)1HR^2|_2uDiAnOi_ zvx{T?U>U{!h-R2&HsR(LDc3nxz%_>3Ola_f?45_zL}^ck=q6fW1rkKfY%&<@U)F`= zqGVz;^s4%Po7rli|KQ{`B`GSrGS8biqt(DX>i2kj0?EG-pd;)A{(Pt~-9@wnuOXGn z=h-Iy*v_WRAjeL*N}(z#f@D^Cx`O4d$#VKTf2GZ)=iA=;wujwnqDZR4zA2k_l5$U z6X_KfW{U^u9bF^CRZlh%ch>4>duK9fSt9KFe&&gGp3!+U;s|2l&`8F8CW)PF-(ei(EA zfjx!1uHe}OOaUNABH>`epTN&J)o$B`{^&!MvJ&I z0Cm}Ptg$qi>KtINg;sg!O2e)XY);Ij<+=@fhNGM<9&(vSI=iu+1oa40WA8qqe3f;AM`a3eyiu7#6x6~L#LmDwwX9x~ z7>JO<6oQWwreJSbE4OUc$5R?iLrsVi}6(Rzt5W$}KA60>vr+$yB zHQ5&H1f;cWoxrQ|Pqa>a+Mnz4ICF8)9PCJlof&Du(_uG3vzl2SKQIzs-Ji&2JbitHW42NcGj8^BSSMf! z=D`=lI-y)9--a+G{sW>YLGZ#r(TIa4PsGb$6sNnQ$fa|76IvG95K|wNLh1A^-+gcw z>NN2BLm&7uQYC5JS`RY=>;j_a9OuL^a#p?#GLjRh=B(iPOyuk9*(mUqp}VDk#vl## z3MHzCkdeNmvUX%ms4@~x4&)K$AbFimZydF^-0sT*Wzo=)bA-KCt0%&w z1FNQTn^$B~Qx^_zf6p=GtC@Lj^uilXTKE-P5#Np!H;)aN9E9YFvG>3>FT zg+avO$+ih}n0&%S6Qjg4R$ewrEDIr`tDu9fY?V;%+@@`ch<@3?qR8l0!vu^*uQE)K zcOg-O883=t>&$^U1sE%f_7unqfDILi#u%uv3RIK!UoFEG2c2T4Z<`5sXRCsfN6rzFTngg z=yzT$UYltGntqXa%}6}i0!7|3h$!t%jubqpKqzkDyg?=`rV`HdNJZ*RphBg?U0&TK zX`mNbHAeg7z5z){52if@BlGe6+`6e?wksXh>l2>7L~vwkbNx`zE2g@Fr9Bs3HtNE4 zXb1)b%hXj1drSEZwWLU1Uvr>$5;tEzm8eio^r|?>KqCC^KqZqh%UZ@4~0@P`HUrwND@m< zTyQb(*9SvhO?2}Gmkgq~!%dHtjgd^j9iJV|8IhO{6SIUeT4piibY|lsZ^{x4VG4VZ zu$Nvc{%pllv{=GLVv#tvNEL~+3b$W;is@SHyKVp_J!YZM$q+GbI z(XUctj%Es?Mc}%IV9ys#)^sWD7G1poe^)VWuNa*UD|<=|NTQDK3U?yGhjWy3!LV!V z=XYdw6(GcJc>b+pCSfoZ%la~9_gY)PO{Cc|>M6#|z6J50-sj;9{`NT|2a|*%%>NEN zMvCd5=htgBNzlK6Os{{KcN+97_6~fjdqhJSwE=e=LQRzg5GI$q6TO*HBIO&{vtn#Vza$Op zS~<3>UpnN7R}l>D*0~nDgn|rGOyf=L5@=;nzuRCo8}53S!=f{NL@Npb$2EG> z4_&-Nz-#V5x0oCr!J(Z;I*R_4bF!6omija!vKQgLOFe}+%!orFK?L+LFsSQC(7`au z5^_+%$SPzT5jf^e%oC!!e#B}s@u%{AQR~ofu#yhwd96toEe}Mh>$<)6-0J=-=^^(& zXYG>Yx1B0X4tBUpL%fU6@Pb_Z*H^B^Behjq`z`~HW+9{8>=9T_E9YtwjBij9C5bEb zXJ3$4*)J1NASb~F*9s^|>JZ9Wqx?7`f`_<&!0;^(V+bR1m&*nU<*}(ius1wIiQ5Q; z&lq=NeE)ECpcK^VIh)R(>rbp*zjfbA10v~0C$?Jr`EaNwhY$7GUaUMAIdI|3$cA0? z@#1tfK%}^i7ZY};eXKe#YD4(biavMJZ+EyHHn+p6*E)IA-0av^E2G~E{wz{YGd=7D zvJE0hY!Kw#{A|+%@d@TzcoKjf#K!*yRtRL$ko7B8hzir=-XuysSN*#tgdzQ2A5Nts zo7`WffBA3pmB~|jqfvj#=0}-J`W;pij9VM&Yw9P7Hng7lC?l{t;jb#4EfO=((~HF- z7tbgdk7F$ybw0-1-}C3=`_+bsPGV9M5)&5;r3SJHY}8tHo@8%o?T(H6LKTnA>afu( zT(0`BgtF%?SJQX)Y#s<2EM}H-iecnMtXMNLibxe2ES|}Jf;kM02=Ub)XCgS^8Ti(V zXA`JjA-{Cc3#RR?cekDO_GK?S6<*5>L0;3U6(SNC*fBh@qw4aEUa_mZg1B)EoHLjU zcCRjqbZ|#c-`cWk@4!@PO~8?;#z_GI`kvCpAryhUawMdNm@*2arAq_d@0ZtHM_ zg4I=(p()8RwynqG$;ed=CaH5wh~15>4$nE3H+@=OIj^!py8(ij9~33n&4hIN`jQp} z^w11}uYUwqEc!2yuF~c9^RN5^3Nu=n-kjiub(lpA$)mU<7oY>g3B7A5NfC>s)2zLT zH9HO%OBLncW@R-%ey-z$wHqIr4ku(BE}I_QV!P!bdF|DgU9)l1-9FH>Z+*At?#&yI z57kD72Ui^vR?SY0PEN0ypbzidzh(3ATyk_VF;bK~+5YH7qsh&5IN#Nk&kTgS>i<$2 ziG@Z>mEInO?vJZGCv_8ol|V36w~N zIJOfNY;3N~`-0u8^2LqA;D_VA<;}H(H{Im}{mJ9Z)c_5Q1icvKsz#_C z+Zkjvm57UkjT4_95o{xd?8X~kq`Aj6%zvF5zVYgdvW+^xT_|;_)jUMgs8Z^U#7LoE zFXAw$rQ@34pe}~if$Br}y~f{>PR^e-Gs^Fo8^7m5BPSvc;fvP%1l8@5b9)bVoqEX2 zBh4TT2gCp8)&BpVf9WIK?HW7x8_Gmk&uUHJp0kTucvG7?6s|p79qjK&QP2PS1{yN{ z#^n!)9bFVt|99#k>Nm_f$nHTZT(g$63yDy+RI+A!7P2sB;Qc6PD-d~2Lfk+LcoV&_G11fB$yLY{SPR7Z`RuF$cVN(>;|)iL)fFoC`M|vT2#o! z#4S3rNesKpsFL8Kzv3Nro9)hQI&Re&Syv!pPY)Flj~MVeOhQ*aUMu_E@$v+Mq&%YC z<_Uv__5Y+kNd1<%36eiq<5A(O!?Dnj??6xT)eGZ;xB;*gcw}+pOQiEUloBU#d=tJv zoCsK>>CEdUu8U<$m0N`Ou4$GerWsYNl9$kovyhAF?RHD$%BnRMk6CEF1!;-6s&ovp z81Y6yK`;*C%pOC!%Yl~;PDrG~p+#|F&g%5qW8FN9Gz0n*w9#zDvo@K~@IC{pp=oC( z6Sr`TNslCEzbW0H^(otTb`@CG7!;7qgWi_N%hZ$HjUX=s1T*OQQ|g1Xli3A&&Qal~ zN7pVyBBR**v!XG-P_5cXHAXyv$;oty|3y;djv4lSa);m72J zNU$=NkOsphtxjV@Jrq(#nDk`&v6jZ;GL;SkjaEJ9@d}#4$hhCz;YEaW);@c@%yJe+ zr#DKX-JlO`?T@cpSwLR}v(=ApgmO8vF&K?e8p7T5hnNrJ_8EfwxtbcRiTke}U$}bL z)w|Zr_oe*)dB$X#KejNBEVdV(Om!`!WIoBk&#RPoaP%SUQ05q5tJ;Ig03=@**~PNC z6fY0%k3bA6F8#^J=9JE6vidBX&SNs77gfLjhmwi@{F|X}=Fd27c*`*;IUpKCCe(s< zXho~u`k^;NuItY@p;uG)()ZKff^H+#46a;`>$KZrh?~I4B&{vJ0?#@mmdt0$IU`sj zcLe@uGF-KX^eL5}e0Y>MlwW#^ICpd!lUdJOb1qb+i&@eaZ@INN8`9w)y1O{ul}3oZ z*3Oy3(FmMXdV`+6RWErQM*oP4xcO>nUdc0;k3VZV&j}A5xD8y$F#hil;VJl># zT?ls@hKIw3+1YH^(7#|%R!!sr39)tbk*AWAII@VOYgDBG!tp;Pt%K|WzD|-KFS=pc zw<5#??mDF^Dbj4^$QCjj!xU5I_K^$APNVgeZ&X%TQL{2K6*jq1>z5GCOgr69nikA3 zTnR7&t>_Nhr7({SG<>e7QIA{?y&Ab4ICc0BnnH$!1ocj|7mFDaI%?@e{);-R&LDXm zsE^}7DnrzKmm?Jq>ZPa$mI$Mc-LAnurm!QuZhD1e4cIJpF12mTG-^f?s&?Q8d?(ur zoqLe-*Gvh$-dQd9oZ$s{x@B^fz6!JuoV4EpuPp?TnBS~ZL7WieiRRLU@Q8 z&zf9dWgJpnV;B8=Vxk&0@$Mwb^qRdsJN__vB`p)@^jd=iJF+%*Xe_;BO$9GYm2n&X)aZLruJF2U$E^A492eR$}l-LOkMLT8|HnV&>GJO?B_=|Gv1DMv^_yfDBa zal{NW7Y*Jx&Y>ER9z`F=uU%ndI9$-*5tDYBHgdk8m$pZJsEHm3B2<`JT8+v}S1^9) z7ipp;KyP9lal=B~;Sd*KXCtNbJjSm&;+g2d$86hwU_!i{Rg}TDwObSDl8R%4bnRGtDWELR560Ln~ISJ zO2`5grfp!V0Y9_;v0W$uqcd0>hMkY^fFRZy?P6^Gqq_-IZ*>@VKDI+=(h%t1hbk_{ zpbbU+jJud(GzNVn8hA0>>7r>sV?J6eCK=9%0tTq$!qoqTdKa{>-N+Z6qVhG7?Jq?Z zlKrKUd!=FF%*rQLGArFZ3kby}2u7ho!iOZXjA&vij;#zqG87o)Dp$iU2u8pp9)2f-e-)J^d^fjvp0r{ln%4S9*+e~TB8H6S>#{oGMyg3D;bdtzOYe><^7@F zoaBlZ2``CDCF=Xs7iIbcYGy*9LO12KXtmuW$q-~BMruMR9U;h{K&VIm1VZij69`2w zWsxKJJ$eP|1KXcAX(+oLL6?n1rm)5qUQ$liJ3sKenbX7ZWdLhfaCh6q?+m9|gDxBc zW0VredyGa&HQ1$9$OL>E`WiV|!J3)1Ns@fBUKEvcRgq-?+n!tLqHOwo4}1zu6i|@BVchlT4)_DG>peqRTCc?!VBF<| z)?kRnuxolLL)}e%i~c%pB^5fPt)0o3qdURi4~PME8=BOscoa zp~d){%+^FLAgr(G>k1`E#RoFT#+dC0g4Bz=!!MW^I%Y*>+krwLW;D2hnSf1lnY9SI z(7Jq9D^TOI(C^T3Mq80bzk+P1h~SFUw&_l|C;T3p-kl2BqG1Vc8B^MBg^{F0sCN+O z_r3JLL%bwNzXe-x!N$GF2@80mlPy3IkY7#Ys%X9_$m<9S3|<&mI9B>zdwzDrkqo)Q zrHbI`Er*|Urb2Gk6-hY^Zim@TZ_bW)`purCRM=dWO@Ppv@bqIm@r) zh|98c^#;~yOrvW{_15Y1cJS~NsyjRd^COW!ftrO#Akh&gw|hKGPCV()fqMsdKrjwe zam9v2%Bes+D`Zq+MHMc$zNrARypaG3_bLL2URnvdyhJ|?o1XI-7i%TG}?A!*ey5 z>xXg)(`VRjL?aU+ULm|3fyVQD+6d|Ae8$A0`8tJ?m^jnq^(-q@ssI8TLxU&Szh&;p z-FmxCl#F}M?b91rom~q3w;tz88wiM6D7gAy5LsbM-PqZe=#OD;+mj;CD%<*Mr*cj) zFH~JZS5mG@c5I1TjnSlNuq~o>Oe$nNYIP)?9^S;QqfgrnF6lE)i&glv*A2Zwe=k{k z59a?$bABU_Mpr;v<*S$<FK3=m!3oB7^xRvev-A> z?l<}Bk#9nU520Fu55;OVC3Afvw6u{YPhRKAq$TXKqi1v0|52k5 zcDwq!le{m&$F`5^wYJ^&_KAM_Cq`c>W|H)tlGR&`xxBf)kUt-jjImBpV@DmZ>Fx2o zurJHE|F`K!P+ho4jZ)E?WuUXus-*;BMKGO)c1C2I(&FN)ot>oia8u`2G%uob1JQ&- zxCWAlkdsLa49SR7D%&+dA6)&HS7qvj;KYxus zjc)a?-|yK@R8CG8i3OPC)O`8;WWVisWrl5^KYmH;&d3@X63JhV_ZvJ z)R(EpQO_n*a|QW@q;4#Tf6c}Ig`(LUTM&srY^eC8SUWKWwn{}Ju9tV&a8fN>&6Z`l zdOrUOc?(ukc&yg%;YFS|**ylWR)g}5A;IQwdR=-+8_flZeSvV=u0i8%o7d&bc%m`0 z4ejeN6v-N_DHITpH0#EW{f0yWjlwKw@7xiH4wwBt!57luL)6am@`z4BMUbV(!L>7x zbY9AG&g4*z1(79kblz);(Y{xU(I;M8j6#?1!z=q4)&@DcNUg1P^zYuxj&Cn7Y~Nm6 zXIdE7FI>Ftx^>LR`0V(e@$1Gl<2BwrwQhXfxcdpz*KjWqEuRRt(k{i`bm=a{z(dwF zY7DDZ1hIL>&VQN9=fLG`>PJ)zMg|N$+&~hek#tj%3&s5wo>db@PhZF!y|gSbyNzd8zt%!w$Eyv z4vVq=bwGgc&#OaZjIkgv*C ztxvJ{$abt$E9zS$0wIgchOdTg)FcB2NpH&V=mM_yG>P=($|#6riHwCfJl?E?OlVyx z^4~@FusQ1H<7nFu&kF8TfY&-W(f-3Y`a^;)c0(=~g`LGt+jNM%w3ysx-a`K17Ky>t zik5Du1!yt3n3BoDu~OJ*vDLq-63*UH$(y8@sIl=5-DkC;%Wkay6_O~Nwy?<>;w*wK zI#iG%U5Mi!>a+<8#q^?Ap%{ZoXh0?NM1OIL`?OlM^nUuKno`m^hZS~$tFZu zeIr^p9OOiG8D_VLqbQLLLmAB&?4r#kjY#M(t<@R4Hd{O%vzfxYXKJF~s5Nk`DK<6M z!z0j5?~Uf@U1EUYG@My$_IvHpMX}0&$DDAuf(G7Y4huhPVQC3 zEFr7#auHTM=u^1rVA9dzPx-ko>kIf2vAqs7`J598O>;ergNvGu?=Oo zD?&z%RzI>>K#e1Z&6@NYk<7|f@-Q@6^_k9!BOlkIw}~ERIK4q+Q8(Q#xea;_HB;#P z{+Q4=HXf1!=$nU0`5?;WB+dw;XR5Xh zC>-SV4LXw>h`gxClYyurxOAH8p=>bj0aDI4&6xwE5f^BMmkn*oBnn#x0xQB=7G7TM69IPigGfYC+PQl3O z44lhZ=1k^vcP*ani`(&<3Tjc7O^*Who$0Yk%;<@kUnb@|!Q!^s9D<;?LDz_)^63wl ze$-{1TSALg8(Q43Iw25EC}yCdnlavzahVG|)wtXt9QHDIiPGguXyl zM+F5$?Fb1s`gxbf-~h<%{bwgW48Zo|bRmKqAQSNl*B_+bj+$KS@J`It+`@#oc0m+v zdlrf|WL5Pp#5PS#aAc$8-Xp~xlgG3>>4g7zMx65f6K`){4)-8=!3Yk53nobs_Lto)_U{ z>*^EB*_esRXiacr8nk+|R_n3mvnCqh2(ajKE=V}HlaVwIv%pz9MWF*-2p}T8=&MQ7 zD6Z!y3DseLX*iNx9n-_$Lh?6wW%>%Y$D<6=@>$IBi@WCI!??U#H1;E(D6RO zN*Xb@SP#xGxwMoAJj53?4IJvGMxB&-HpslogGzVd)d3%}Es^%2V^FM_M|}=tjoP4L zxe=_X)6<-w_uKKNVR4`8X$LUb5wSBvQm@^>x%~>O6CD-U*6R;038<>}kBrVyK(EEyVQp_%nqY1BBIaVL{z-ZZ9flOw z@psj$u*5TXEuEqM8T`-z`2~MU_wcYisB=2gO@9iUV}0@~$%%avlLds?o1J4^Wv>?A z`?Y5D7DeA~l!&v1k8P+-WSyc@>)~B6Ti2>WF`qE8T8r}o?cNpo_sEtJoff01ysP9N z6iXwaPV~lJ6-7N`76;PV*J}{`f+L&Hefm5n3wF1!{&(2ld+_@8!7l3aN;VH{F%_6d z$n#o}!t!HI<}~t#$5o9&%RK>>HyG^f37zhQ1~Di$%?Yjc-DvZDH?CFg1*4rPQfTG; z83SHu+mByZx2HT~=)%0E5hR zerZ*#96(nP`42j~(eE<{yD}Snesi#!_)HGhFG2me$1!uq($Xv624o8RdJ1t=ItL82 z^)dWb262o3Kp(|D#6RW8XoKKo9P+P#dicdIYzx1&Ogd~A|AXL#Y*j-CWQR&m^>GcJ z7e;jI7Co++V*jic?HP3@H=NBrw|k;{bV`iUD>%27L(I6zWeIm%Ob#4JJql=XZjBB` zTFEUH5HiPUQEPz6!YJgx_nC3nhRU$qSv)06iHoKeqMU017l_hSOmUMCWr3`fTp(B) zSdH8QI9|>B!mVqhn2FGuzCXPGcwc8fS|GzbfU1{){N`X(unD5C!=KKs@;FePn~D19 z-_@?aur|5UUA9`R_J~zV=K}#pT9m4uK(H|9iTX*hvp)p9W|m&0{sA|-&H-oR(xq5? z5P1DDBT;#HV<9VsHdR*D(!4exsQCTftB|Z*-*1HDRD&Y2*H#($y7YJk9s;9@(Rw_> z+G3wf4n4@hpi;GavTJP86BRJRsd<9|D!p8uHzC){oSTE%EQ;YS3sM?j^VQ*L;X0qJ z21>K!B2;Bp%T(P=?Waa+zLIC-wgt<^VGwuUD$mB~s#VdA9t~HWSg1b7eC|m?Z^hIO z6;Xb?!8nnF9^G(~{b|%sDB?&)Hn}BWRF$Q0i+oD<$khypz=kb!nO!`-7ItyDeI0>R zcFN1U1%ZzF>(`-a57-J3Y@$!$sz9WjtBl4!maUjzWVCkuq4T&e$Tzqzzm;&G!G$&j zL2}Z|!0PX)AA zq%iM7ii2b|h<1k?|K&FuWk2y6RPH}ZC*UV5P>yF<3`rzPiXNb3UJI z> zVZ5Mhnex_*iJ&KI*1&PsDLF3W~HXTtc`oi!|ENil6=a3^m8xkDsMz~L|C zx>Me_IGau1w@!W#LdRRyqPX)%kqe3l{kBn;C8`W(x0yx3{J2MuhNgG+BAmHA(UTY5 z#e|sX?sXy)!GLz|ee z=nD0ppgqb`)PD$W*kAuVJhLc5$lqE2$5-BhcVm!xH$1A}KxRl8`89=_*VmD9rn7oo z*o1#QTz-M`c&ZB?Pd{M>)s(9!%ndb6xg)_AirOqQxXc?p;BFb&ivP9xeowY9oSzbU z;pD~}LFb}9nchftLNH1mNOp_UYaUs<#g})4CHu4M*IN>>ANiJH8 zzj`tejS;Rm6U?<5(I>`G2`VFa?T!NWsQBD}z$6_=E=TP_oCNCKfG3tV5Wh6w?k2o` z4sz{Xz`z0%0QXafO(I8hIip$OcIk3NfC=~7%tqU3!H$STEq!38K?=tV*2~P^pyV-M zVKcaRm(`$YnGbrdQweEm_8Y*{Q$~ybat;MHdEp);K&vxu*a081%N{dYFE@JwlGk(v zoX5P&qUW&ocP*vSrSdUQ60L9RceX)h8;}C_@pq_5mUPUXrYNmr_6XsDzoFhu#}w#~ zNnPSu>Um}NOJQn1=9$E|KC65_N4_teUS4Lf-UHHVg z^gB9=PhyA*_z`mh`Nki}Hw22KhXI%41y~s_@7lHWUvwPs2zK)m<|26}GxY%WE&K=3 z591`hfZc`s{W*9vgpt`|ON2qsLNvN|C)QC`?X7Vna-li>lR> zB!h{rD~BS;jvQGbz>V4VqCuw*yPpIg*qm|zLd0f5IVJ=k7!2+}#_tHZVfVzV1MMbl zR<}FkvP?1PWopKgE`-cmQWL_$RSO3CCM|d>kGKS1wo`QJP01}lxDuD(N(5~vQmMDV zftf&hWH4LWt%LC?z9SpSxjCybk??6XJ$J70j{sjT;N>@LFYv`v26`Cy5`RJNn=J73 zJ@igZdQOD!mLn&QJ`H#j@Sn3M30x#_QjF&vfDckzs4ucVCU9RJaM#jr>9@%g-vWyN zOde0*gyLlU6t$W982fetr(OXZ$^v~4;LiFE^u~Gs>v1prvVIKf@%^k0xbBsQsjta! z=hCn0#|ivj>&TCxaNpgd-H&>jldzzghdLJGLqo;!h3=yJ6U=uhIk#ivYn>?RLOfKB zh{Pl!61k?jk6t~H3^Yhf)I9kLhXGZ-1eI_IrHfUS-p?B0mZBMkX3aK~eU=2fACDMx z|3V#6KTSh}wwS!Nne81zha(4Y=fnQ~7MozSX@z8=H<`ZVlPGkrca6nXf9R19zw2a& z)En@GO=ItW_~CcnP`Km)?yXR{Jw`mfU77SCt1$;W#*HQ|htM}2P6D!%9;J_H|CUL* zju4Iq-af7QCg6$s$LU+Sd7O}W8U6_Mk4w)Z!{9oMPjmCY45}}M z8SKyu<2QC_M}I+ihvvox-+1+eXZ{+$_;c-6b%obZ|ET#2;NJoKdhI7w_;t$4m;SJ1 zrq8sj{G;;98M1Qbo!XnRa$*Ozt{hsmknJwPN%JD&;FhUcDM^T`mGj2lXj5|DB?zjJ zmQbC@F4@em?1fy8EO|p5&^PHhG#AkCI6COo=r!p?wlmf@8B2DMqH88c&}$ERtbt74 z<}74_Z;UX_w{==vLSDw1j<`HlOW9-V3nwOeqG3ccqA0M*=zt5x??mGU9dP(EaG23X zR2<$#?O=Zo_?KmPRE6J7T_(dn1v|l7?LFWMba(-`z}U#)Wsj~pXXsyQ{}tm=B0%P% zPicM$_^$dV=wEX8tK%P`T}yu{a}maK_rpVqDg}0M5rq_+QJztH>!@PCk3{dX$-I!ak}=aSgA>W`9DV>j1f_aD^WtnTIn{qLH$ zW1bh~dD7}UcTt;IfU#48m5d6%8#P`5rq zp6zDtSK;4O;YZjia}}^Ck4GNl5am5rXtjql;;rP7VP)5`u($Q^F9uENZr>;bzj#vxvbtk{?X=m!mXO)>hGM8xldg` zs(Jr!`lIYLKEGSxX6pH+A+R}mZPOpsEUEB$>TlQ+O}H$dmGMUaH$zvH$FtM0xkD!S zQ2CsqOzkqEn*=v1LKa$+9DLK%gPPn6iQMemo!hc*!l%oX^#;PKdaK2WP(8RgoX+8= zmz#PU9Fo27rfHMI!k2PEv*4fEexQ=yorOM3c8EmZnIlS+hoDmB2JWFD;RKK1hp+U9$(`TKRiRqCcZGQ4#^^*>-%_r1-U9axz7j5GoRo6k*Z&H8f#QE!AvM~FY58?BN z8{GNXrM(LMn0=Z76+Tb>7xTOd|BVVi0{Hz3canMV>PDm=m&To!B3_-x8x(zAjAE#!pF z>&Tr4zQz8&uI}R`*@p^;M%}>2;U>I(a~qx>p#E;@A~JsIb1is+6e4&69iN6ieO#UI zpVj#m)%k8|o9|3>K6zbVQpX=v$KTdA{-MVB_b=tz;2)qG^dofDH0eb6me7gtZR7L$ zm2Ka9u=)E0uF`#ZKkDa80ep_$1TuagRU7*~tXkR~Wxfiv+Wkr1c$%c+_WXUN@?|s_eYB&`>&mLlKQsFPE@FVOzb3oP+ zFrF0=d7OHN%cADE5n=ByJ+){wQe8^+G9~*|@j!*rOVW>I&8ztgRg85lYC~ML-zgz> z+8_7snkpKmpa15+y!B&0y0Ma!EMmZg0`q*w<)6Ck6s`U7*)A3xD7C@vsmvL7ZY*D( z8%>U0eD8*l>#LFjg-6moD-*pJ&J;Ul4|Hib1H$Ob<2eC549$S-_5JFePLe&T@F!IG z;U>JEZ^PLGYy)RYM_O=3Zc^Zk@GvxkusYw<>U@jpe8sl;&NSzf*Yz%S{84p$XWRIP zn&azVT!zy+&$|hn5^Gk(1YLjVu0zb3Lr)xH4pF6DySlrH-%O#trb$hrGZ1Q$JGZf; zx_@~_z#nXdtK6}?)8)^<0Zh0XDrztQhQ8J|*ihR;tlzxT?En)k5iJL347 z!vD;p)Hva11rDoq;cTt^N#oTGd(x!t?Z=VTSAlOYAqh~Y&pQ$t)Vs+&fM zRm7u0d7jHYMZDx-YH=e)rSXbW-ga^MU8f;-Yv!u;PobJ)(q+kZ|_#RJI~>wh>i?n!o3I-C=a%rWn? zMc_gyus zRpvkPI`g~_iWTrsIGApc%bcjnm?$&Gygij^B{f)e(WZ1sN!v@d3b?M`Z z?m*y(Qz)HFtk8l_pGNOaXCDgHzWmJMx<0zk8C3dsI%Qd`WZ;o}8q$1Pw)+v@l}!!H z8nC9PyNCcpm8XeOF-U6IS2{J18qE&L?3;+>4<4Q`_FZ}FhZmZ<#r%WUFYG@!IDGZ7 ziz`Jmr!<3?x$OLScH`Xc?v-!3?9u@%Gop)=JQshy;`VpM1y$RyNzqiw$)WO^4+(fC z2Z9OKPuTr&mp>o0K~fN{L-VNSgDM6NF$Y+C6V6F0`~=`W6~0r2A8w9cT5QAQX$F`i zK;INj~YDR6qTxBsFsx&8$v#pcD`>$t1y( zu&>JhE!RLr%_xOK#Ik_shlY7r9KI7u~+bUOV2K zU)__?!L84%JTW$O%^e?}Z*uW1-+1($vqQ%(TkKSMICFSBvwri=?v+HSsmu=iLguNX`a`upERM`u^9J~?nH#A zxq^mB2?d9TnEh<93FpXZSKucAZ*+F#3fzJUKinL@^!7Gd5T5>$%+o(mLo60;tZ-Wz_R^S+~uAlHU*5BZ1^>;L9)Zdv`f9G%8<|8~Uk6+TX z!3j?*zcb$kCp@jr&&{dxpH%1nQQLUJ)5`qdS#>>xr3}iU9hZ;V+VGPVmRD%u7cTiBiC^K&fr8jyMJ>lG<6KNSQKe_01!WI8H+53xX z<&BDVZ>%bipn4L46l5woVvvA^GWABPgY5EdR~>B0u8C5+>JVB})EkE8Z=JDU{qak> z-8Sah?|*pTu`kh%_f_`H_85^3V(h&1(nIMl)_?Wksmj!>pQsTpTO&>n)Cj(zMmR*o z&qIxnk_Cp-7RIBcm3iT@z}S(s9T!&E(8c#Zd+6#9&zES#f1&8Ipm9U1n7!*O*IxLM z8@5Zs+rZTdb~)G}8`wR>6j*p%8t{_}96I0$0;jCc(xHp!uU|x?UCpjbWj&Bkhx=>w z`-fY<-$J$1%=V=pH|K4EKfnx9>zi=yN9sIBUT2;&OoFO5$G6P$5oQ&YYr@t25bn=o z-9)0tm%qp9)ZdwZo!@zo*-q_i&e!rgPe3n+=kQfrd5#&O&NboO3+ntQUuXX3m`+Nz z0n7Mnu7_|x!86e@6fWON-OSSLuMqzktQnk9isiE1oKJbladJ=zLi}=`M1L%UTY{AklRV^BMD*$iBr(JBMeA0*lx*L~1c+xNdC86_v=^wX1rg zG-|!C91o#lAA&NF-)1)jtg~0HP1?<-pE#nDja22~Qy!sPBn?D-xquBlCmnWeV)NXl zi7vAqX#l!NI%6|BOvc_j?!R}ig3|xMlDsSKZNQRCKGTQjlPoOs3S660;U}B$rMn3h zRQS{Mr>O}tzW&=b_dq0Tqo{GIyG+vYos@p*M!ko}GI z9&3&#^JoJq{K_`CQ-xpE3MVqYG0%17{H`i6) z-v&Pe_#|ZG9P|oWvj>$SJ8L}Wqso2j`Y!3atM7?EuFr}tVQ40AwNfk2Hwcg%v4%mQ zS+)vZnPr9|UKyfqs=+SATp%KV-a)|ZuY31ScOktHNe9O9k8K{_*zIKzn}*KUW;<^} zf{L$fuB1N|UM&&U za_8I@uhSF`8>D1+qI}I2b7prT;Pum%Q}y4S>YM8)TqW5*TT2i zfS&}Mco626o+VgP;ZM__q84R1!Y^9j_tB3Mn=Zx!uFeB0k$GgUYJ5(x&i$1--+c4; zm&CUDPBV68J~Cc=l{)@dbG!^cs=}{qgC9`gSGB^qU#svNoACN+%zsS-uB>+j*82c{ z{~EHN`Y+nn^>}k#^}E{OX8=D2uA=I%pg>Co5!j&`U(iRya7|Q>Of+sloU>gBt-8sB?S2(%nx<`eVr*W)VKbE%SOiTpGD;ujbMm( zjwFVUFKnyD#YBlYWa7<2cNrDplDjWDF+P0iZEx9GO&3xBMzCjaCzjXj-o4T1o!z<( z`;ynG`6uifDc9KVA;!;cXu`Q$Rrtv^IHkg`SK$e=Ulsl|{rmcN%0w>WE^)Iq<@Wl`;c{`{Oi4}$y`U(YoY+^x*#by-lAZ7B9ek0#k=d%b&MHAgA@Ch6}?hapZFk0F*wj9}Cz`e*lCGTig-8H?SZaq1JDLy`U~7IsYJI4&oNDW}DTd@8e9m(LZB zZaic2XopZ2b3-{(K+K(ToH8rtc5aXJL-F8f*yDC|m7}6h>| zoRTp>;Ga|BCz)1wj|#tDg);;rD*S0?L;YEKo>gt|_cFh)-$&rD+_?;gMoLcCXDPmB zq?h{XyZX=cBfE`QRFyTh&OuHb=8#X^^wO-lR(O#bdze?(MD{==hqAXLZSYU4@S|<; z<-Oh53UArllgz}@wd(I80--Vg;nwk*TU7XoRyem$h2Koz@`?K(dluX@hKRTBnkX37 zrZi$?1&T6K;`D-56gT#<)L1(|k+5TO{*>dVuoWvGI>KA8K6E&9uVONsP{d@kokI2u zcn&4&)7_D97N<`{@eq+uZB0Wayv$!c?wJ5AUR1)$72F)QYeZv5~6Y8=O{ z8Ni;L=3OnkYo7IvovT69H@ zoO)>M;yd@`JJTl7pAtMmeD&qCqi?%%kDo47kTC4_pl+1j5wtmmqy6i9lXeC@zw9J) z*Ie!!K-Rm}Ze`Y*lA(&lR_+_}=NEPk`%-y(un^*Dnq{mZzHnK2WPWvK;LtnP?)>-$ z7rG9XC%2VXUNn=%-QBtW3p-7Co0hWy7oVKWCIZQc{R1fdqqn58SsO~!Ig$l`XG$XH zQ^vmLr=SjkN_NJ>+Iqe(!KAoZG9yZ*GNa;Hheizo!jeRpB=hc*9csN%VX=Kn*=9M*QQ@ z%+ash?@tXl)~(YzcEM)x)S|im>!(MZ8Ghx)s+mjfpmcVSj=P7p|Px?G%zH3{e;D4O{t)S{z9dm z!C-lD*N`t=5>h=eRND>Oy(ynnHPfvgLP0}4Dw;V4hAM_!zF;qR*5}rk zeDSg{wAi&#su{T$6MA%S{d|@7}mV^p$xQ-Z3v)Z))_pz|hX|PNyu!5bmte z29kL}O4*GT4J}BbfMUmtQE!e_#*1f+p}uke9Z{uxH4rTaErp~Q^_Ue_b6K<|cia=$ zQh@W$V9OR#W~W{9NCUgak$8{NZppaKTTXd~`coSvq!F6oqcaB9B;&nl7i1ai#lX4d zWzgcH2Jd}|Iim0$cO_eIzzOdG-p+f3R_gau-m2f$G9TeB<$LPqOTpLte3|#idLC5g zJxac>uJc(Hez+CRtx(}Nx572|s_=W-;9eDeBZ12|>W#V&FxOIVrPkC8Q~9a9^RjJ` zUgc(u;AVAF>zS9Ig$0)4?4}DFTu8mORY{Sh8DTtl97qxUlC1xNU}cftR|YqfL1koCtjmvC|I*7O0bgsf zI;}*Zd+$5PP9EFsw|L^BMN#LB1y5%ny?fz`w_H2Yb!dGBEwQB3Tkreex|#R062mdt z?8w?|{`kpThC6mwXWoCum7lfv&4-`7Y4yv`7j|x47eN^Yybn8|#J%HzK=1m>;KJT* zIYCf#xZR!oTzb#m9pl-;s)lgM zO)_^K;;v%;MdltE+baAt_tOUT0p})F_>tD}>O9~^0++e5`Mr~bdg}Mikol0A^O2=* za$jP*(7)^;HHzv0YwZ?_%jKpA_Yv}fl7o8(uODOwr#H!xXL{NdMqJdnMXi#4j^thh zM9GzKWn;SR^J!!-;%U^TLoMHRG6`RUpglyDmyM(m!MTIhN-O z2M_F+$P_0xCMvtu4mpDbzt#9SLxc~baRid0(PbhP^UIsBkncBwSq-r^ol+>vu4R5J z-)~uhaTR`=y{-{Ki1FO43O}Nbms;ilWeJ>6w)wsKEp79iA#jDV+SQ=!7V0Rqxn`s+ z>+N&h+T126$6tW=def%qTyAiB^$W5BGmXPLh;+SHlAlj$kXbJLLoOP{b@FFZ8&rl< zFxq@QC;#6Po)6{yn)GGc?Sn@uqq{=8zq4>22QZAGFf#o=;(+MHSf7if>Bl%u41}dO z<^%0&%}LPpPL&USt?&V%j|y+$1MO;VMuihTP{vCw^C*1q>vle9o3FtKL~iSkL2l0> zj(WpWJydz~Atmr@GxNf^4KwJp@X|Ajts;ESA0xs^w3y=cAgP^yo)B+vLBoWSq)DZE zIe@1j%~6N`&l2a(P|B$ZUo>Z*ylUS}VDpzQCt@9ikh4SQNp+YJ|8%KdoY<6#P1Pz^ zs3VUVy&fqH(JuO5OS0>aX|4kuPpgvs7m8#j^ibg~l3jm{n^NIKva93Oc@)Y1i+0K0 zHeW-sBiHgy?i<|aDJya^i_dZ!6E=-wt5G5SR_1e0O%GCzxS~ZmWQQn{^kfqap2aX> zDWpIZVscI!88EUJ0{1ims&I5+s)%3tATIL6($1CwIAWRWlcye&zFTLjuO= zT%~&b+izxW`#}BDp9Q*ok*<Ch>4Ejvl^q>j>JRu^Kz+XNo=vyv6NDFDpI67*XKR zs)x731p4V{PFub4_IoBPhqqKc`9U;M2$e@-;$St|zyF5At5-k}d*gW*=XCk--d$q| zCsO>tgAYG2AjIs>4$+w_6kU3Q5Q(NFi^FJ1#)F!{+irh*Z*WBFIetN{G_^I8-8?%% z?&SvdK#lh{PVIlPbFTqE!oD_qp1_F|#>@2-_jOQV2UU71G9zqgkYEGzt!Ikk<5fxs zD?||FHzbI_6Eeuwi54Uo)!(Iw&wFVU7LpdrL`9>D@3>ra})f;ZVSH`|n9HQ3&`@=DD zNXGtwQeRjJx3>vq?Tk@I{R0H`QQlb=Q@gTyeG~E4WIUi5y!8$R@mC$Fl~!%dWVWtb zDZjR4d;#wdDtKp}WD(2U#G?v7@;dN&0$1>kf`A0?^VGmo+p@vk4ZQDWzV+1lF)El* zu#Q*!Ij^PwrW}RyXaK3yxU*W-8if{I^E|v6Ep)FU#z#8dHftZdW~6t2 zde4`>@l7>!OCbuXN|{XtWWD}TWN|0Eg7j>YE{XnqH>_lt$MjlX+#BRMS+ybL!O2J_ z`Skw9OBVN~UY9_(-Em6~IT=?eCnGsC(T~V_InE211tmUsK7|OzRd@@9+TaZekrSq! zmgUo>pit)pq4@@d<{_N6t)@a93Q&ZI=n4#KYa6_*Bp()qe;78ckhR+i? zv0A+H8O;Nl+n`l+KD#;1&CUk9Ry@aiv1VQz-rIG3*O@N1D`--} zCFXq5jT=PG{Z@j=8*R%qiVqXl3Xy!WVju(o#1~Ndg`Ky!yq0@^_RyB?5C7{uBNy*n zDWDNv>7t8|6#lASfA>(w^p0$1!&t_X8=TsZFHa8^QO!@#MMa;2g-v(y@ENC z&bwX~>?odJ>PU0_H=cfE-{E&%Sk-G71UvcN0_#eJoa^uW?4?IO_KrgdXaD4EI6R&* ztJ5A=M_u_wzpTAn9e24r?louA+@_3zW^xAWx?Zu;v-hx{K`)i=no&nl=FrNOe6F9c ziE*)eUG9<`ljHr0g@CkRCl&(5)s3p|Bqz5jYZO*i*D7!kMMEMYhF^m{pnD9n>_rK) zQ?euuTz&gYa_9bi+2$=bdrQS#N_l7mCS240_ z$4&+jHnvhR!P(G2&W;XN2K7zoG~4pkTC})p^K?(h;fvX={y-GnS3T)YZ)ELMkCEoR z0Yyf#_i%AwBU zpo}HlA+J`Bt!5u&{sZ?wzJ?NqQb71iA&K4cA%(%HsiWdZ?!e;O7Q?f9uQ?! zt{H*&O+?O*9!{#l_nvBzruWa+=*XQD<}8vWG@H4sPhS z1+qT(_@@2cXB_d~WUME-9MbO$#_g7X*KUnki=~Xgmy!xYQCCMfk4i3rv5CP4HTPqm zN+#MN`g1HvV}}OFKFB3h_%Zr(45C{=%@Dgho}6loCwe{o;?iZ!@5%N#Wxn~g`G~Ji zfnV92PyQWIg(6*QS9h-3^4&|W zdU&_biDVxa%O}D@YJATn*N%OZ4qRdldhE8Stx!rCP?G%{SrPb`^dMa3#95bv&UB#uM5wNjdUJnUC6 zuKvzOb^PUIz9yVqr^3%L!qN{2oI0kxMvjL4in3nLr^yi;EP-pvs5iL*y{iX?ZNx}t zSagW-;o&I}nYM6NA&6lLNAnA37pG8qQ8v~fcu29h(#oq&@m4w;QWZW>qVEt{yX;_x zFEfP*Zu!m82qz*mMp4$E=%iFfz?+W=sF~0)5|c^;t6%!(rITlWazjTVpfy{aHk3Ew z%g6rm-i4q2=qqb!)^4+nWO-j=&ha(+MV?)V}k{0 z{IYvz#&7Ji@J3cJX8Kmf`~EL+?*SOcbsP+Dz1zFJ-MhWE*L%S=+yMt1Z~zD#0HP4R zvV#Okv4bKgk)j$!ifUG~NcHlGq-9I8tu9f`vPzs-wqwiXb9Zb<_7}%?VkQ0(m&7KI z-@Lbb2Y{mFB!8UWghgWZ?c3d%H}mFA-8r7KMhijCrmL&*r){~BV(*PRN`u#YVr}P* zgVq4T)j2o93E)t{)!nS)+{G1m6^B4Wj6*`0~Le@RJoddf)1E;|}~>w6>J%NM2BPuqWX;|E{jpECU*a0%vTL z2EnoXFjIHH@0D?Plk3iHt-!1IqqPh7W4WSUNAqhstM?s1*U^3DBTMExRhbWu&s4`> zUKxKbv}F7}mGR|^m%vX};OF3dtIvh+e*b&Xn^+{*%IbGtPeW`2mYMh!(MDnWh-%QOZlBOpGS5D2&*xGiEk&SOTzx8}qaZtzyrSodxy{+qqi_B1Jxn?NqS!- z5CG(wHG9K}xLZ8bk zA{A2}=-j}UB7xDdh?{#j9d6q@73BSSXU$)f-QL-9lO{-gF<9`|0$g7g|k&-1jcXeF#HPB|oyMBF!0{qoA1YBEim7 zH*Xv{dZEn#tQ&FajCN+sT`OyR$-LVEhaECv>TNEp>yG7z)+Ley?YW>7^@R66`1X~D zKeaU}xx;3S9=YHg9!Jy0BP&)uddI#H#1>FcTlHAF!zN``)Vm$g^bdkLXMQ+8dE2&P zP49+12V2)Z*V(vtUCY4b_YM|!ZJLfCZ=02CncCL4>YDLbW^iM@IcIm)Tk#q|I9pN0 z*>;4pD*PX-@BhxaxSgLf*Wxn&1n$>4t!}(+`SsgN!&f~tQn+`>p41d_LGF;2o$c z!L^D6$C4K$J6pjTU=?Exuv(G)SdyanYDJRnAn!#It|Hk%n`tMSUgnx(HpUDcolN)y zPzzGcL4@(Y9dH^j6YW^SRZ=S}rfMYLkSh^ctVyu^sF+ob1`E~3)Dr;`Y2+KO0z~_< zLqo3mbWle+<8|a!SN-kQsjpm8L3!JOoHyA#b6H1CZ{BP6B^!>unqU z44@E>R;Oos$=-UjVvRBhC0W2NKl5I8=DiLG8+i}v;gf(LMMjXYAS((YoT|`Xu|z{` zryAnOAYF+y&ugilQ{Jw9EBR=y+2c(3%;cvuVPAai_-hBQ{P;ylvnM1e@<8^;g_)~+ zWuF^`Wt7c3^#4=XAR`OT+pVBiGLsTKAmT@+6k#2tSus@w1%<{8Zp5 z!&=4LfeQTWor~~^Bttv(GdNp6M1Aw@k5IHUv+*!FdwBjZby$g(23)riH#7gvz6lW# zR}#6BW$)VQ4%Aa>Y}dAJ#v(y<8dV#!v662FvKUI!&(veXGHlAI>lh#z#pWQB23RLi zgdrG|WaJ39Hx(iP!Nn5Q#xcmyk6S(CZ9A&k&0zZm8IF8#xS0-wy}~K1onl_oh|t8o z*%-7pUU%mMgSWpuVujo@7Mj?jjxivKqq&~9ulqP@UdK{UO;?0YMwBEWi6&Iliz1abuNYQ4KqsfyvbldSm>&*s_UaFU4GpWVyn5fsD35Pj@*9(;$p$x6) zv=`TQ1flzbMs_=OIxWLW0Z)FzSSxT;1^YlrFf9RR?4^z~trfUNUxi-@@C1UFS0idw z;issNq550zo97Z3Ux&y4!;m(bxP zqC<7ON+00to7r9L9>P`<$lUtUdTMMvIlmrSwn8cd2Gg=eYxaN^k&*KXOesW##@TI<}F)?j9TgSmZR zB7P^W(F5ZpQtZ^HDw@d~8pL02EYJ3l{fNJ?cJ_t_@s|QWNM4Hg3+x0p(14>V{1o}* zxn0%qNG>Ylcfoj&i(uyrE*XC}jNkuZ<3Du%X-b3Uuin4#9(Pb(NM5M#{h#@sOP9Rg z$tB;T&X42;WdM2MESbpMBw3mqo1|tZ$@xig5{nEhGn8k8%;h=(Ofdu^(I(G>NGV6n&+G8W+(})M*ky!6+w(Gv5iC2zgklO*;&AP z3dE@B(27U^;SDlD6$nU@vuYCyJP_GwK>wyc(|ys(i5$&Xtb)&-n%#TtP~}{*>b@)2 zxtT=ore$?&GNMsuvKn;jZhiKR&#lx6NGynRpa1O38z%0*?Pz zqq9Phcd(>@X6vAFEtVATU`e6C7fTAjBuE4Wev15MRZ_fzH7EtXSW+w=e>aS;NQw)N z2T8Gb{L=ZyK~li{szg{k4y`1x5Myrr&wbCOOP+Uf$@i$=S(Ow}C5|j@AjdY4^Bc$w zRlP!aD#(a2Vh_<(vacS89-aN;&D-%(o1K+9|KuuLA~Uc*?7zO&6z$@Cx$)n)1V2!M z{P(R*_Uj)gNGepua$#9jj#R0S<%j}bEJxm1H2$6nl|hayhM%awL5{qG<%lwmB1e#~ zX0N7)eF7@uUjo&mY!lmuJNggzQ~et@(;HmyhgfEa!|D7qs)^dCM7JomBNS1sgvlda zQaLR~!LosftSA_&K2gmPs@QKKG7q(#0^zfe*9J;xUMa#ZqGp^IIw)!yFS^#w=>yIc zr#|)c%A4P~vRy}0P@vM`!4}=@p68C7M4>AD6!rUa z4b|}r@JnF450C%JlJR#}$Ioe3Xr6+32Jv%uF~4E4H?TYka3mKL_$hiF^z}w3LNtCH zBJLYX#{QX7goEzotLI0_Q41<2hWy_aI1duU)+O7^lHCRN5L9XeuLpeE#}=AJ)_i5F z!MlxeXjr<{K>bG8YP5y?)QYZv6qguCLUi%5YhV2Nt(U!U-Rgp!H#>v{t3Em=?*GQK zH>WkZ!7a^Fx;ASSO*%Lt=vLkM?u>MBP%!i z9@7adr`nJ)l zRRSM4K&<`~^nJfv|L>tPePJR0=OzAn&>Stgl}|tU#3X2roN}D}6dWi2tgGTfwgS)u zDl~!>Fs|$ci&qTZ3l#W%=7;LJ^8adA;JrYB-&0u`<>4jp6BRgGd3Y~S#vf$fK{_Sa znC{?iXZ6GsQFv~w7MusC=f=i}1oGY+=JGKpVnLXCmzjdfHejmS3&EU#5^TUOi$hwl zLa8x;p$|lSbxsOE)|^9@4kBS>%aK-tJXZczuV*vNS2NFy>l%bJ~?Rl zHt@hlFOTa|D{tR@)vtf@HR`v?z76^8M(8k3o1u0*#ppEFz9e+55iOM8ZuUl`nJK{} zNP(>1ly6<;@=kBNw2cA#UeM;tX(Pic*XNBc)W}tYU@4>@Y1go3u&NfG&kiOrvIYl< zC_E<6Ps(bQEev1cc*U6Yk1eFU&{ zWBF+L)=!mxP*K6j#?$0MazDB46XAQVTELJiXi_i)eO?s=)hr>>m~hhI`>Qp=K) zk|!*!pS}=soT(4M&EK&mVlA=!`D8yr$?3WN{$WVTLSZ1@;bFe5fp;h-MIIuXX=3eS z%>v?PaYOS8rjS;FPARaWaQ6#*NC|#0mcR}Ldk&mZ?0C0PeJUs}`dh27aR%A~&y-&( zzg&Lu)$-q0(UtfTc_q1%T>lh8*EfFgZ`B25#tX`5u*!P8p15H1L~-y{>M4<1CgoItv=`pbOjzQzgT{){P}y_qm#oQ#G#83s&eT25&GS~0)(!~vRVb9 z$vVjDkU}ogf0$7h&??v@!(z17B*Hu|BAw>kLl83iCNYTW?YUBV+DI%j#*~$4q~1cY zofXqIYWP$+7OQ&d63-I2FF?5AV1xp4cz~j!T2g7)$9X-+ghIjDtL|H~`}pd3F3LN+ zal6|d9oRSAe)ZlNA19bh0;2}ZL$@!AgggeXsO8Oe=IZ`OPTqa#fM)2Xf!c|VXxsLi zM^-;I;4oQq`N5gG_H8R_JoSCa@MU*B{`iTKH6odjk0J>^3V*Q1gHuMLUc8UM*G4pE z=vV`}>!2B2OJB*Hf=cB^GP{!OSb2CQb#mo1E2)*Lc7S#sxWk~~t9R^OxMLmJvF`9X z>g2j-)=`iog6+@h9c`L#SMNB0?{JqShz-qN;2yOi`q?)S9bkuBhj+MBRI2=Ob+%oL z;I~r8(AgNj*JAi>2(CzBavtc}M%Z2;a)K&T1jY1;Vsn*>8Q9!Zk*^S60LKrkaxPGB z!CghxLvv`I zS+4{hDCQ_+l1ARb%5hPlRh}{=hdXKw8o_O^+tyj3RR638DmYLOe#7f&r`71z8{q_K zRf_rxWiDrV=qy?qnA9~dq*#IviF%@s`vampk|2r zj05-%l{y!=r$U{NAj|^)>{R%t(uV>fLl)qRsIvr$sRQ1K-!ZQPb-IYei!PdIF~T|j zi!aaJVI+;lrPZbKkW-7!`bxR7rBUgu9bO`(`YTG z*tV;VkMFr}CQ%;-$!N9MoVLi&{_*xJ_pI@foMbX;oEDQuZy+VNq+dIIDw9iGlytSa zYA2RO+IHMBvhJB)*~Ia>hJiJi*6qVkdZ;InT~~W4$&#AiZ^MM-zh2(-?VD~!(gS@d zrsKRS2k)!UahN5HYPd=j^$tWw<&M2{^^OVh@WdSx)X9lwCa8(???7}^ z?l^$&Q0aJqdw`D6XKm>0i!GCutaWhdU87B|!rZ*n-FhpDbMxzlnez3g&L6$Gp zkU-fseYGB&U(`5f#qLryz2LL-d4?A_YAb0)6|0Lv6;ko$t4cW3et}(W!O4%@y9zt1 zaIHEV;FwDR45OEl_UdEf7vDRRfVQmW4#A5a@?%(qhaDf`rU@Y@g^^o})Wze|Vc zn~4#k`Gr!y0ksNvdG3^fgfe|fIJ8#l>2G}<*CFeNkRlJnw0EHVO4Ms~CWYFJlGwi* zu0_5RP;M1>EB2z`0`17#is}Iu8sWrMi{t0C8l<2gdifYSB-p)@(UID`WkWpNBql6`SYaW?*Lo0RaXa}N`soUsMwSs3PU+6YDsc8oRrqcgk822k)cYxP z#X%8Twa=v?tQ@eLPS+8h2D4J3rU7;w4`HOf@Z6jS!VYofs&Zlltqs&S1!Wo*Wo@At zB9!rkSH5b=T(lpN{jR=&ZrQ{_@*8cB6(W(Y^3$FsXz^rk9b8wa>1>Dzdcg$U&)t40 zymH;zc;+J`>h47T#+{4GBxx61qIY>qy!BrV?sTyEimjcY*70nl&F>nF+7o`WoGAD= ztgh}-fGf1`Q$J;X1mAv@imR{C0|Ii#0W>xYi5p94p(2>;|pAaPoYLpVX z%c3KNiY?_YwYM8!7yV$If-R5g7AzW1qQPgY3A#DQ^1g0zd$=i=wCfzcusOAE?Q}$L z?&ynE_VdmSUXT*8y&b9c=9YvxoN7*x4W!#19O*0Q!X)LmAHc;vQO-;V;QnNMG*wR~Xj@7ot0Hr>wZ=}Cj=dP)>$W3+OdovA= zY*Y?4bq50-ANQvq*%#O7PRcidkWGGi_U zyf9Er(|VnPUn)l@D{$&x7QuTEeib~TN)qb$-Bb=$k^r6m1;&i}MOklF=W)_{1TXJg z1c%6J3gB?Mc?c?uo`yU_YIY@wjx>$QekGKRMtx@UUdLmLvg8l{wv&1K6>?C&dFbzqB^F@^Hf zFL(=XlxdT${?+Ay-sL5CZlWz%+I3^!>SsrAoFFQ+Shr$Nf5cHgn9t7d$JSx=^{8%_ z`t{eNuf$*f;`_fIcAyujIPzL5SYx+U@7rCyZ{~vc-2+%VRk=^IT)hutm3kMj3eRPD ztn-cy%nwk%9w6rjz77pVkmj=wS7XI=Vh>gCycXY~MRcLwRV2}(-hlwG_6$V5{!GwG z;yBP3o`~S^CDmSqsCQuX`l9;)e!(7&s3&7}{K9;=HzRrvIMIB1QP0HciRQfChL!ig zJr33Pe*x7+R^M|kyk|RL<_6+ROgr=*_K>F5Kr2;hoo$6+OY+yPd4){fI zxDK-C>@SeKLHAKNK|hE3)6Qm^fCzllRT9UGHx1N6i^-XNsL3Q4 zE0BH8js!mZC~@}}il&537unR6qp=;-6!^(A_eAWjD+@YW&@CYIb~noEpcgN0D5JTFe9QyAveXhuulgV4dB-e2<|Z>nRMm?JXr!m&Y?I z7840})M|~4))ro&zI=MFwl*Ruw#5kcm4NaDXEyi&vn&*M#ijH?fr7*Utj!}*7NVdn z)hg<{-CoUv!UV^flv>TEx&{_hE9FGMTt~Vahw{+yLv%;w*qTgeMR`+h%t~7PHFmkV zP-~zj$d89t&u&cSw(Z_iC~nJIwA}6gv>}r7H}u3EPC?`Z2@F+|&KC>{t3H0skS&a2B* zHmBE4^t%|AW;LS5A5U9t(6ZdBYdU)8$*EweIcJh9_@wX0_?!lO8d}6e!fIt#(2?aH zlm{@kycRN8J^-gk9YyFwr=I0rP#);TL6tacQ-cg%=6I5;`V>s6v;vAnQO;ZPtq^z;zMC~Q_Ahj7Rig8 zBP*wTv=lSSEp07!1%IBNT&$X5V{?x&xIKB;NK`&>wm(G()mSmc-qrGYKz>Z(~yT~tW4;7?zo zOwuQ&_KvlMIG#7^gR9m|2b>X$UT@&#=C%&Mv$;VpAw3O4 zbqvjjZpi=JP#0@2uXNPb_;sYkS7Wmmo3cDJMm`c*HM1d=+qHLZ1CE3BMa^B;7JT*o z#@?92We_>h$nnrb9oUCo_voPkg?&CEca2N}`$R=&vANMMIvGkFGI+x^4$MHQjzoT> z{C9#QY=@HErt0~{W|v0`$+eUH4hG88XpEdco{(hOV76*ouRs3qM6guMNe&gOpNHKJ zNu)JIdr4pi2Yba9#6^)_g@t+}3T`8jbd!SHbQQN?YEY4jOIo1doIfF!79EL|ls$Aj zIgg998hWoU-=Bp3nkH}3nVG>T%}rUT^AWl+wdtqTriOq{qsK0ij#$pMd$YnwBO!NF z+HDIZ?LqP;V5LbPBSnqQmbPZQ=wK*e*x6GDtmK!|oyi7ZB>`Bet-XpzyUh?v)_F23 zM|<3RED9_6M^cgpet4SrPNm}+cyv$>)3eGtrmXa<2;=3S&?EFi zL@)H++f1}P*MUlno}TL%sfU9G?E32l5{Tg*I&|suPm`q0=DmVdq zf(UO~f=y(EfH)XcA|Yoc9Q(A;kWVrDV841OMuyN8yj@s8>cNq)zHpReD1RwgS(nyy zDq+&c>RQ@6e4@eN^+CpphGpbH%o?4Tnu?oJ^L5scQw%f@rKS$8tk-cya+J}!+M2V5 z8}9-WkJo)d*T3`HZe!EXhC;0N3f^I0z+~i<@~B-kbd;hq+jsAro$v{<*1lkJJnVz0 z87B?NJ5N%S7*FTq!j|Do-~QtRB(<7#Ol{kfbM&=EhdXM{{GoPv#zE(2dXq^7`xu)L z4GEP!kY}g-0`)8E3b2?ZUMP5jY641-dgHXA$4nB+ftplMSp<)95sC?uS`=G=!pvl> zMDwWzbqcBkwmsLj5jYK^EZWwR<~TE$ zQMNn=%1nIug*k@F0N=f|eAa!$O}RnY13rT`?)6aZ9BqXvr-6wD8@VHkIIYTPK-mj$ z8s1*2oJQ?s+m4R=M@M_?Xyd<=j6KB1@~x%L3Zq$d6+WAcn{4?4gf531z-fc2sjFAk zbG$^3(^~hkVooUS9L{p2-QzjAnAfIb4mT=%PT6G81U$=<+1(fK*)r`HqAk6F>0WQC zqs>8U7^uGm{}ZF>ti5ULaBXSl^*tnYHS1b4w?A(RB^yHLGaJ&sVF!j41ibb#wpwHS zqRze6SFnHNDE%Hi1C@H{H@A|bTgk0h*T(mKoVt>&fpI9*KnvNP6ZB(MIP&Hy@Iz#b ze(O)d&zlFYY?z;Z7Iv^E!uOmtuWVAVeqZt=5;;(K;60!&LE4&X1s6eGR#vUD z!;@(D5>Xf_>W@eLL~JUR>xkQgq2gvGZ(#i5q0t+@*<2$XFRHFZvZ(k)OV6gi9N-CnoV(z~p7qCHaEzc$mdp)(w4o!$vuzaE+p zOsJ{?7s+>o3m0!+H_*sa4Ef8{K$G7cs}bZ>(8lV7E8Vq$*0J2c^%u2{UUO=E{ILgb zx~L^ws}-QTk=+c1&O&Vyv%3mWKVS`g^|!F?R>cM#qbF7P&+wTM!Q*Bd`6#Yxbck-E zN7d_fG_s;8_uWC9DPMH~_^rf0oKdlMEk5Ea#I@lslj+5xXi83!0%ABZ- zG219a8N-V-#8i+dq5@Y@Q$`)EjBC@2JSs68tM~N>%U%!);Vbym>Jwt7w5Ji=}`VQb%v&(0c-~mf1U`!y8R+-0%9~^tY+}ldtLJ0!zfG{r3;@9@xdSp+HY=A~!`gPZz z9APPcaTKlFmeS6fHq2daha#|YO~8yY?_qUZO8*Umd|TgD`L>?=Ys|L*r~aA9fDOCt zIVVJAf(_g0%&=x)+ZX2qmd&J<;@BBbhGIk=(m`iqWDH0Qt{TL@N{JQRK@{u=ASsbz ziTP92kJLVFd2O_c2D;fiedyGNwuh!%;2w?S+e5`mc5fVN2$>%RUjK19m zZN}9v|1tA73tvv>s2{5EpP?=-7$cZRagQh9QR+Jtj8TZ^6pR6no;`B`IO0(h=dNHF zaTbinJlalu3G-+V*;C~jz&7dvt&9O4tph4REjpU|+9-JvV&7q)YInl(u~7R!o$sSm z9>$6VS3ApAsSs)4-7&R z^1uhL$f2`eV9iVieD|;LN_mlbt$a12EIE78{6)|rSf$6%xqUG124x)H!x`#ESZS>o zuHKI|cLiQ|9()I!*3ftb{?qC_yAd3Fuh9G*P#eFkr0bU2C6OKt6p`4o%*|)s%DkJQ zGk+WS=KvK5tQysV{Cj?mf(42>e&#FC?f{v^KnUWU8uo6;s!^H)!!C{x4Ym=KsEwSn zOZ;3&e?sRbRJ;t5Tyf#sRgxzb&^;?hzodaG<%oiaGSHlMg$hTM)gU!@VDsMsadI9;QK0c-pBCT;d|FC%wLgH?`WY1- zcN|4<^nBt~RGk3kN7v6)ukTQOc1y0aJF3@rpMO8{>46VUgPvQNZ;?-~IuH1VZeYU; z??-+YRVY-Rf1&aCy%yg4$obDLU%G%7_?{Dhm$i7l5Az8&R=?xe`{n~Yu!ZXNYil6ek)Fukf8pz{?>HMv8_b7C3 zpKqty7ttB~efKEiVE#kk8M_xfAN%LP+pBuajv_dI{$HG%tzK`fUf+Q{YVW%ayN7!J z?(^?Q{ylg<4Z2>LukyZ?dDMzkuQ7j3)Dzo@){?2GWy_Y1;WfL4-|AqA8qul7i;A#e z5Jdg?@uEL=eFa5G<+1AwMAky)p&ELEgL!bsgz8_(qZ}h}uT{30g~CfXoDE6DiUkRs z9H}Qtd)IYaS!32F7fap#iuK1?fM_3cz-`x28k67cfD$2$@bO#H9LpI^>n?7yGaOSB zP1c8tec@Q0Rl{g_v(IVrIYh`>7unc z>+~4)tX6BcrdUf&(B=@uoNQ_iMtYktD*cb0KObISZ&j}!KmYpKe_ixE#2?=*Z&TOB{_6Wy)-A}v z^Y8y~|1!wwk21d`KM&EEek}iAq7RmBSiZi>{F44y6@G|xl8;p3V^#Q372aD$<0Do0 zjwNvD{-(~q8^N*v7sivHCsq*Q=bP*+kO7V$a&V}&+rweiC6leszGr$5h4g{KQ^|Eb ze?P|Cu4=(xnrd0Bw<~)!b6-t=Q!v>+(4OSYvLSKPr~h)>wJ+|=TfAYD!R7;v$m3|< zcKgcOox8TL?zL+2y(2yKEN`+mOt**U+D_5X2alyWXa?*und8xrkQi!>l;&<5PHo;W z9k5y;;<9OQb$alUp}0=6yM17(6OGW}-Qc%aGMSX5m(b2RboTBg7>1qq>~|GRvi&sJ zA5_d7Vjd(rD;NffXb`;eJE|$GjyqDJ#Ch{RNG`Ij|h`l3{HbODzW4NaF<)glpQg6js#j9pP8$B-*+Pyh+^H( zqfcZt=o8QU9(`gUzszSGyzY%_O?Q6pqkYRSzNL@!Fa3tl)KtISP!sn&8OY=$PXfOr zT8FlC4D%a01{BJE32Tbv5fZN}{PsVrzWp(H`xmNTwE#a3@aK`l!cj!+An}xFrenlU zX&aVki!>(|&IIc9| z;l~jisBoCLih7aOfK|a?5^Y@EUnm&;>0N%Ku~j1SS-i7CpaMERD0?Psny5`VvYKNP zigGr9&Gdb{<|hTMV37IQ+qQJXEDWz{YblL5)2-bDk=B0E2vNt92aKlmQCr>eeur9&s6?Hv5XOb7j4!ySpRjtqmZ>?UF9Q}&G2M%-Fsf9$;LU}Ios@O5P4K=&)YphHX>z8|h@+>5S1 zMt??`pIKhHeu4Wzx}p1Fb={8a8}J<$o(GMCd6tg*;Q1EWRG5>GlaC`M^iR#b!#LHZVmJ)R_XLKlnCk|7qmwm59Fah$mu z6pb&I#JTQG8!sm>-?M7f9@u1JCRFADkwSgT z)ua|X%|rEO(iP7^vD0_ArdQ8wX@uhIM!_X{y>^{cC+W?;rr~U~v$f!YAOWFy{lWH1 z`BQ)Y@L=fdCB}fnLt#g^3I6uUV7>iE=(=j~$#n*!DPY$7Wt)q?aFJAp$Ec;LU?#9C zmt1BQjG{HVuQR+M6RQu16iI7z93QC3x!zwpwS2t{S$)y4qsHOkp>eAu_#?8%V2OtL zfX(4CSf!{WC>9Haa-au|U_A&)7-(Y!avez+ty!YH46=$ICZ3@Fh~Ya_xEaCEeV^dz zAF)57Vvg7F$&VyM%n`83k#EkE^UA6|cNUG&K>ma}<`D5Ba|<4`kKCuO{MPa?eTID( zl*!v3gI?;hT zpdcR+)>KGjNAgv&U{x0?PKLusas#$(9WrHcu^HAY)A)^`i5nuB_ zt<1*iygXD15%f^Ul{A^t?Dy16OoN$+{%T&Pc=>_3O#RVgcXoC3S~LQ$aoCIkWozsl z&eV*rn_J#?c}vttQCy^0XbMJ#yn->(KDmB2Gkw?LJ-PVu&W^Bo#rj>_*M|&t-c;|1 zqDql8!83mc-Qi-6H&sdvF^_{SSx;s+kta7jQ`u;c76N#Nv7b}MBKbmgFn@{QN|0fK&vrcJcWc z2-ktlgG%5joSuOys8oweF0{=n)T)vSoj#fhh)|eTpam?>?}I1;=3f$%1I>aB8X;@l z^@D|$lk0+GWBpEuFC2dOuIn14uGuSB0FgLD5s0KUm~;j~&nLEDd~scFdDf!|wj`Y- z%~B4l5i)+b-`s@FC;!CeEPrrEN#m9ENxX1IJVsm{rllg_6 zZuEGh#>U&G_6Xbt9Oxr;VclJlxGS!J{Es(*Ex@7;F$buOZXQQ`B10^s?4?|$uR!Td z2m=KXi}SgF4;0GnuW)Fbk6+UTR$z@Oo=ljd(^DgDA&PXz(`K<}$4z4t zTPwLZ14^c1s1QU))UI5fg3`ZMiFa5;r(U4#8JE7cG@O*{1f%Sdjdq`3Cs3T-ZkKp+ z7&2SnFG$O#MUzF;yR9ZKlm#UjgD8ScL@=J|q28f<}DzpbsKSu$pdoneE=5N)x$g|36S zu@mFXE1)S)qOHagH}79n z{vIk+Z0ib7yz=^Ip17;vZt^<(EZg_=tDk-1&idxrkrw7zkeH^N#2UQm23fBWV=D)8 zcAemH7&%+iXAJtBS{E)sU>3bzl50lx<_R)K3YUjwdL1{tg0Abvq?ec^jIU;g)qKSFaqx#aSj;m@Aq z$G;RR?h1uE=~~+2I^uQlyIjwHY3D_sfnm?j?KuH|y)d_D&qc2SuRsbdj?V#J`D&_I z;SXRRTw4tO1MW*;mjBYS#j!pYUZa0L?u)*kSD1_b3v00b1C|?=`yb=3Ki>I%Hee6^ zC)e2e4_r-uJo7)pINSvmIqc3@{==>r0r~$N(f{(tT018u)^9w7mg|%z1 zu-{qO4v^Dxg+k^!ynbnjFGDgOl|0IR1vXL~(vK|Ba9#$Z-iJxwKby?Iz^dase@Zr% zpZx!IDZTcmD(p`rzxrv$t( z2TFjd0pRU_(eD4}-0?3!{r|yD_(Edhe`-_YE<`$t$eo+feUtt*@mb=l#KDsJy4uFp z*0Cqzx4rVp$2`v0_14cR0i?&Qr>vCK>OlwQ7a`Yq>|=LgFS`CK=sG{wqaXX2{$u*9 z#&%#4FgEtJs|c*x;mt{cU|JkpgHrSX0>5X$VusE`I28pcYbgFmITRxWFOFn`>UED} zb1j2)CJcr1&_c09(8o~>F533sw5;fUsz#1f^Fl$cmr)&NMO!O0K_WKtT!9*gn=7D) zVtuh1s;ywuY|p`r46V01BUZeIt_-q1s!=J9Z2up+y2k zXD>Ohce)`^*VdfTTO_mD(lxp&(Y|w{8I&bavgm_D6Vo-VWA%^?L{mE4vjH`h)?oD|T)sv!Z>ecbwCta0>D+pCtABc= z38l@?ZE+MY(`pJEM{6!hK;{8v1ia+6AS1ZVFzyvHN;$y zHs^xo(VRU6*#s6o5YV||jnUlI`&Sw48L!hr3TMB+eDgq)bI{$V%$} z2D7Y-wI*z4Pt@W{`^^ThWRCKn&er#)t$(4U`y2GeTvKz#(@L0#-RDNN-_!hze3oLs z_BKqdqHd$!q~4+al@8K5x}6@PH`ABXH^6C6Su0?9K}3aPnFXora5h$SZLDc4rdN~~ zAj4u)qB!8R4TrceQs_ZnhriMJ0wzHK<&3BNtFm&M;z)Ow(d?*6bY4bBgFIcm6`l+~ zmE!>v@kGfA>fs)}844DGHHCZB(86l&3kk2HMb<%pqFeP>#IAjUD^cr4k_xdv4ulM=`!u5=!Z8U54xM%_Dh6t`ylh?wVB&}#2-RluIwrLqHuMPLKWcX!*+05!k zXrs}a@X30kT}$#J&wHHXk#!r_$IR)N(-N-pmrpqSM#wML>8wK9Wzz^AOC;!rM$xAF zgc$Td6&vVvlPi`&dM4kP*_9We&yGeA{BEsIH1JwVG#d0?$tBmi^fn19o{5skn0TE( z;DOS|Isp=5j2bP&gF)@A!<^C1gR;z*eFY8J6b-tI@!GjpCu<9Ib_XI|hbp7;_{b$T~g{ zsty)tpd<|D$ySZt=u3Glb%iF!nXmH}PVflPkQ4G|bsj^~6}Q<0OShM@I^8;oXGsHO zO6djBPLn_}gB+4gjNa>pU=IzYg?FdTf@I*zpBF58Eu%5(Zq^F1L=F2-`jp*h7qlc* z=jVKX_!JMdbJ#!(%od@k8uH7WS+9{qmlnD{^BPHTX%E1H(n^Ax)9TGUYl2JV8%-t- zdL&rmuE1a|Wi@*whm(We-;BkeG0^4P18#~1S88V=WDE0dhh%^=wb~^m*)z;1$eZby&A$Yeoc@AFIt=eeJ=7x6`bXow9|G zhh0esw-#A(g}=Td*tk0aV8H0HYA8@nkxZ7o9FJjgT6i3HAA4or{bwR%2pmTBmU?mpQx5sMomt z0fWv3Rcn0_NP%i(TBn~Fa^z~98kY0RQk>IUO?pqd;IhX-Khi)@g+5*rWDOC!+u*Vr zsqz`KUlyFEUy6RW^p8FdXXHpx2)NB>0wx(+KD(klje%%ssIREdV=((Up7Z2N zQO>NTK!IZDT<*x>`Jmu7ixQK$=IH)NVmZ0boZ{ZrSQ6Y9$`Ot;`gFQ{h}F=pV%DeA z>Mf9PA-HUMx5Ek{v7(jJLZj#)HLQh^oIW4Y;E{fim0?D3+F(goff6h@jM2c*+2?3I zrSS({R)3B4Y}_FDITNEZ>N%%V*4Q|`9wNUf+5!oIptiBMX|eafV{MobD8yp%&5Cz7-OKkbyd83B6 z*t8~Igfu;ig_B4Gv0Akfa2gcRv~m*lLr2VKKzJj@R(7o6X_1nz=oPZ1Q2B?Vc_@1#?7(Q(^ifE~ zsfE`?${OV20*H~>%KK~KNfiS!yaB8qRmp&Q1M1Fh#|GhsrFw?)K8v*sxKoSNlcpux zdAvz(g8ysI=tZ+u@HbKYhoX*12yxujm`}Vax zs~fCPb=#o#p?!{V)OIFUeq?)}&6u6pwy&Gx8HQ`xzHwEYPltIFAoq?pV=%%t&59co5++z#-zMpz<}S8m*yigh~dE*}qP}oV|9#fFw9g~j`jWiECK!0p zVb#Zy5zY{>xf=~`*+?F=vN)J5qn$14;^x|_mkebs7)(a1R<4 z@{Gph48kg8Jj?PyL8G@@46d}ZC_oCY!L2ix^(+rl~L}_%aC&SyPIy>4>^@! zIYeF}@WN%YS+E@xC8ahvHYA#UT>nnJ1hxcZR6u{D+*Rci0?tz;r;v_Z5lKi-S5ALb zp#&$4MT-B@%ScXuMvdcmu-cDg51J92{_ro5Bk%*#sp8a;0faPsY`v_UIV;D}n0hcm ziaVYLy`J)e?|PrF{{l)rk}|A*`R2|D#LChsxmKoVzu&*+(%YxD+%yqMhxK-M#OAPt zdUy2~_itYb<$-$c-_*Cd-fZ@UB;MwZxcn|-q$RcD#tw}rK%E$pl#FRFs8FqigeLrX3y4aYOATO`q)^YtN!o34qc)wM48O#y{l=?IfKw%Drc%M~vLs^TkBzOtT z8+x6NIYit-yhyx5tb5S`+7Q1A9HEe#!t=Jzze;@i)<+(0YT7a|aERE0qfZFJhCHRG z=WMnh)S88V1cP5aq!`qI5fCq+XzuKf>%UTO`tdu6Ib;+iiId&28nc-Wlu+ z^!ANB@XZ&p61%|Y`WD5hW zsd=rXt~A-`N}3pZyd?omFJ&jkiK4%~-Y=MJ(`VAQ-u^aTGKX^YCb41JGH_RNmKI1> zj%_SJn^K9B{q=3sQ7K|Igk3JLC`l0;A9g!E!oxzSCGBm=`dsOPH=OkenV31`ck2Q% z>RCw6vOqCb!IEemZq`B&v7@yqrFA)6ts8nc9c)?QC=}$##U0C9;*%~Ob`L1TtoIJZ zA}w)S#MicG*IX-{6^*%UNU)^m58vEdx2>UPn0}Y#v=jw3nmd-a=yXnpBvSg{G!bo1J|v?6%eh~ghh-H+H=1se_QvYW;4{=Izl``oQ9S7bD~V_ zer{kVw&)HF=$fB|JV|I@(cFBW?(NUoOfK6e;L=NT5u5D>9Ym)>p$?ty6_O~4zxl;` zzyJOBzwz#d%P-%s;XaVh@CS?G>^rDh6D&{^7FjHse)tX&%4%9AG8-Y$s0l}q0aua8 zaadg_S`wLhm4ylaRc*3SEJa}rA(K-4gPr+kwJvh!H^vsb^RYKy6NM#R3mP95+cexz zuWSN}_*GXaGQG4T%bIcxE2bcBEr=Huh9f%;G~U>Hp!|_|G#)Mg@dq_M%kof^(;K!V zCrA4Ip*2mBHS5=nw2E2?k8uv3xZ|>j;INwOI|fs!&X$&l8LGGBZIG{nS-(6S_{Wj$U8WzR<8z^L{5ob2z;^Xx;EgaZN}obdS?Hw-m6A?iVAM=fYM zh&lWV-M2LvVg_Q#9wL51{2Lh}TOqge`c8ptBoo9VWCw}zLC=srQcG$<%lRGhd_MK~ zFW#h|`U3p1fB##+Dkc7rM;dRs^Um9jtZalJ^)J0pTG5RBB`-8?+SCY@HeT4jKWfL? z4EXU)?-h$be9!cwuh!RR5zoAbs&YZq5xEE%55Q1gsn5Oxq8)r;uyiX`_@R~=KJ~zA zT%w1-X%4J~ie$y?1mYf~JSZkOIT7sLNaJAffD5q)4q|LI zuqWPEDib1BT^w{{1KvjW0sCOfs3v>?M_V;Cp{k7`Zd28zO8g9Bw#Cd@-9ehL?7$4G zz^GWq8W;2$Fu@`wQJZUySsVn%2nIcm^ zf#F89$~rx-^)@tjQ1c(gTW8(~OiWJ%2Q5(x*>?3cN4f-72+OV>4qDQhbJwiy+&K_e zLU&sBwgd__vOAtx8o2`}doolUOxCV~z#XW&3+1xUK2Ql97;ZM18kTi>A$}&Q1VMOt z*}o8W15MH^VK;W;nZo#!Ga3%ehzeVaoEEs6-WnZ@n*_HUA593b&lv6GP^GuRM>~|> z3N`C0y%oS%gCqL-|JQvVZ83Vp^vV@YLM#m`e(~~4whpDqyR0jB>`C%rSs#o=MOc(U ziLYOtv>aEx(HCY<@_x=BYA)8Z?EmBKO910Is>Q4rI0OPA7hu94C$Y(Gi$Hb_P9S$U782NHfo#ILyBr$`@b3cu zZeY3hCyQtPud2IedaRL?EbxOt((CH#s#ov5dPmiJF6psIDI0P-Qi*l$$}6o?f%1TP z;>U@DgQ<3H?vbC)?U~)5+if2CAy$q*c5i8C$%r}+_7=SUC^>ucQT=qqk^p2-0@?3W$Poy=1>t@CTv z$tIBMcba)@!tuXfdF8}6UkljfPvIs@Ho1`9lpLF90xfsQm+rhnzfEARD|8dp1w<&IYi@?)g^Coq;~M)P>>;|v5upLL4uwdkZ(0KBhdP=H8B!H)6P~%ZtLkjsKkU|%ZbF0oIV1yTQ zYo<4JW$>Tk_HElbi^G|ag2Zrq{-Vm+vFV+-T-0K2|bUASvQi$^58`KiaCpt{o0 zXp5(=pz`}-%U2-#x`=pl6yaVi6OXe0(Ah(}AG~eK<#j-!wDpajx|ze-UU-QV_(#b3 zKCff2+wsHVNNMNVQMcBq#{9mF>~2-M_mz{=%X)%sy@}1+ps(b#vAvlc8@H@%-@GWg zs~qj@oZ8f}eZ4Qguxs~=JN!X^Z)ZzD9lN?a6W{xmrBLjQG6sPiTyY7G#bP;cTf*-P zsMO+U!OW>A-NkskTgbOVkOjOQur;{9mv9`gZASs;`~2c;?pdp0VZsf?ge?q?e{rApXbIZ&%$o@U4P~M*5KF5x;SvJbLSezJ#Yc=}h zu3ZoUe-9VPu3a0GD;LgeS-H`((zCLEV?f2xV zLO+t^B7sXku743lfz+*{BB1AGnysHo2$H*umcAfr#LIn)Iw3*4FOkC*swp9eo{cyJ z93@@hTZx8qPb$L5Fee{BIgp(Xj zoBhJgJ8s{1&e>c07hZqOm1W9@cAOh8T(Y#VY3t5`sq6P&J?26v6eU$BT8q2S+gTX6 z;+;pf@4g`{gch$mr)TW#6OLYgBH(cPTLMr$oI81+?hwfclDWK8db$SkU5 ziHI?IvhUbP?^`=_-6j9#b)HBj*X|em#g3TCfa{leW4U0wv&HL@+T!^RccQZ#ikI4g z+jsX&7F!ih#QB;#-0JnV!fr72jCO3r2A^dYuHCdgC1)c_TSvRsH_(^y$-`?(A?}N0 zv+q&GGauJ==3KsTYiH^0XOaT1|7(L*U>FQLQBm8MOXCiTmXHI!tmX9c{R(LT;*lmpREkE1r*gD7bIJO1=p5B|#+jL5}x)qKE4-ZjIQGzu_08wl=w~ zLRD3O~bpUC4@A-OZcG4H_L{~w9BF)?O6(>38OX4b4}A6zmsHuyq&yO)XS_m3E8 z1f8Frf+1KiZsfaqaU(yOr8n|DDS!P+en6HS67iG~eEdQ9 zDey6XYLQ(N>XNa+mF==`#mbI!yr*X_O3E+yz0wKy@4Og+#AzxeAm8d5hhgIov;Isd zsT^7V7}2>USjF~p9@`-~Z4wH$C)Pi94rMOf(m3Z)6FM(W`1gbS5QHSVlUB?bYuOPCGy5U4#4#gyJYJ;`PaG`~4M{EzgOf;_}L%CfrNmouDT1!X0qz-nezslTUnf zb<0pPo>Gbz51e{(A7KmJ&O;SF+zLF4DNcl=FviDA;~eMn_M{~gv9kwI z#7*A>qz+Q^T`i$5&dil-In!_3LN;dg}>i!462OWhk=SI?VGmtDj=9b%I* zeWFWo&@z2$DNW1t1u}73R*`>g!8_l+ud8X9z6ICq-`j&pxqAYcP3EK&)gh;osNzDa zy`qAej7oM>6ROBCUEVIP)U~ebysjU1*}6Viec`Ei>xwSa#EsxT0F{hh#2i$L=G~Dj*{ma)j>k~gwdE(@IP*euxI;uC= zKFa-pL47rHcP^h8EEbn8NP82)=V&di1hy$JM$M=|TVHEtysff(^|8YTvxvSpTMPXQmazY%pDTqoe&dF*1>Z@JtuN-*w6v~U(FZ#w zmYEvulEb|{C?rMPm)b(7SSr;+^B69u z0vEQo0Y}#uIK7tG4ed zL_&%$=y0Oa03!I6UkYl(jauI^*{wQMF%(DyT>g;Li70S5nhqfGW(W6g3m=*e5A^r= zlt|DWD6SqE+YpUtcAWj|PlVf6?Vq+Q5+9VpiG(~k-Q^j~A+t?~NA-Jq3N7-fd+czb z3B40bBdLrMb||e#yPwG@G7gQz3nhQ&hPA8ojQh4t$hf}%`}{6u^@M9X6q2zqrhP+q zcRL(pxZ{QtR(eG>lEF%3b`t!HB7@2Xf6pKhgo%GrQ4L&xsFG3JfJjmu?Z%JVmI%)` z@q`(kEhAnDJp~4$$v>fxK+a^-BLdh{iL-0aHnrtFWx;1}+qP@>e3|ymk`-%6$qK}= zTh1w+I`_0({Tz3CI{#U3fEVUVw!d!5NVeZqNUlM${ctHD3i}!|^{;P|%b(aIs1jk@ zM6&J&Z=l?Clb&@S*xn^vf=VGHpzoc`stI|kCJ3XW1F2zV2XOv0&^pks<97hb;@9PJ zDFmHyyCWqBX5>$De@o1cPB<2cGZOv;3(kQwsx(vgnyz5!SJ8EcJ{9eCjN_D5UTj1= zY?nr?577c4>mS{aT9nM;3{#T|Avua}oZ3um?NFD!y<4kXS86OXf}q&xrAY24*BFM^ z%RE#$#XfJXkk-{(&Mm1)kInWdPPzWBq1ecVCgn(gcOAdNM&SKjI^Ova{t@W3h$itj zbJsA#$h}*XqY&^{89F+r}P}RS6JYA)RFpah2+`0l3iXURp9h- zAy1$&-b-uWC-eBX8hlR!{IfOq6%FwEJZ`eWE%SJaD^}lG`|dy0`nk;7-uB)a{01vr z*j%VGt1s zvSU+1xS&Q&#IJ`^G@vYykg+k*Q%Yb?4T6yn7XIl51X_}RWj0M~JkZM;xg0+WQgaBA z_JLHgASk0aDSR8mX~w zbz-2(0Gv&(Shs?EVFltb z(7H(hG{Un?=D1yQ4NM2cdljf8rhtYJGX)Vq|bpx!6 z8Jfj{So2A9zwxZxb7&pSCrvZFFHEnx>+NT|Tes?&dsplz4k4fR+|0c@AH8)tQ*=d> zG`0Kq1vgB-Q8wwn%g>T*(iBdzN$=LPNuwgAo=qA!BzcUD z_ejR~)h2E&@b@!c`QybV+=i^qM*ADtKX6|$;Ut5!4##(XZe&zR_sI@bHViTz`}Pm&$l_|~Q9v-U09&uZ|i8sNzPY_z|G(1STP8?ts9 z@WbqDmVSO$gWrkv|6sPa%zYp8&8iCc*6Jai<$uZL{6UK2XV|NmMHC)yfFEJcu3l-v z#ZIGrK70#%3;%1Zjrn}C+Sl;jQ8rM$hP+p~m}i^3cZ}UvT|=LLuHn7M*r{q4g&%H! z&$7L=KL$B(JbVYnQKsX5fP1KNFWNW4i4+E$O5qh%WO+hX-am-%u$A!MOZ2@Xws%ws zZBRHYMIDZufI`gHN#<31{;r1iW^H5D3(0%cWCQ%DtytBw|L$&pAGbYT-D-YEJg@eh zYZ|{pa?f#h*n)We2Yr0Z?F2tMTsUsPNzTF^8_DK%#CZOJO0?meN#8Clt4bo{f- zEp!}suK|99dBK?1eC^jav_H=Lyt;yp?=k*!5_bJS2krkTbE`3*^BdsDm{+SS(Z1)@ zJ?vEivYQ6Z*T+-+RplL|A4pSct>q(Zx_Uq0@2hOFWc!uEPcvHe9IV>{?^Z!2323+)=FW5Utpb1mPsb?+KtpFQbvr9TbpfZAq1#{rrj{3T2?oZcrM3i!{toaQoUN~qjG`}srz z{1|h2g=Sm^jc3IG+UJe&)M?xbx6-&3UgwGR4gFYYJS+YH{SO%9snfU>Zqhix&y)ZS zQkyo$v$%#IEBpxa?izlq@L9+NicjFj3O~-Atl?)$d>sAnG{!Sh!;ckyj5%)L=g|fp zdVon({tNg#QSmmwkD2i5KQ_rkE{31IW(VFXpZZ|KTeH>Qk@_vw%&9vX;12_S6{6kW zIQ54H_=f;5(ywDw!lj6J=~+F^eCFop&Z#gB?;STrN8wHKq?^yvmF}jsijV5!sqU=2 zuc6vXlq&KtM}zZG znU0r%+W2eP(@Rf%d9X?sLH^4ts`#Py6K9^I?(LGYRpy9paMt>Au8(lt3;g<2;Mf3XBIp-+( z9-f<3%pa_Lt)bt?jPX2Bd949{()b?5UK36=$EiQBf6wI9+H-=kUfjOW#Nl@H3)sh_2*6a)WCuM)wye8e)aCtaC8(n>M_4-p)j-k z>Eo&KX^jS&Q{a3wrjM@)pEiuYS(OK4{&T8495kvtTturp=>0e0)Q0}&u64tFg(jTZ z@O~3cHSs~J!CR^>5E?p$FDw+}aW5=pLzD+wdOYNYWpL&l#OWIhH)XYu=gw`gb3!{JNoE z!l`6D4^*lRaKfoNHh{fa?Tmb_27x)w6LcP{A>~oyf`N5~8U@66SAR~hdHVA=!sZ*z z;)J#G2jSF0=-)drr{08)^Z95@@9+8A{Oa{4tmA*7_Pkzi!gxNX-ozfG-o!;!Qg1@<|7h*~ zdc6s2|EI6z>G*4wz1{l$muvmkv$yNdPoVbjC-{%TS{bL>a;^3-_F60ah*^gR=deB@ zbk^Em%6yB5pPAP6`GoM84u_X%58&&O-(10s$mhq{>9ONu+!(w~NN)}^fu3t1{lh2N zKA{%ejDKB>C52OGV|Blz+f_LIV*G;sK<|KWk?=BvCXgrELGmAg@H* zTO^6xQFCgc?lw(yx+J?Vu<-HOS}okRMDICUx0PgE$}V;%lbP+8?i-1Zjr93(DKXh? z%Cm){RJ@tx+4uisM>spz5<0 z9OqF>>6^?Rsu@^u{c!Cod#$*hVW($~&u}v)uF0sN=~%xrYt|s5Yk6y}pDQe*-N;UF zJid|JXqg-IB5N-X8@(KbUi2di1%1e*6hc8JML1AB_%6Xpf7zw7}IBi@6n1yR9`Z%27Spo{>RL55-bosjBo(PcO%6D$(H>5 z5Ia3|e25#ONYKajT0H56=N%C`i_zP=(aU}4 zjr4j0lbG2yQazr;?Lj+eNSW&H__nbI#0TS8y28b&C_3@L~{O`6yHoJSg(V+0S0WbWqJ zEId`~A168w3pW}#BJq|V^Y1=Wdomu&94T!#&anxN&m)!QlOlA^*VoqV@LW7DW~Ub) zU(78&4UccHy>sWAc?UXgoqwBGHfzR%HQc=sHUIybN97rA36B^_=nA^y9$`LTMb#QY z|J)MW=WFmwnLqN2Ot^4u4Za6(|Zn`0Z z)Qh~+X%DFGFp^%mVkFPdWY6q*dy)&H#rE1RJ3j2`On7=q?e;)lI-XJ1%ubK4>G4xa zC$lC|e*+u0klEE{4bQ#--*3Vz0}a?CbuQwhef7&0>=Dic_8>{0VLs0g?;+HNZb)t}0pW+UgOBKvs|J492QgvJLMY zH@{EdHEO8Or~dqlc>Yaed_<<}^F3PY_x^@{A2Z>U%AgM#c(}1PuLm01pTsyE1aEZw zk=l1|IDP!IKXV*phcc*^yw_xWwRz9?9>seTdZ6oTey2X)+WJ=JS;xv7;E8-sEZ63@ zkE!szkdU`Bzq2i8QWHU*^XzBu*w5}~lM{z0xOEe=6Wjy@8Hs`KgDzX6E!Y4Qr(_@0 z`*=6{SWEig?%2q#+sJx0vKv{PO|fs#fDIyEnn=7dJCWRfpP7*P)2&dOmbd|!M5&iatmdHv-7UuLd)Ketudpf?&b+Faf zo$@c_Np0QclaFWO4`E4-c2WI{%BOmN7>59R+MsRNkB!eyecm!oy`EyfF`mWdcm#volQ3Jc;^P`!%CJ@2!qEz#nCb^etZQ1+^hsQS*2Q^#j;61FtBIy> ziB&XPL5k5ctRU^zs@Yrnn-AVhgRhUhi3Z=Cwn@~;iXW4D^|?0D;OpO*qrvO%G|}MC z@XiKAm+IdqvZAC%m$GJbsToa~G^&4bE=@H)|I5#U#7XM2(7mpDh3eDoCOvL+0&x>7 z^_dc-9yhV}HVgkIsSiz}P*%7#3T1^`qfpK0k@$qi&p?kP3T5q&_`J#YDcmAaC>(O# z^!JengO!76yXk#`h>zn@AKoekyV1^OWcj5sKwG5(i%DT6D_# zRTImn&!X<(FnUE*bL)H0Fo&vUe9F3}HHkv8-Q0Jef2)Z^A@5*@`txSKgEOxniDg;G zXpLnx!Y$uvCQ<5RZz55e(>953S-;VU*CxDJ|Hd4NqR+pHL^;ztb9@4G<6uo?N(0WD z$drcXfBAWkh>lg;t3`4Ut+2w6fm`$l(PK@tduxQp`W9Ig@)n7gS>e`rnH6r0mn~^x zBbcKjaWU(AL`IPBP@K@o)Z|p6qae0#+`OeTzHsTvyf(3Nb$Zd&ebG`I zs+mT-{qBHETr<_Ve*OA_R?_T|sJC~pKj<4jYh(USULrQXKGzSz_QOd=_(b+G_aie4 zGBZqX+@*(xaCY2i^?kh+G=PK59Rl&-wO4K>n5w~NnQv8RYVGf=!Dr0&)l@_KBWO<| zr1~hDv_E72Ie0EG>e~DDaooXP#*+y0pE|q!4Wm8YFuVHK-p6(c3*jfxzxH#`&AEt- zc+Z-e+)Alu{rZG>I^B@_Cn(nFeF=#eNKuZrOgniboWlh?(S}#`ERi~pZ-)dWa_ikQr+OzE$v9w{;vaC>BqxxCb zJJ_pua_(El=Ic1)sh@#8z`R#@n82&OSe1JFqb3biZf<}dv#yr3x7N==^z%`0d7hc& zd9e*Q{rV?7LV8ibri>jf&%zC^Xp>IME&G)XZuK66;c4PnvTVjhq2_EZ4GqE}M3)yU zMMXoI`_06z4Qsn?Lb7f2zDrC#-}695$gkM5qW`>72x-DYF8iY0?>Kb$&^vnVE<2=z z=kt|!{mnUlee~wx{NhEE?X!s`S8iatak&-MM+{D%D7UX&zonEJipp`#*VEsxdAj-+ zjE|4>1xWFXWW3NNt^M%!;XT*fvVLUi7|qP0W8p4f$4?^_`Jb5n()f4 z1Zy?;EIULwUT=SU4L)PGucjK>A3=M<@$8b#E2oBWy^R7-Lu_X_i5C#WDfPz8DCF6JeP)Y zS>4Y$w6Gcd5U*%6&YzF0qLrRELs5I@;eASJ-Dfuv+TT{*9Ek}JgYk38xr|?5!(V`A zQk3=@*N||&4nM%WhjM5S&qYN|UK zb*#DOu4y*qaM_VC%QIVf*|s6GZrgdivBj&_WIMNY1Y&M)LUY$Rf23Tz;DX)7wuC3p z8}lznbsy;W_AgqNdK=R1fbXFsEIC9luFw1)U>5fT$ZpRr6QXpt-@I!xw;3T1vfJye zu-hBA2@aB01PwO|TGT>ZJ`{wqgSglq+MU?;->7Ee;g;!LC1f^DXaLF4(P9*S0yE z9xa5Mkz88S#*0>xQ_Imvj$d+!TQ1wlwm*8!w50F)`Na!{TR5)1iuF4s4XY@@heGa} zfJP6ndxdW?IE}?~pSYa;+U2ia&RtGpb9zjznkQ?bx5kl`Eb|P?c@e=i!-eGOZ@|3U;p^jvZ+>-1#zaM-6bJAHMP8b?E2e2xOH&dK*U_B z7e%5YEYNiXc0bh-2p_*F5*^1B)BXUz7H6V~=e(B702 zP1~Qb{}#vzjK|=6Yrl7JYS#K~>~>bd1?UsVYWghHhHEw6jmQ6G%?$+OBV9 zd_N9M=Ksee$NlR(od4ZF8!3uEm`4Wu;R_ZbZ3)PK0+H6%l*oaVx-MZ|YYDe<4fp}@ z`!`5?$PKJf4Sv*IQ^*Y~{Fn(Rv`*!Q-oGg~+Tkm}4K?V4trJeeS1{MsBg(`7$jalU zsE6RJhwi_7;!S%9pgr8Zj%~HOg@2Y)@s18LHMMkE`mJ~fJpGH7rruHa5KNI1fW}?E zeayu+WOJhS*_8P48vG!0iS0iK95%c4&YsmLFhz1e8vV?mAKD&10c(4!PoQc0Gxd)< zha&0U9G~S5;vMV=ztDugrTOe{7@yS(u)@;+Ay^1Y!2OgW#K%DqyO8xOeAes~Yjp&C zbMnVcyht^708tJ8N0c&;KVa}rqo74K`5>U&4OI`0qea_t53iRxB3L8sAZt{)8G>jUT2mweG{(2cv`SAqf9T` zdzwwRym9--+4Wi}8M5`C(Ia5l`QNHXz_I<-hd*-f2)2B8FsaT~zVP5%^#}Ner&cbX z3=^v$6YuO17Jpz(6K}v}!0!cyH{c%IYv38(>Lt9c!w)j|Qr^vDC*}pR9y+|y8*o7l zK7;nOAL0$Lv~TnVG--dP{?U&}zH5%p((fJY74-bCKJK?NA9w>S{WN$3Ebv2Y59M{e z|HrX+UjU0B7+AJ#Van!m#U*A7vxfcU8g@;4+1TRSv8~6M3n=BpYg_z26s>5o!&^Oi zgLI4kpV5^tAN&65O}U`XL~!Ec^D*!re)*<+Q*VwI9|sNTSp*x`l+c_GZ}bk-+c$a# z>hQVV0lgpU9U%EIn5)Ix#YfTq+b9pr*uEpcDn>qzt$>GX@L7H@qVCAYO52A~2cb0K z9-LtK1q)WJXzk_K`nr$=XTq`9=R4=@!)w{KFj`2-0aBCA@F$S0{0%Abbk9MpyhjVF zkm#lZkt)c3lQ;cBG<;xq7u-DmzsuKNvnStCa`+;iw)?*R-?u*gZ?~b&izK`K?x0T% zs-=Tp`rx~M^4UWfeq#4EL#RdTj0L+p(x_1C^hG_MO>etzGt0u=AgfXDnxjYVu}!CT zTzb{u@O8t1p1yJj6>M52uKM7X$y>Z>^oBczlG)vtUR-ea?Fo+( zj>WxdA8G@RjfU0!i50oMHoM`0NKQ_z0iZ*Qdg3t@?CnVv06T?*1-$T zIor0DJ-qgXwO?P$lVu}ZN>^@#6q_N{Bd9|6XIi~^H2XjQqH+=H;)9)kt3$$O9w2r; z+06e!tIb`aJO8l9o96%I*l>d5YOC}rR`p%FzHX%gs;}$t1GX;_eI4BQI##>h{;0Xy zl`ReMVp!OtYgC9Ho- z)>?43g}ED5gpiFK&X)$un^rDPs(IDMc|%b-_wHwY`u=O5x_RqhNcM$MfzZn72fp$6 z`?|!^Sr-heUB#Y&+v|W&$G+;o(T|*5k29~(9(;dQ`O2|}Sanaw@)c`)X1%#ZJ=$=q zHZs^DhWiV##Nb)y%#0)#Pmae7e(xAwoB_X={B7lA@A>DQTXd(=DG%`>^z;vg)$-Vq z<;zmoZsc^LfW7h1x+`D5Z*1peTIYC*!y0by5I)P3{Bx@r0)Jl(zR&hWL8-wB$Lni! z(Ds_a@#76^beybFt$ls%4hgptJKX61M_9XeB9~)w&xO+m^%cD8DrV~!roTDO-8fB_ zlHWAVo^drvkoPpN{hw!5Ev|g4QU4cR?4Lpi_~GpPHH3h@?(B2?1&Kg7I*$*aP8~nO zYJb3x1QzO`l0b(au)ShPf?t6O>g|u3R8U#d06%8J36)Vvp!ajo_OkFz!r4`u@Ctu9 z;(z()!o%t!TdTB`)D>|c1OHjAy)zxHpX9#7EP9!i;-dmzAbYi#Ns&9Ml#hj>g#t;I zN;l#Rsd7iF1=x_7lIB!L`EySAw9l(X|2Vns-fLI1jVwzCP!w}|N>fY2;|m6Yk**Y6 zdA4NGZ%4gqXIrshA9H zdl#?Uw6v>rZ1dpMySg>m-MMRBIX`~ZS(Aat@aTf!av;$jRd~TpaZKm>5#ac4isKvD zkF$>u&Y|#EYVgB=Kh*?&C*V)&IJ2#0S0j~Q;)xLQb0TGTD8yt>6MrN-r%lw;A`%o( z9mj$;uC2^}{iVu}p58cm_Jtkn!qCLjM9>o`p1ODVU3-_O2A8A*7kr#$pPWs0m(+L% zW+6&8o0{HAP>|WYaaF{V&xDP6*;ez2#B2BH^WtJ`ULQZ;>uT`B4e<3f_?xtkt1O3I@xfCMvSSwb#{fqTFJ|Yd`;qYnz_32V3Tn^gYS_%ShT-}TpIek=7Y~W z-+AVvk9Pog)-xp4a@`o?)t@)Zp`nlC$f?g;@I+1;U0xwK7an3ZS0m>5o94i<%tKgI z`~IEGkNF^pGSu*OvLSN;Za$go+5pE5He+3X)g%W7S)VU5*HJv*)9@Z{s#)G!UAy6L zW`n4|_n9WyAn1*ersKiQBf5SkPT{?V3=8J?=Yt<@XkVMxsd>gt`nNq_8+Sdkg5^85 z7i!PznH9|EU$A^Hk9GT0mE5fR6!VP=ja1V9n`K5Y-zVR1mKni(ezM_gtCcUUXI|@k z`4gOouAlEEe0e$LOXIFL=-B$6l`pL)sm(LU^nHU4n?0}7S>vgGD_>f_XXQ&P-0X+& zOEWm(ODnuK-+AUk`w_0k`7YdLX7XWrAK1bd`t#Gy`C6VIIrW0&dt_ZVSHpB&FRzqq z`1qgq4|!`jVMuRc*7%@)@=yxb=(qZ-CTDFM`O^BHl`rR>Dz(1%nI@-B8~M`Ouaz&Y zaNN`~#*h9QZ;YLJUf@e>``Wm{H}l-Ms(+{H2~KkyU$FGsoG<^R{wqJRo#gY73qPd$ z@e%%(>IjjKm0vf&kMhT=R1Q?$)&M`o_Zqo~Zf=0j^0!qlrTyI20DqXjt9l8A|5XG0 zasH5=gY?utH^863jr?KS{+$i*Px8}7KR*$=aicot`}OJLZ-86I-vGCazX5I;e*@ey z{sy>Z{0;E>_}ikD~EzhSN*@KYyktazybM-E@^B3lpS!4dW(?f2|cN1HxB#(DMq z5$}J-mcaWYrz&m^b6@2Sk@vZ881#HnxR$Tr`Q^s*7det`#qzu%_v{gNhxs1An@46C ze??zM_P$dU65%~{53g6jxCVX!#pmkkTE2DH-Zd^#1_Mg5UIv5Q#>IU;f26uBk!4QtARGvegl$GpmCdY&)93C#AC~Y%-MK4Fw ziE5H0tcRr~mLl;4<#1Tcbn=se8^p!aH^{cT9JnPMnOL*Ecl^@yg@OaQ{A>>Cdauvt z_UF1sa`~&+ZFVIbl|!BBU`P8HZ*zG=URl^6%cMARis351V?Kgfygy=OgswU#PE6fl!*(gg?ms^WDVv2))m-JyW8(n+BIAm)1s2kE80b`&+AZJf?{`vom$({#p5x5 zXGUXpVoE4LoeL)&T0}!-xafj_AaZIr;fWX1VbLD&;g!B*3^fq_i8kQ&56r{NZ#X9d zSM0NluXo1j^I<9zZnu9$m#@ng9a}y#R+|w?>fh4?qrHYvOlP}HC0AMm&(5~A7TCMcbINw1CxDr-N3|IGpPwI z<%DxUle=cTkISq~!VH~#Wt7Pvq6R~xjtP=Pi-Z%1+fheDFpx>pcmkPvCM_75wn$L} z+K84x80d$qk^~`882C55BH3kEtg9t8ykMfkf!~GlhOvxI;De~ABQ9UoQi?{{TO_Aj z1!oI^WJ`H*HaeD+QA@Txo}TDUw6HgGEN>H{@sLflIp9$7@~xdcel?{^lAMr7HYIs@ z4n!&7RqTQ`QHTteT3sH=DSOpWqSfK)XBZnO{6p*`oS*UIB;HzPKhraz?%T3^WbN8S zIZ;lZwQ%81jNN9Bx?(OAXO<;r1g!0FNKW>Dy;)A#Qs=I{XTm9`h^#1!s)RH9cEKhHHjn)F zH^o~elNEc;h;p`aJ#!Cx5BomUXNgWYf`x+6>-A>BREE41jg-5~l^mlWs@1V$slsKblGnlZnV3rVu11ma%Q&rGON$gO~ez%x|` zGt2xt`)!oYD>H2qzPNKHKA|O6#N&ak7hGM;45D=8CQn}!wSFNDOTBpr16q5E2!Nq{ zj^>}!bctuk60tx_uz@?uz2}uxInd${EdO9@fJOCFNoC!ko?@rZSIC5u0Y`_{wrJr* zn=6$FxPJ`R7HnR(+!hT!E_yw(|6{I*U-6>Ia-iUMC>-nZ`9v9nz9dBB<7v42WjmW%?e*+ZZWZXd#qY@=818Q7h%v9r;d6*y_fKs+@AW1ix^nrX=yJLQuY8H%6zH0vdZJ6TN9-$H z@n}F$Ri_;ldj+nOL#ZLV<{F;PIs?uiKXQJyrGS;|Wj@T@!(9h&;{b5rY%i5klB&jM zRDH#;Uf8-IrKZ5LDIrOLd)xz2bfFPS?ulYObhZZdQkE%=a|X8prP{J^UR`h^d(a7b_7`A z10fBR&=1irYV-yQ`5--*ZdOqVwZ+>xUXj(*`vYoz?$G##vx?Gq18= zVnW!dS|>c|nD#*aWS+~*HpYvZ#5zu1*-6XL=0UOgz67CRsvASifU_Td4&`p3A zCOc9bDTbCfW|o9PgEJwDRZ<9?ZXhF2D?o2`%(^*(TB^_yB>`RMRtG_JRU_0D33+L@yT@;j4K}Ke130RDvF)YDdbjmhht9Jx%9&JU?CmM_7D3y z+SsFV)G2zUK#Sy1_~eRcve@FbJCzu82gU7kJ5{?&YRPzg?r1n@7m_VDw?FEQbf<$O zgl;;k7cxI&UZm?0cn-^vmj#rbB$W9IT?DBazMC$>@wpgpvIrv$7@v0$SV}41X8SNQ z?=zG-!WNEcLKqKz=u@BpQk7e$0f#5_74j{S6bB{?ZYO2y$(&b$SDs^kkJarW(t}SX zLj}i7A*QcsnKH_Jt9d%3c#=Jw;C4HMUim~U7#&-=ZO9`zic1CxL9IKhWd}!tg)I9) zIqVd?VxU!$Wv+EaB3VqhJs#Pn1cDKt%^irUWI;wDCkoa7%Y2*p5~DGmrxbyKK>IwH zR~HkF#g}y{@!+w)K^0{>?VTrgxb3J#9@;ftU?m~0Pg_KZH%yzYb~AS}-(Vj=rL{Ix z$L7<%=#7b}JQIzkhi1|`HIvG8QSZwt$+rqsi140>%2)KLiAl3$(>6}9lSr2iHp|QV zI7Owk);*}#jy)@-I9#cb&UnV*2qxN5Ydxrl4p|g^PE0=(YzetwvBvj9~w<3%k&30h*E@B>J9$-HO9WM)u%IRsD@dz&nff+%c z12${y)PADO8qqkS-bzHlAms_kRu_7}+cmw&mun3sd&+_Ea4GquKi{hHp;Wuy5%ejj zD48B<*PMaYV0Pt5n?GH;L_|4nwKc5rwm>-I2x!2k58A_jvg~fpH%9|Ri&<08m}L|!TgW|vRZ(5r_l$*X5+6@z+uKG^vAich3zjD$$*yRw-RV_VmE1I=yU7`(PpD{0pQ^0MXA(X!>;{>@D50h)%=)wJ7A6gv z4)V?$oyi%eJ}$5ov6`t+FxkJhlNn?)cmwZJTiN)6T}w3FXY<>6*`>;|=u1XdtYFuO zyd$-+)Zz>zL&i-u5Fk^?-tX# zt6?E*(jI%N0km6Mr#tMdxCnn_2TJJ|KIQe;LzZ&v5 zg&j{SB0k`9awwdPPq4VYO=@IUk5&JRxd>m<809J69#(xJr`sKOIm46|XF-eqZPKD#h{dw1Fry~3`b6p) zBR#!9h!Kh-Xpu~bP$0RUM3{h1Etm7i-XMAxxSr&RY#}&02nsBQf`x%4MTg`W+O~2m z8jP_I*koC14TxUB8Fsae2GiXUH5zc+e34*4vB@5fJ5fv~R-n>tfthB$&7RE!pwljb zd~@+`cYpUtIF;%c8JVQw4X7Y4G=dPiVTGv8W8!0=U!bI8YWO*7*fdouAF-=2QsfA> z8ZWkLCCtkBMf51B`Rl{qviqlV^$T{&4myUDO~xf^n}izo9|J&ixtwmlO_JQAb5%19 zgsldv$dZgTT?Ri~s70O0NsG0X#Vw1K;^<6Kc|pm{C`?Z$*~)b7QZ1Lk2SXMKUc~kW zUI10;>Lc;soLQuQQMAFzN-mzj`AbbzWpCI4CzV49wFW#sePCU;>o2Vnhi=$oVSOAu#P0J#EU^Oo(MV>r`_hvh9W&}!Js>+33#Y^;q{i_ z!~yL-0o{KE`%Oqv8IqJz6;^8KtqIeQ&Ld2rr;orEewMouHpU**0Z(pPIPIL7p59iR z8D1jI>}*}KWFj12v2Dq=CGCO0o|%9y%3vK5KOivMStiAJi6~%eX1&(bZXU{07e)}| zu4_Ysebh^YKdt6JTpCozpz_z zKj(2MlHwNa9@N532i+NP0NfRV%L&`nR=EpU-pIWNw&nRaA$y2fJdwKomRl~ma%##k zGsN?wqf_g8XSQxm^6RGX-_Bt0e0Y?p>qJL2j!1Q?h;aBuI=w$2ULlBHf=5EH#0G7G zad=@Z7%vlRHBYFZuTJ01ou8=W_{1%q|yHH5MDc zgt|BW0c)Zq+^NN_BIw#&l(70LbRZ=iQrnUNt*sCU8aDBk0m-#Lq?YKx1`=sI1pT z4Os(_G}VNlj{vXu|1H{NK;SvJdN_wy^LV0*qWOqRlpGOH>zag|RKqKljbe~;X8Gix z3LVKFNq4fnYKQ|J+670@ulUzT^Ibj%uC9loKCN3)G@k-lVpHPrxPnUS!H!fA(xi*I zoB0-Z6>j3f!_hOD3-K)@BhZ6dbXDOcXigwCqUwSOf}{v9-K2D{HRz!>bc~y*ak)I4 z3L@PTFkiY)<0ax60TcJ535>mW@lH1vh&XXC#>UA~Am5r?+wDrHS{yifHg-`#LYAI3 z&B22kO9h`D2j%m{lG>3Gk^yWbENiz1xyyN84yX{eF2%{FRz*FXz5QAs2;UBzTdol6 zOh&YF+S}q*1(u8DB1+Qk&@!EYo)ytZR1)X^*Nx6fxjkN|*Qvmc6cp$RDPZMQ_K%E*X=O@`|JiK9#dq0siC=z+ z9LgUu@&c3jW0FGSpX4d#Mx_OzgjaoXiFk`uwa}HUe9!0V4kdh&&)wabJmQxUp{^ut z;FJEN6Sx1%SWm>9)m+$6Laaw(2t4s68R6HbTQDMWo?BE8q2X(u7ZUnc zVXP8c=yVqYb*Sq2-y@^=OiM=u6yDL&(jJv3{o$~m{Ey9sOWANZTMCDZIZewI!--NU zk?iS)d|ScX%T(EWm;&+ZD{V1eWm;yKkYNcyL=!URF+oGHStK#tNGUlGB)EgiR*cD+ zbg9ql9vFiSZ?pSHCnux1U4wpH6HpymvUiNV2k|th8FEj#OCnBqw<9cy-bgkkU`aTe z-Px8Vexn&+;a+YHGl85aj)E{#C}iz3SrTSdLeUl3Y;b6-cVXal7PEVB=1h?YwK-UR% zwZ$YmD+KIuuN<}W9@WqJ7A2FtDKGmkfi6YjR4vfaS&TSh4qo7SI3@yJg*KNr74_N# z8*+oG4j863&e`4`%i>gU<#=@~dkymmP70$^Z{@S_TN~aT_^shy2lsv%I#4(JDl&lPl(h)E;7kB@30Mv^^VDny^Ac1*^b)nb9&mveViR^a?<#8(Bi%7q zAfm|mu6D%{OT^_+N)kA?kGIQ`5RAs0N^fsAoa+w!B75!+IaN`;k}Ker)2W0cc~#X8 zbzJLe^XJ{7C`SS=Ul^eb6^-CM<86eKx}l5zGdIBWU?t&s=v%O$J0bb~?K7yfPFRWP zYSfT2qb4B;4mxm*+z>K!b1;Mqaj50$@e?#6GH0tGdp!bz9&yd>X}xM~?~)E*$S0>| z1cmM6{r+NCR!%(PSDlfl$F4e^kqG-CgoIU(Lvpk&%LIyQrbo+lYq7zoM@060E#~RW zNuHo5JM>`C<@Gqd4wp-Hk(f8mYw_^Y-w(?;1|M+@J%-_}K~$IcFAe*cntnRv!NP~^ zACk18IIrTW1Am<)U1xJU>>k^7f^hfr^!mF%EW$~r%k6wrfC+R`^t+X-p(J;)Uxg}XtC8v$8aUBx`dJOT(d{K`pus{@wsciHn0Gx0sEwzrFk z1Pzs7ry$x+Kjvj_5`@e2e~?62y;>w6+c^FAn9VK+cpImML#vCU(~$uDNpc9G_gE;j zbZ~M7Oha}+2#QeDd_h4pym4C}FMfUZXXO@dtWB{Q15g(Z7L2*LM;9+j4E#i`;9LTz#FWN{0!LKj!^ z!uG4inZwM#aUWnvHoVQudCbU!wrPA%!gFQ97}OVyw*`i-Sy30dFuA>rLbf>{k|^PafNNHXH*H#k;m7QiO=2eerxJA)-Ja z8>@UdqT&}sH{V-4cU4b+uL`;4R5VIVL01CAq=tgYd=E&izZazDaFB=SDF{jng+cd}re~LUS}zPN8}h{F}c9PmeOL${)egpJqM;-$(@BE%^yvj~qaLP_ac( zVhAn575%UvJuNWF+Mcnvb%hbwv+-0O$#x^R|8#X-X__jG40#2BDOFg8Vj-hjwELj?Xg%0K85cw z_p+^=Kz)y+%-P7a=q}-g(q;tX5Qqycn}k4}aBLo&*}R!J$3axkDHfFxGKYde4(m|K zH#goYVK$ASY~l1qL_nV2=<4hsCwTSXYb=;0K zVtpea(oPiuDYUaCmn9ZX+92T^yek}S4c41MURAzZ4X|l32#=-v0&cj7c;kr{;dGr+_L`U>5$nDV<* z_;23+LQjMmLPX0Zjyig$nouqgt7O2$L@)PAP^rv;6GfO1@DRiae&k>Pz{eZjpP4P$X$Ru3dk}8(v9!^6ZV9jS$jr9N<>u?}%G@{NSdm!E*aJBm1%ufMN;SA>YIfcNLeVDWNzkXF~ zjT=Ws>vZ*3%-v1g|lLCC&-{x*a`%r6@ewAU@8t_;7Ac1QH z?gB9o_!!pf%X~Y5$0~F*zhV36d}mmZ$4xo3CveP{CAE3hGM6!raa96mP5~ZZoGe+J zaOKmubM_&O$5;JDlaj; zTpIL;6cNV{oSeg_4)L7BB`Y51&>j{3n*Cva^q}llJ#zWB?OWeH=*D$oyZr`MeHeym zNZH3?(g&PQuY2#H)1$~<=im%-4aoaj+|hkbcust?Z1@Hd=9Z1+owfys?!04>NAdd| z*M-#N0ma_3cU!i%v$HqbR_^L5XC?|kw@XH>7`M{xio@p)cCZ(~D8z9WH~csyMMJJb zc$gzf<>ii`+viXayF+Wdy_hKkHDstavf=Fl!Z+I$+p z)sip}nhE)|xdaEos}UBlyL76TYE&;GB{u<6|0_szi2e=&CqGZ8dO;`IA(MoqdB~7B z94yp|zTmpfWzuwK%&_xNym2+X+(*0-IXG2QYAU zpArI-K3w_F8$jqtcsBU%t=n%a%kVwP2c!NlUUR8?h6u5{97_q+w&@hSqzOU(swqKM zUTs3>|I(Dq8TdT*R3CCYAbtwA_jT-xoQvDa?dOhjzs3E7IA7rV_;dLg{wDqz{_ptT zA<&}QT5X-S5lCh?oXsFkBI}6og7CyY;u9Vmg1jRHp@BH@lLiNfc~&kH9fjBkl)#CJ zX85sMcx}j#yk>vY{g4qshM+0KhS7gRJjt{)$axmyFFlMzjl(jD3L4>6&^2DiFop(+ zzthdpGvsAc2SE2k>4OY5zf1oFPy(moP5o*ALL1>UU7V9SViI#cr6HC}zebMRG<@E` z3QnWbEh|VmJ$+(2#~Jt;G~&deGC>4^7j5XUVY%QN%u$CkWEtrqk3L4-q8} z8wkNT20nyCa?lhBJ4=4NCgyTD!%a{}H$@$X^gNjcRH0L&PhC^iPibV*X<&rK;Ptyi zLu7F^a;~q;>LX}uO?`c2KQjygfo^GJ&(v2Qof(*yNaiVHD4~#!Y5YIMCP5`8p#MP+ z5rV!jZSqMv3#=1W=krn4UC@u6=8JzD^!~c)E_W+XPI?qKXPluVF zj?=2Rfg)+iRkz3z2F=m*Ie$9;`M*CTDHNb^tk>zz zC;S%Vj5{InPKZCz&jqC+SzBK7|f5yhO7Z zYfFS4+R>BXjEv3VU}>w1vN(e2&WxWn38Kryvuq+6qjBM*SjW%*T1c?Kq!7BG-Nh_w zNf6r*wv;PlR!S}?OfVFrRTn2oR%XYjk#@LjCZkC;Askuo^^w0)om5oqwbjYz71hcL ztdNt71L&f}WhGBF7c`<|fpH)@(zgj6vk{H&6KbW>xC23XGbGyXR7K9lI&FVyveLB8 zXhKG(Uo_inOJ37O#mb2wU zM-G*G5G+tRZ&Y=oL_|VepuIg-HL7$ZLN2c)mL4ic#njO5nxnJ3V6j_8Pe{luj<-;j zUpx=_L7gPLmZRVpjee*^eFjA;~Lb8+HrNJB%jL+<^nxzS2dx1mm}EGUMA)H1Cm%g&hBj zCzjg#ii_3$pWn#ZXvS<+I3^bNL$ra5yX-+G8B0eVzjE0SzpOfF##*E4LSUEq0KyOWE_Cj@jlUHbRox<3woTWBJ&1GY6Mc0kVOl( zlVf=Yy|Mxf)DNOj=gh8DCi9E$F?JB$3WULFM^b~8MJsf{W|g6Rw8g^E3XR+*Yu#S( zx-dbr&) z#cmb@sbYIj?GM)aeSD}BFs>);GVXUqg3`(yqWihQf*DXS`p z)2p%y=*8MS!GP5`_VfV!d?^`{tejur6Am#xHK4?yPiET1((z>2%7i?qGF3R^KgEiQ z@F#4*EBr9*wsE$fI)Yx|=UqY~imX4Q$vW6F>d&zvlG>b(aL8w455qmav73 zJyFt{)y)S|YP?xgD4^Lc zB5x2w;=fLzUdg=EF0@d)O&`aJWDOJ)cNX<2wt7xQUV)8MDJt)`TFmZJ+KYUFFv*x< zJZ=;_At@f`45nQKe(vI^lTOuIMuHP-vm}u$3OpB6fUGt%>n7rl>LXk_L?CPdd)ULP z-k;r@YIE>{O^ve_Ge;d{e5N#I<5>GIzT;$$F@6*IEynhX-;0bzkXXlsE4=C1RMjB} zRyDyO()#I@SIjNur-6MOFtmKZuw?qqOYOU|q!N705HfxBWp?vs;mfAKG%VtYf#9hB zGyt??p!!d(<$nSmOxyrcTcu`>2iqeK$%D?Eswc^~oZIi7&)aQEB9-+ui_hb`< zC(X4?tIgMKwvIb)KfZIoVGUOYhWgdY!f2=DFQxoc?cjW`)8gLU*?(X(X*@S_^n9-) zoGkbBU^IjbF>~1Z735JcFPY6UNjPgJfp(yjkvNtX`v+~&Se$2!zgJsctkF_1 z+aBp~Qi^IZ-SMd{Qau`yq~aWE@(rO&Uo}DQE^1;mp4|kMc5vr3|WuITcMsu&f9wpfCR+(=if8W$s7GnK&;d#3_4#Q-YhsyAW9M-4}e zZ{ zK}$SyRzz{d)*EgcXhN#1iq|n~ZN*fdLshfNNIr?s&Y* zinsp&=!w4JhDYD@|D`usk=t#2$Pp++qa{BE78E1VV$jif?Ij9H%l+w=Aj1Y*GmSt0 z;}1oe4o>gKlIO2jveOSq0TO$!;S;7WAp=Hwl?hu7zGg|52I))Mjg%wBs+zKBxopT3 zZ7XTrGf&Da>uJsUgE_cik%f1kb~pOaE?u%IZhXQRGDd)y%*9+A5UAwwy0*h-F?kI~wQg+0Bz91*y6C3w?15V>E6cj6R%I%1Gd=aN2XC*GKXNUZT z;g5|Mv^qfH6|*myF#@0OdVMD_C3K$8#l*?8E!*Vqeew_33lwZ!#96r!KMN*jWIeh}{m$S5!_X_xLlABo( zRGJU_8LuF_8QvA(Sl>Q8<|2ODherrx1zoHcs9O)w?DM>_6y|pnCnh zCJAmYdj}UKVp2hNVOWH_hDXL>B&v&IRAR%jCLIuka6<7rL@_3+8IK>a=cM2a{xbwd zOvLdmRK_+02Ky~QV*bc9tMOvg5O|eqNt%6q*yF2a^D{o9k95K)4{X@!TjLAhMU7pT z(}nDm4Xeln)pn)2eU2YDv;a;@L}bFy0(QKycaKB=8ri8y#I6KvAtb9n7lk;_h2oGk zF%cts*B(I)zKzblq7=hR)}8@GytHIEXL#25Kd{pRdR_qc_azcsr5Ca{LeAMA{olmc z|6ny8>hg6r`Kj%m97mc0H`%%V+wE=dbND#QC#I3v>E&ou5oG2otdFC;Qi^i=eUw)c z6y|>Yi6p~|_PX#ad5KqOF6g6GUP7V*hyR0TCpd`QA4-eWO29J<^pK08XTAj$Y9qQ}}t59+W4 zRBZ%3aoVin6BAO)tg(U%rGTti52tt-0SStXUnXY7;dN48PQibK^r-)+e~b3;$P7eI zvB3Hz#fQG^ULge05uy<`fD_^a$k91!yh%SH3})ku`Cs%C0(JjCc(W5?$_2#>YbK8v zM3_OJ!`P_?oRSci*|27pi4l$vNgFaeVfd;ktm)JUa&hTipVT0JO8^8E%=ypG(& zfx4QVYf9Q>+V?3AnVo(`Ry|yhXMAqhvOgw|d`g~ix&o*(#eZXtaRCAUG0&njiKqSK zTSnw8fKoxh9aFrFz(-t;Kp0fyqhZD`xj}0_f}i;_8J{8%#wRP7TPB3@GSCrOc<`9+ z1|5ahR%r;A{s((DY-?3C$Pu`O2MM)PgV)a#)z29>D?z6uA;}oFFNkw2DR5!P^8n=e z8^&XxUQf^N45rA;A`3c6(<#RUZ{&+YN?WObx45qf}%K|TZ?O9)BuT!eG~Gw#B? zfOM*;j3A^d!htu)crlzYe8jk2TO0qXIf>B(+Tp7Cu}vwuj7H6+T_#+QI#70sG)Dvv z9V$n;MPB-CxaxQmr&tc4qADP;_)jj$&T#-1-H0PmoD)<$#Ea-j<)Ktg5bYd(g;Agv z1BQ2eB6Z&EA27SlSD&oDP&HT6>9wQva{bsKNX^Awwujm^_SWP-(nzl& z01jwGLjaCzs^nJOL`xtj5DM1VMub8L5ql#0h%C6AevrHQOw$uch5s)k{TUMwRh1SY zDKI$Lb3Y{I>!v(%Pm1s-La#b;zIw^|`nuVC-utB2N!;ba4 z^PYydt87EuVF+B>Zr%7)C*SfB6#!Lu1~x%uj6Wfwh0>`QBFwr;i0J#`u`k$B(G}qx z{@0-`#Kyu-kng#gdp&5l8@{x~B-!8Q9YSpeC!<$r}{4 zxzV?B#6Cpi&`so!NTw{ssL!zwK~;?7GUDNNTtSfu zsJt6tAs3znke$j}@n2y@@I{u@KNeYz55Plr$L&^`dv2kcA`e^yvi#pAeDZo375!o$B0<(CkYfV{I{#nX|FF+*gkkkj8}rgj#iI6<&_1uF)I)=7;wQ+$EsiuIhknDA!I>)2>tkEO|q0a zZT57Vo#lAki7fW=#^ZF&x~>zc%WQ6w-0NtJFJELdnTm<1v4L#GsAro3Bs=f~#!jSm zkVi!B9EhV)3O*QRgan;l9}F=(GoP1H{JaboO~rUwl!n4KK&YN4k5oSeWE_vYKH804 z-EX+xaF6j3P^-|;mu{cA!oe-&hAY2JU#_@SUg48&P@`jvi1q@`Aix8BK-#U#{wV6o zP^T5J1L((}h>Y%|BnFxM%_mOR-y-hFD5&OgI9-6&WSZiKoh}>W7HuLMwBZSoM{Zzw zJBw_72%C*zC06UQ_rDEijSk~u=or>Zx~Qm`jM&N?Z57WKMZ?h`IxWFlK#M)SaGPYP zcC@zYscJwdRStay34YvkL^be|m^%ay2;SZ-YV~rR9XUn>^w)OGU&xmN!CX+b1*4qF ziIy5-q~NtO7Rn`u$e7MfpDP|x&}J(0{{etO4lA3z8F62y65z$|h}DE@txB!cWwv?( zUSqf;t18i)TS_2H2OiIaVY}gZ<0W*_O4cQbYH4x$(??JE&-+dOH+ZMBL#qw-eg7ni zrOWGjh^)fv$h8E=w4_WTpk#N=h$lf%KZ!0Pm@2aCI7*NxOFR-U$4MKJ773;3j1cg+ zf~phg*PK{DBaw>T26^_Hq)b$aDQs5eI>O1Zj#$L)%h*wHz=&>#5Ri~{YX3iaS{zhnxRG__{Ul4J=#%mzTr$B^&lIZwCp0)ZLOqEUCX3L3a=gjYh*VN zQa3z^X8evI?pI+*qdiBz=_@u9SZ58_`#M#$Z9@U2N&_FWS{zD9;zZFSQ(jvn7btZ4 z!zmu!7=hW!zKj})vo6#J8b_^Y%_am)Ou#FmoJXcC_K1_THvs^J$a}#T>d1RNf**Ja zO9e4tibtjl>HMPi;CP;R)~~2$;k=&L>AO}J4(P*G+HmM?GK}xzX~p+7$;ruI@w!b` zhWafMC0l}x{;cs7PHEv4bouyYZ$LiAX4)T?DQ=DpM&m(t4ma|Mn;JImLY9;FVZq@P zFM43zZozNseLkN574`Y}fPY9UY;-CD=P z^$ib62`Z7hx7zd27Sjxy*7R^+>t#(3dDAtU9{$v12HYykTqWlJd&(_w-oFx}UY_(} z@^#=I2dGl;c>l^|Nj!!pjpr=BS$U`TjsQ$~kAw&}^a8%71^47Mz8~ zT)ktXZgcfx60XZ-t5?E`JbJ$@0L3PS(2neQCQ3s48yhzM1eL0GsDmRL5}!pTy3_x$ za8?Y)c%=odHdc-@QagtVnjkWue~fuC3ZmK_hTVq#di-qrqwS{A_M=0KqoV_LQJEN6 z>|D$rHG7@UEWUtg>+k?p9WTO$R{jThZAa@aqH7MpHP6hqxA_ktUc-3hjGOZjw*?N& z?>K!f+9#(O&KtxN(cRTTxO)})gjy4dPM@w?x8Bgwm=Zh)P6qK@rE&j7Y%(N~aAgQy zP@d*ph(rGXIV?7vhQf1p1!wd}!zDSC;N2D6VKo}M!F}V(=}Z4$yw&&u#w7Bu+6``a zP}<2vLeq^IX~4}$=vzBdftS^c%i1ubrRSe}b{^eNwV7t~pZv`8I~~Rs^pQh}v8ja? z3+zWS6SuX@Z5m6$Qjs?qeq=m}40Q4)$>9jBzKK|0pmCVZx&B49KUp_5Y5nLl7{ zHZoq?yYis%&P(6a-XfDW4cc3@etXu&TXfUDwx3gIZ|Jn0`N!MHZYT#&b)CBP_I^hn zW%dQV=9c}#W>j(oLOx5RqqX9*5{p9K;=c4jt>>in7Om&xwcbK}bR#lqk(+Yem-aN@ zvh$T29EZp|Jm$=7t@)0&Em`sggUh^R{B!f?kwNc#nKm3n2hty+l9Vt7M>(>^8ofuW z#;>Ej4)1oZJVuMGsIunI+gaq5i*|tMiVHUp{E`vBbP2x{Hz;++A3y4+&(p$Dx>3h+ zghcn6JXX5<|#lBiYIc+1AW1Ao@uNwMUe|82tpjF&!!D#rJk`VBz?_ln@P*}{bF z-zT+y8ggJqLL)A6s49WwZ63Gpb-R7@Ia+qvtfkG2O{G(vQaGo2N^!;b+1zL(KkT*I zoxClvR5hF1TD^scq^3IvXP!4aU?`hv@R1!aD?qKt%W$PY{v#=C(NMW|B#3DZX44iV zt5^iL$8I+(lF^q)v6QJ;Jy6Xr7qcB~%9jD;K#(xDBqXxCkYSr?j zSl${ZZ$ODJaU!&zU)==hjE8sWZkzjIE;HVhs-ajOxoi30Z=vs;XsQ;Fg@WcKdlDn< zk-lnnZZNB)yY90)B{n~xgkqdOggq@I|Nm}N7QLF(I!&iiQANp_QHBIK97vf~uBBb= zVRp&swHBNuRna<0RV`s|)<`*NXHSuq0o0*~2E(`mu>eU#12$gtgp;PQ85NA17fhzY zct%Jedy1L9WlPqAJ1|e@qli`-FYUl;K5fe3v_Rh|s#0-k3##U|6*ZTHt2^jHR@GP( zas&129I+%DS4A*-^c1PKo;BH7Z!YfeFz#M7L$F%}k3Z^1SQ4!i$`_iUog+c}`!Z@0% zR+FgeMxs=`-i5Ro@`fiaeGV8J>2xO5=?2W%=y!&LuX(%G8KlXO23A}R=DbluIn&B2 z$|<^Zl=IS841bKeInsSL_$p9Njw786US%aTGSK3QC^JMuv9-79P682F?PVK+IcsZp zYl!Eew+47Zk1wwLZ^H?V5@pyUAfA4}_Ru2OBfF+V(3Hzob}jO}RjBj0hH4_19Z(1$ z#m8Nau!eMsKyCx5w$_kNHjEp7apiA8#gBte1WiQTLPHY?intcHxYjb81jO>S1G_=j z=ISro)H??d&s>2Ya-oC*!1+z^Ls`%OXY8=B@^6MeYRJh5*`Wp?_L|K=4x5pgYb?3B z!OM2iq{n5C-xh9IUI!cAsG){BMCbrq1BkGR8itgOs9`Fy0W>tPeErgE#u3Bk8~pRv zS$`_khb}a&eSPEFNrb})MjHoG@*2W+jZI$T@ycIvBq6{9umQKM1{V4cIyS6>z9dP& z=V(B~3;~IY0 z>+_{FJ~o4zP3EX;amo$qm2O6CG$YX5<+^XL-932^!m)&y=yP(lKIA*|{1NdfXFa=}SQqDvpR z^eS?Mo`f9mz`KmA%_ZN&*j^1Wybi>dMS^y@8)%m!0v&3{o$dD;I;2?%9fbcC=+Fk< zAj0_~i311SCB%WXC^6vEztKX&Y6-#Ch(HJ3iq|o!eM@x{XaG_E0KuPbl7YF#qD&B- z_Rwe>*&RU*B#1{?lJJ2f10*m6-yn1q30@{E+Shm;FB`b@hlX!xJ1n6u2OxJqdX=UE z{n8`k@?B_vo*w`whfp}dX;kKi4eUk-^z>)il7Z)e@5l(?qgac!WP<1Evap8dp|%rr=+;mZpT`@p>cu)-b(oKq3K-BUeS#_78@(r9LWPKw*RyYk&ex~Jx788M$H5Jv{f7KDc0)oj6yzhq^46YOa zcgB1%ir0vm5}=$s+=U0ul`3 zTq&V`{SELmj}Cl^x;)BlHCqzh6asbaELum2 z4PU(`W)^e{$|`17XhLQ&=FK6q8H8uhAAohcv~02vQCFN6z_|$;#tNYz8`JaJlu}lAgUZKxG7SOX8pi$#~+uWNjvQ4LYOo#qpqFsR) z0r|XV1cK=X5rz_SNMZ|dBB;LY($5T^MHeQ5!^*FFhVP)FW z<|}LObKg!env(=R3b=DQ@>~earA~}O@89wrXSJCeg zW7K6?L3Iz0e5*8_K4vcAFtoSwZ#EHKLc!lCnz(WwYt(SHhUc!nb+#v@H z;_D{0)9ffl(NY*Uagw8hDdKwCW>W+=(5d;5SlFx6^h0Wx_R47m30qiTn)+QmP?*6& zNeEF?sDtDQf{8Teatn+qXQ)zwcKQgMh>*0`3tD0e7)gOt9njS2b1=&1fhOWBB;f+7 z7Xekvu9&`b1bg|UWDnUKFMS=EuVpuzU&ls21n8IcDAe4w_`x zU^$vwOcNJ&Rs27Pg*ZcM%weXHZOFiJ^TWIaWG12tZmStwL2jG7%vgjF$!AN^DE`+z zdMbYX&p2b`*l`-kqn&wfTfLDs(lfiOf!(~YM6<2sl(t%G^fI+!O*@JfG2(}{3OL`zR z+Mr%*R#_t-;d0oH*UC2qBYUk`Wyeh>ht;M?F2HtQ(_p*TR$;qNoZ_Uykl=PaY#e=Q z7VG|~hTBE!q6*B;=aV(GPOdZZgpBxpW6g-VU479yOY}q3e)*!Wf<|2ht=oMi(iF;y zff(-wT1Sv34Xy(c0laSIqge4@YJNtiVUJ<9?jNp2cxhs+c64m)=K9y_e^58qm%5e; zN4;kAZ(sWRI_%kmIq|~M8%w68IzBHsoi8Me@BxuERnFt4rOlk=e*jbxGd0&jcyGn; zeG3@g8b#g=!gFY--rK|Q{#5iZu1G+RH6c8INCc=C4KOG#&`~}44^Wy)%!wlt(l9)N zg95{gUxl)Xm1BlK!Ng92;f{f_*}A-`J-0Y8u-Fg_9mR!20PqB@Fr5)uXIjwns=|B? zxxo2%nR~O&>DuUu)v7Hs4MekTJ>uIF4z(s_oQD}T(OPT)q8XC8E{DejS267-iR~Uq zRK7zJ;^8tfaK(5$5fpaYRj85I5Y6IxIeU#Hxrh813E;*ElOQJ-Me-oPcm&Kd;W<=t zkkfGGKMb3UJZ9Yq2JTf#I7(4yS*7*X)w*u11K55Fe9Z;yYmgQlz`lOd?y#w=@S5?` zsg<7@&Lb9<2ExEOBm#&JDULUoC>u!H^*O1BZcj zpw}BF%DCl_>_kGF1i%sXO;R}fMa+h36Hoe&>} zeIytaRs)PGLaNA}RsvLk_dL>#aFV=Jl**nMX={R1nNAI)Lci@$+zF5h_UQIYcdWkM z@v`W1;+0ws@jHHDAktm(w-plOU2!qqa>~YVbgaswv`8T{R&HOnTc8@Nh@7_3U)w%` zDP2-wbw2}4Nq)UR)4-Rr0bEO}q#Q)cOCyTVa1O79CTVH}I7xg{G)YX#4LIpD81`h{ z-vpC*wxEMaRQGOxNscT^bV>buxZ7xx!t?2#$pqY20Z=Q=2qEfsf*+fzJ z3@%uVS#FV0T~5n_gRuukeBqGAnjWl#EMx|OkPI?D($LR{S!pbp7mX+yW);@D=1P9+ zST-I%ESOAV3d3{6qfAAIWmF4~>wD&}q& z;%sPr(LG!BC<5{txt`5Si_@XbO(m4xloJcqKf}Hw(KHIDSZ68`v~-=h zZMoQb;mLOo4U9=PR8|8Xcbb&;!7ati?5^dJ-ZR}v7dkQ|x@sNK#8lAfO7zd~zP`Bl zo^!`4>5;*KxH!4{=;7TlhnwYFJ;@zS%KZqG+mFmbxvgVs!EYS~O~cyh z_;%=5OP~t+a{9qn+d#g?)CTjc&B_`z^3jBRn7jb;?c6;6>7$X^t>bPMpyV^g#4WTE zYtLnN4Im$sW;?gGs0z=yxsHjs+0B9W@q*i$ZV52Rh#@lvrty9~;+uAtqhyh^*= zx!vJ`@rCyCbp3R7MC63hlB4?JN(Tji=i`JVd zi&Y9ol0GyJb0lH`OZkTD(ckUdV^0qDkH2k+OAYn+NBRD(yS8r)0?e+c@x_Lw{y(7G zexj)xLM6l4eFFv8((JB@NxR(N(3PrZ-cx6pEzQ6K#94 z<^1DM)(76Es3nI68WfueqJf^Pg^*0A8JT*I&YR^rho-x`sG$gFG0e(*(t8({jzn(}xg}}LFlG9@aLvXMYYhA!D!OXl`jIk&o?)+hU|WuqKjuxxe* znHtZq*~7<=w^T;T0b8^?=QX0Ej7N5%FOf-z%2cvC5PL=_&ktSy%8su4EoxCaxRl_x}c-Jt%vR$8@+Jn&8?-=zwz}uYsYHA zu81eb{n5(&pYJ$6fNW`U8d&}Z=(S*IsVkt@BGpgmwP{mkrtL%<3KbVfUx+5b;QhaC zih(*h!O$=a#Jrqbf1I741i6s&L&(+9_0iqY*;R7g-^LH@yk(R_FB@m)bc^ake`qJ2 z-go3kX~&X7BNYN$t{`Sf>xAl$zbT;x&fj&qJ%vn0d!h&CE3@F^OlWB}zUz43nIA4` zMEbu#B5&0BM=NtWiB@H57ZBHcod=C}=rT1uovInOZy?Xxr_SZ_)Fh9xCQXxF7>a;i zPyW`aj<+jKF(OU07o{fX>IYGZS9+tM(A?1O=a)Lp-G6WQ+ZUzW@?$Tac+pq!%OUO? zE4P1l)9yC3ifu~Lb&w>TN^6pIxe&d5D!nxs;xrkWdRsE26UZ-vKu(j8kf~Uu8x$(d z4(@&d6uR$1*X0y?a~aa8^98l+19iT+a_e^|8`QB}GF!*ZN6>Sn^F?3ww@u%DeL3Ot zE!hT9d-I(-z1%l7IB1wMEN&1d__erbYxW6lwPv75^EP6e&~O$`nT3R;NV_@`-$8W( zdPZnQteJX7lIJxWMlO#Mtdq5)Z}&*qm895w%o&Y^nV`uW>YTp*MDO7HXPi7^k(fla zp6WVraA_d!@`QQHj>;j5Vp^t#4ytHvDg#Wh*-U+oc*|h!8Bf=B}gl~ z?mu^GTQyU%J6*CXCwt`5#Lk^FUSCJGz*C}2DQA65>qwVFV)$&#W3{e)XJDamO@D}b$k`WjJ)q8O%e7qYj=)Yr9Az2P>%+70se`sz@02_{H9KXKPkq_+ZI~q) zcHCwtqdC7;Q6P5VZcX4gm~;dv5Trzo<*G|f99a0N2pNM&deRyGK=FX~U_BXO@|#(z zdX5@NlGDxt%{gzl!=y8A36pu8vLM0vGTB{D^yv3?hr*jDx?L?F-o3P!qkG>oX-V|X z+;F1LKfGyc3O(m75}j!6kM^88v~9RxM}Qvf#5ub2!i77^LJ-~W2HPhO#hpM)Y$g%e ze|CnoQk9-Qca0M`(=?k7`7n-{uXOeWYbR>?k}p%1hZnA&u?6zN$YU2yF1D~r#Etez zGLPr$5Pye1`w3cQjD1#;Z#n+R7anqKHX6e%I$4Pjl+zubS~%el@sp8U^PSV zF7V_V)M?YhhWiZLU#yLTCt$=-t#*H5&orR+lWKJP_JHkV>JV7;>T)V21n$A7SHLTQ z*M(Tn&RCrhd9BBN7rM4<%xSVl!voQ416+V`+6iAs^Got)yQS%173i1fCVM0Ie>_EL7Bh;piHv+Lxc?d#apb>ZGK6(Q)fQ@w4Q zZj69k0@&qK1^7EwTQHqRjR__YnxQ4yA#tv(Y&B4`#}s8tyS{uJcpH;!hP1^qB;@Z zsnM_(zd=}?vi^oEF64HUCmy@!NYaEMa)p7ZO#bx!4}aQSK?boJLrN+e?W<;-wR=b3 zl16o%x%~uKIJ+M63Fd1J!JqZdvs5Y&s5t^74@b`_ZAN?p$tDlzwrzAO9>K_!1Oq(Qp@G)FK##c0H@i$z!~b~Rd6Pe7F=TIqGQF}K%^D7GIL@nNgbec4N$PlGfW?((Iyv3- zEa=r^s+qJ62uBO4kZVfwgxAic)gvBy1v^T*vy$w0twzqeIItHdegr3e6f+*fOvr?w zi8)vvOvf@}NI`U#&up*kd}MEnztkIR+rMKP^CVgV+Tm{#P@zpRzTV8>AvZbwy*T}? zCJG~9D9r=-k581g<+j|{UFe9_MxOEY9oq8#hC85?WY*2rP8~m(t&H1wnsLXxfoOhW zZ#6Sm_C?!=qtUHf#@6`;89yRa>zsr9^ybZ3;vcMR^{bNu$%s1_l@WdX%aybC-+`}i z7BSELFM6(r&fsM7c=+(P*xZe_ZORchI1~B?d#kVo^t;C!aYFm66R?xGDo%tSFS) zR3)xT-}yTs0Cime+yQjIHJXd#yIRvjC10clDVWry;0m{;+*zL5SG~e#`T0M3Aq0u2 zT8yD8!%Q@s`ZxG5$KiWEW!Uo4_T^JV$%SQQLfkTefA*3i@;!Uc!OXtAytnNUO(xoM zx%(j#FD-{LSxM7s&6oLpgWX^@!6~nHGHy`dU(Q+>*>%oK<8XupAnb0Qj~lpb?SufQXu4LueyA}$>3SX(jU1v_8tnj!Vz?m6bb!HCCwC0DlCT{up z9TRuf_?WQsYcFZXrM)n)MRT71!?I4XA6e(t*rjM|!js^8?_HoFvT_6Jy?Vok+fl{=AKR6MrGDlWnqZ_izdE5l1=hN+#n@4Ey5H(I9cd z9Z$?2e*X;>mnR~izr4hy-Cp;nKG1*e#7+;$ZEcIAA&bXLvo1=J+kJ`Qu7Z=YDjpSG z*#RNO5u$iTsqGqnHrVM#w8YYRVxYLNdB9!VTnly_e0-_6dub+$V6a7|TQ=>gKJrw! zb8}HjNV`5YD2H598Qn5mDFz9vS&yPPVJl5DPcQV(mL=TOr&c~=`I-6a=y%iml6jyL zRuKWEsuUX-*dmpP<&>6hmd;6kApMnOk)$1!Ehn~M_HB6&E(?3$^OOlWk?4de2AU_+ zOiF>He+4BQ0~B!6Lop#vGxF~Sq9VqEq2L#}UVrCxkr>*>2jrgjzwoUa@B7^0oDhhM zfRZIH;|X}$Z+K*J_PJ*+798V89+*NJf=tgmp0###QVi-sDRg5AR}+#+HtuvMX(8r| zWZ5VeA5C^0n9OZD^S;g9%lo#aNCR`3?w&u?Hh*p@pX{G4qPWv-af$(j(7 z_?+fBSTxT8B4_=nt8=n7CJ6pSOKRlo?%LsFEfZzcDS6no3r~M`*S*gk%87xv;825U z(5-FX!;AH&9=#*OXGhwKa|5aD*q$4YRjZq78J-WN%F$;6#ja4GnsTSwJA_11qCJVW zq}tJ5bk=s%|ZvQ4JQrNx^Q4e^044PI+&a@w+RB>wgp1< z@^TvuHx>7GQu zc3mdTpQK>S(+4-_7PswgJ^#0-IEstQzL98Q`NZ+!@Y&^^(Zr26jH0sKk-qrccaGfi zxtmII5bgBT08!Dl>mOd6efGoWQBDW7YnP_l^!<1u(m`p@n&Pc93rna<}<=p&mcI4z!(|xxbSO`J>G{v1g zJDUyH#?ww!5kW6hnb5&VgmuRpZQCPOzL4^Z3TE07EB9S$*nB&D!r{6!&zwAa^yEpy z;W4o^BMw-ihj(a7d^p;z(K~9mZ~ej15J`lwKzhWrNHCoo1td2iO=4DWnaEer7<_6b zZGe5y=T-Klk=ud4Q`Mn6dbZ!pqBFg9(}#LS?moUNn!0KKn^Jx5*$* znd7tJ!CfX84ZoyTQ{8qbH*`=(7W5a|{yz7vBju5{G|zcs<=Ds_8oO}f(qLEH#SedO z*Hze6f9jFd6E~@!xRsG=Qix1+4qaEzyPBbYi!GSaLjSA-BSrkG1SH?Y+Sb7imcV!= z+Sgvd9J>jBu`li~#pHZIH|^h%aKln|t)0|GO5k0T zU5vKnS`S^nIFJap^o2Ud$OxV0&D!Oyq&3N@yK44zR=G5wye$!5W9vwSO;PZp@ z-R48U3Epp*s53`97uq`yTE4;PvHH=)Ld#jRy!s@bdBl<0Rtt z;xbZqaFP+60QYKQRW(foTS+iXhsv6lVZsFMnyiIL;5+{3Sib)DOISZ@d5D&xsji%cDI6hn}rUDi(4$JmGwVXy}c{iIc^kyL0V{kA7zMDlD%( z`mTEmLS{`vm#f90O4R8dDyOeM4lJRsdSDGpn3%lF_%4DakZD0{U_yD}*8dsUmc(2G zhAq|FWvf3`^61)%@K#x&-LYy~s^}c7YlDj)``Cxy|2}fTrkB@PjeFMV z(-+@Q?%5X&0%7sR4J;;80SI%Ow`roft1ND?k{qDFG7evU)oz9QrpRHfy}{-W$8+0@ zV~^f-W5Q^*A<&V|-Fo5T=V%NdumdNOIkcZ9%nmvnYB(PrzGD~6ab>*hX3*Tb_UMN{ zIeYhS?a!<;$E~~XpKX8SvGWCZ)YZbwKr%DB`_OW0v0jck8GkgRrmkPU{m#34Tla5m z5d#su$vRWkxWqum}&rzSW{>X5@;XQ`ImmaWA zX!_jN9BHD9ss7xMd7 ze&@lUB|EgOTD$k5i^h7Y8k4L}iAUEN^}7ZRRR)tUxjyn? zDDX?mPomx6w}EbSKKbNFZrzl~UMCtf^DK%V!ADOPW21oUMx@Yv%Ib`lx59WpSnJv)A(Y@scm#%%$){lpi0%=XU~ zBkq`44<5BJKJS;cWJn**O4Pt1>qrIePGUhKAv8i_T9}bsNiG2-Dd8b%ZJ;?aCw(ehCox2 z&F%L?zByMsNqX3LcuqTy-evh$i`}r#aEoE!rOng0>wUW}E}J_$W7E}vt<%Qof$0Hh z`wbxW%gfufkmZZZlICB6v`97*KwrQ(?>Iid(Yl`~62kM<|c_ zRZXlt5Npb?j~p8msIMi}2^xI1D&o!P`Fa5-j@eaWROE2q5c*t=QT3ap#+X=5%q=&C zN}an;4`jw#gF+g&{D>yl` z@Xx-EmW;zXHRY=oqO{4It{4w0i|vDtoSLl8-B=5Zj`q7Tcir+_OTm|7=s>z0P%9N( z&WCS)YP$E>{-q=)s+vid6!GOdXEVB_6`J)7f(p?i>6&iZbNY(AQLJ>%SRtpB9Eq z;9!pgvjtmj0V?4i9NU!G^7weiOx63j;L!4nrJ!rZ1GXKu6!NCJ>wKGXE4XtBflQj(DQeHaMsvE0r`+);fYDA@>aY>C*+EGwD(6+(XaihbGF7FLb2eAz_ z)F9}sP4vZ-odX~G#E0vcM#xvy+|FF1$WyyMCqkC$Ew|lrcrh60>&WPqAGBma%a%1- zvL!w^2Wsw{`w}Kx@`h}aq608DS`y|JUgcY+X&Z@eZlEeexN+DLv;WSiYBnO@!h!Nk zkhKy))hvd)uf{J>#7O<;sHzs!%IUMGTQHf5E6b_bl+7*%LUAAq6dQ~BEIkk1cXMo& zs*l+M)@R|lx1*-nYPiW=AMq+s!%pN9p%iv(pcr06XbZB}$Ijll-dgU-3RO`D7c-D2yA`zp}~v9%6iSF}0bxDCM{kaD@+!r*UEDu{ zsAn_JLnCc?gOotQ+@uPr2-+k6m+|6i1XQv4Z=HuqBD|dj|r_kgAuAWxv;5= z3A87D5z0FKnXN0&)b>p_&dA5Czi*Bq;VfTw$g{JN;biNkO@?GYEb*($$!!jY!BE!G z4$U4Drv)BMZEess5p#q}oAfrVh6Jv-3N@ppkZ|2~w>%Xb8yl*IC4bbZ^p0+dZ@oPl znAkko8DG8OUkjkOW(TI{wni`$P_QdobE)aHKk80b&0(|Cm&oR%z;Iv5MhT+g2zCNy z@`Vyvl|b^qfrlD6FoEP7)|f!@5kyR!9!26E777XesW=;NLvJu4G!P4n_7$|7;xju)T%_O){$GJRX-<`NzT_shgBBk3^}U09`Ztv8bI>+H#j@qA}?<>OAt zXbt4rLkQCQDbL9G@H4EM^r_{P8fhPn2lFA(%!D$nA$O%xmb0^i84ZLdF=ZTuYxxlE zqiKg*5_ryT^HS+t(#8d4M?N1MiRQag^o9c>gh!3ob zf2~Ca(tT5N^GVgk(7bcYYsR43St~g#GZU2=*(8NB#(Rza>gHCv$>Q=Q-D0*_az`hP z%f8u;!p`||uhoj~1w0i_Wzh(q%ungO@YFL4*)8=7%Xt&-Xgk`%CJ{YoX(=f=%n=~b zgSEU0M9F5)&NWk9B;IASd%2?Gmd&n;@r&+Uf3|&#-#1)N4!4F@9&!&&&!aVZjPrGM zp`X2jrHnWT2wyK{?9W?%7x9Eg&}U}m#Yqw^1CBTO0YgW}eXSoQt|PzPefsqArTd;V zw;pdj?#^cPGa?JGo;rJWmBS>YM(Q09P-{eYemRqIFgHLrNW(kg_*&5CDjcus97mWo zi?pF8$LUZs>R9^t-BV&PDN(l{=JSiW-eG__(#*ai`M1D*E&6F8++S#LKe@PL_y6*A zHP}C=v;UmY*E-o^1N#GMk65gcG-!?nuvs%mu^Voxll%RT?qGGR|d;G(5 zp>AXxClk*BS{UtS{1{~z_Yg@4q$`kw){2r_7|IQwcsG)rNW2t70h+OBEyKpEh`h^g z_i!Z@>Hn1MjTqmjWP8%BQ$FutDPFGxS3ck#nwm?QxhUs>EXX#_K^dFq9%FtQU@cJl zm##bgI1DZnJTy1AV~3~v;OWy39XxA5=fmO{B;@7gqT!-02D*P%Mm7df>?-lkP>4;W zfTYC}aDZH^RX1_f;xXddzFq4}d+?ap8L<=x}z;ztq=99<++iX6euNp_O2Tj`kWRfUTh2W9~ey<&y5_tx7QI#6}*|L z-bB-Go4<%&AGe^cX}r$w*taiuhs$sw7F%{LGr@~c@Yj(L{pcXmOetgzfWa>=1BlR4 z3SqHHn6_cPiTz$vYu#Y4`GSPQzb><_rYpWfhXc8=N~agvdPkL5!Of(l$kN_@@7Q98 z)TYYL>MDEQ7^;ru>}InN%6Qf+_O`Clj@eQFvKYW%!Ir*>kNp4Ky$76JXLUAy=iVvz z&YgDe^xk{jnb|2@W@cx5)i$l#?y9%lRk5mzT;y)cy@HLgF{Z{~)G;5y30)s3~U)Pxc($V z{eN_kQYf>+YVJz-I@7lK>kLB^V^)H(sBDF%tiEcfIsZ$#iN~=+*e%!tSmDHVn>Iqd z_Us(l($e0342MmNR4kbht-yu2u6N~HKYD}kJmv5Pzr3Rw zbJB(yDRj{rl+#M}z|&7X)}d-&wIQOA$*eXD4J)vOdWTQr9UUL{tHOI5G%lmUksAn) zU%M(vky^ooP-1Gy#bviXq!j3^=J!+GJ8x`PW(TG-zSs@4RYpJ_P$PrS;q^6dL3qOGrSm5axD#;E6k2(||h&HJ(SC;O#^Rh&&N z_&FYhY0l)2Z{9q67Z!Y;&oxG6i&_h`tQzPsz+$Sk z7BFazh$B^LE$F`X?IXiC#8W zj;Q)D_+g)e9{3kAJC;LF$__RY!FXH~d@6oDrScbbVojh_qdtm-54DPJQ z18bzv71dZy$drPQM@R~1h*1v*IXZOJSVX6yUHXsCKRo}${HZ&wEeX3+rIUG%y#LIG zL(goBsckN0#b8E84)pYX;Nk21^r{0_!^BJ}?Pdh;C)|Rg&SM9LzW9S*9vFLIS5akh zGV1k@e(fl!P|*fO?_>8|>8AoCH*MYjlW%_ke>2oQok~ncO-@4Nw}ITPZmm9(jw(XH zc!20+xMCM|WF9ddt{Dpn1a|1eWPNTcB{VP*i`61fb~H?l%T;p50c{`UL?ex*(LDqB<&A zPU?HHVVfyRZ+~$9oAckA|Nb#cO9P5L<^F5mcWV0J(_1fbQ*xc1g^R)k+Z?y-?R(*y z|F~!P?wu`l7lr18_C9v+VL#~`x_;xHzkTh6k-me&Ay#3UN_iyjE z~S)iJf=8p9XejAzH zH3Ryuw!Yz=wNTQTm0|{QvPg|;?h1igFxfm2P!$D|i2JW4f0^LC*`t58;0W?>%#OQR0fL9kMpD-aHc zSna@?$^M3(y?3_Zw?}7p&qOq=+WNBwnCs<0ore%Pu^PD5|i4y?5#i><D1sj!@Y5S|52xu*7)REY&iEN|hF?(kpQ#_Q9tZ4CwM1t28S*y9&-qsvfBAG!8K2oIxnQ8Qi zcvKzjHi;C_6AGPDl};?B!O6yRa;d}O3n_?Tqh0>2gr>~Va$FOw>Do*9j{zktpXq7a zLF`#Q1fn}Nw>q9Y48J)shkA3+Qwt?uz`p|_a1+9B_v}H#l_5a^#|v}6d15%&lv-t; zv%r_^%&9a5EP0@dZBXrfBH0&kQIhM!L4&Xs`fy-97vF~?rz(9oO)}`i8C!25<#HuO znw);WU#0CD9qS19?7gE6zau=mXD;Gpt$#c={OG|RXm~Lj*KJ*Im3xEHa6qMj!F~!y zZz4NZh~Rgj?i+bMc``T zI$&(-AzsrDgQmA=BJH5zFutk1eQqq`gn#AuTm&gQx)QJke6J1so{K^&7&>PV-^vc~ z6Ai%Jb6u)S?h|Ya|8v=f8c{-8(1A!qSy5PnFS>3Vw)IwUb6Ah3PzMG$aGc%rfYtNp;2;dwUTEcv-p{ zoGqx6#uRg@bpdFK3pv%9zCO*8iy#b^x|@LBsH6@^`MJ2w-q37m>R9NU@p>=aIn%$U z+BtJxDEU5-ge_k;VWl&ZX)7_XIm%tk=FR(NkD{)b6LVgOgkA#L9g9rUzJWIGwgx!U zR9xtpf!Bj@8J@8MR)w?K;G-AXDZn4U9iIk&TitjHqys+Tt*Aj}b%JY<5eUgB8m(39 zk1?o~3RnUb>V<6*as_%hK$K+a?vH;tz@D{Lo(^;&)IS}aMW>c)+v8}&){*P0Z83%x z7_o)gV%FBR#i;dYtWsT9j0|;0NDC=L$j&ajBB!nPiU^~*dU-24>Yq`44-D4{k(wH6 zS?GZ|FC^D;H*^m+c4GD}bS02Uc<;LF=)!fKox9^GT-ebY_;mf~MX!r@wutVFa5b(g z;?H?$dU$_a5f`qW(}TbK1+r$loN&$cs!Yv=7E@-zyYX8yf5E$q4z|WsFmvcxfdJrl zz0P8RZMx90hGIg|YtRd^AIqQEI)j=Z&dkls4COS?{(z|38qLAZp{c2%5M=FO9AOj; z7)J<{P#(e+Zc#@IWOe*Q6G6^!VK9us$Z9zeRl!k)Sf$PYuy)ZN2bd-M(&Ekr{O+OC zFMnfZ@&i|QapA$S=nM)cQFw3{3J+}YW^3jn``g4MG#n@yB_S5Fs+a>>Rw#i~=dl2v z49#Db@SO`s?|!fcbuJjAt%6yRJyCG$TcJ&4^U+P-lv^#LgNdZN79|+Xv5>$JF8E#J zPNAzllvTpx!x1$+~LF8(V3ZbnGolyGMJ+Sesg-x0psvBywlRciz=eVG1z;- zftx5CfAhV9GUM*VdxA>Gt>6-n^VarYq#Kx0q#=xw**XNc6` z+K|dIFwkuY4Em1EzxdQd}=)*Uxi8cKBNem32hCPV~)k8ryZi!J0JDOVt%y6~p#Lxb&_L_0e!b^3yA z(<4tl)~X4jz7hVapmoS^mNPJ<9a@Ll?z`v4`m6Hxv}H7v9O5D3Wo#1V5JPTvZ$Y$L zqbaP0D}!imbpbeL@GJ_I02v-emH&$Jz-7BccLQ;pV9k8D z2bW*|4qJf*kLMyF7Qpy&JsLX!Z63V#LYv3&K`5`Jc;FVHOTdr;6oM~+SE|*#rGAU7 zy3)=e_>P`b>Xe~v<;2#}M!7j?)|JOMHZmhO&aCov-PqJPGtpR)%VI;J54HNd8+Kn+ zRC#=UaJEa@Hd4tbv~94|vua=7=gI@&AQs|efeT>*1TTxC&pkZcZ?mS;jo@94d}qda zLi{N4d&sdTvG|Ep76EV2o-e|}(86bFgBTPlh;2)XDC#fy{jL;n^y^xa^Ere*q)*x-0HIwN4A$ky~UIU zvPN3oy|~3f$^Kp+vTFoFdtHk~-V|`zR7!8azkoe(Hc=lf`aL5<-6pNWYF0uAu!*(8 z$lkCfHjpo0$2U_1HcS*@F8JbR3eFM|;=|BQ(FwD5noqSkOj%_6!0lu;nAJKo1ggV_ z5`2eHR~_=t7v{Jq9rS47!7OMI^7YGjqdJK$YMa25N}EBsxN)Mb%Y_;zTCQx(ukZ46 z;@rLP!ajz?sSh@}or5da{@aE95z|t4BxPEzL&EOSsJ%YVGLrNT4|JH3s0GKC>w*A0 z>J8|ESO+^r6{!)z;|Y%xgr=b`6O0h3!cu4}U}eDU@&c&30u419v0p%tL z!$Kqat91LNkkx-i5R9W!0%YY`0$E97-BXPeS>M-i*YOSOK0HM#fK+XIdH&iDMb=E9 zwuZ}wv*J_h)-2b$;O+A9%?m^H$j4Sy$@4X|3nZn6y#>yaJT**s!ovlTX|Ur$L4o$X z6ER&#xV`|`tC!Nmd-t{10ecrni5lGhzzTtrW4xOc@0))Wx)1(jDXG$h4(Bz{bqNg~ zzKE!NXIGt&czo<3=r33gTehU**`!E_jr2J5ph+j^92fx6b&Cp6v{8cuB_ObRnL)mF z0qTi@JYKE%RIH{|oLX_EbHq>=eu$^?<1h&1;agLi202U=KeqQ^tvp8f5H zXgOpZU%zp@q>#jVH{?SrqcAww%(V$jKewUMCh+z7gC8CHSpOjO2$V~mp{F>izAkBS zuSu!>mB&WW73+-v)8SqV>k9-!A>F0g077B$%8#thJkZ0n0Ho2*Ek14*`%-3y%$JM^ae2WSHkX23SK2) z8fabmCNJkjrXh#-r)zQR1Y z$E2qR8fi)bge1+(`?e>McHrU#?O>307^5wo!FI!8Vi) zuW#J-<()NtIz-Mv(1kI~eOjCrbh&v6xG$7I9Uc8GBp_NM0igFID-9-hK?DXzod_H? z5&ZFYRS`HxSFIXsh2aV$A%v_=$Pvm(iBKUD%S0EKLVa1vw-ThF^?Ci#jFXcC**r2e z+A6iAeTXeS@R6a34~}tys906}*H{atJMJ@rF@-${jX-e*iZ}y#E|>+b5UJowlb24Q z_;3dQQe?;47Bpi--!s12JN@WPKC|Vni3_r%VBeM&ZAWj9$>cIcn($vc(*+AqyrW`D zZ?r1?eQjB_k*~0z;6D*S^|t8N&68f43r1QZ3U_xgT*FgPnA`pJ4wl21D^->YDBG7fYZXbZV8uBfC zgQwA+241yMq2PJdtQ4_qS3Pt6fW{fp(SEIW&D2z=bYIVH_i*_`J!Ccc*xrIZ0-5N# z4V(T0I6YAr0VL`XHO|`n0$|am29iL@<4Dx8hNRBjB$zUdR!P*rqE$&8^(5*i$DPG& zoB>j{(XDf2wf-(w%_^Z(jVlwQOwHu6Sp^@_g^Gd9fZ0?|RJqcFz?D{1xYB6(3Oqf; zl!hB2(Dv%pFhRQI>~?Hq#O1Q0p#x{CXI`q-4KEuXktxgY1KkHeOw)JKof+}xDWFP6J-1Ty38P*vUI8$n z=Mc7GLp&b3io=j3}QgR}BWwNk9!Y zP^-FtlYR-yQ@HrkK&~c({}Mn1)&Mt>*_`6(t0Ug_an{Ch&y|RK-T?zJ*@3Aoq5K0Y zOLre0Y}tADFn)U+MQR#t4bz3Th0M)2AN~PPdRx(xsL;%B5SU>qpadsW7Qf!NCF(BV zDup+avWCVWhi*y$X;m2x4LrTlo?px@mueh3_hig7)YHOnm2>2_t5sn8 z;Nul`o4FKmAp-g1x^n*tH=!^ojQM<8Q{%UB@1q10AyUV!eIWYNKr7Ca{XF!uLYFC* z#ToG=T;6fmZ~-R1LNq|oZK6T6G;^xeYQd62trn5oc&GuasDvX4Yh(P$^A^G`1eie!uqNkxU1Xn!b;sP!w1p?G^m``0~n2F#}d_ZNv zrL43{Qd?m?NqWYPu8A8|wA=99{H^mh&fod5iN_9fcI>{hTlk*nfdkteuu{VM`|A*m z1%~_DjQv}#A37ztQm|jJ?HTt&M@GN?%imwK=6wg+f#Ia8P|-+|)+_qnd(V{tDm-!b z>@~mo@!#-VwD@|&MPnT%jYMbNaB7!f zo}Cv`A&~ZNsN0DWfLnvK8xv~=roolOK; zggKEj^V}LUG6_7kf+oXN3~t3iE~arTM?o`83Q`XiJ0cTP3!-d*86L3qO1@tT;HFlBi62iPHmj5P-s zLk*HZ!>F=5E{mGDi2Ag61aXb}R2xBDM|}eNO+4RXtfO!Il@V0Vh&YUIm=-gifPND} z%qP88;ppS%4s*;Wm^*yA%%@!cz*4%6P+j3VUYz*ERr2c?G}iRw|DPE&L=Mbc!30CK zZGXIryMn(YgQo62-X?=a9OJkahp^NMo?vle4h`+fWJeoE>mGG@8N$$Q(eKi9(VSb**@x;?@Ve^TIs`5mf84!uX{M_k$l; zn^?VOvaxk;IL;NQw<8Ig7)E1%V>6PlCD{>d|LpcfW&4AdD%R;fdwAfQ#i z4u`BpWHj=&+dDSWXG;$_78UI|*$96P6B<`wflAF@I+q)SqW$u-8M*ZFPb}Hv)Fn#x zgZC7h4oo$-Y`v*RkTan-4kIQlZ$7%_k=?C^SUD8fdF9O=Z?j~Ne3($j(HAZ(+4D7M z;irWJ){U*fA}1Qsqg*r`Akt|=0ZsNhIae_7)l~y}lL*qN(8TLYUM*UluhsYJ{n;q48h=sBtB$`=!s3>rQ;-II*nBM%v=p9>f=0tnYw{FXh-r5`4Kg797bn5t{?1B;Ugy7XP9aq2MNpxi!Yn0eI5E~PG!AtcdHpfgh58EzzeuPb zyJTe^JODI_^4X~) zodV4*Ga3bJdh?U$UA=o%d5uV0rI)?aqC79P(@>M2M*U4=4I<+IC81H{M;;#;d2|d> z8FY5dU(LVpmIe9C5gKH|-EOWPPsyCNNL1W?tnY$)yl{f6$Jaf=>4La{6$RGTi4`?0sDJzD<4|Zh^nq{S_;KxWUH)izKSZ2mQ-)lzH!gK>Ec_K zs3m>j{6NFK%i5qZEI zWEqs^SvKL6h!90VNkw@a-HHTsIrAiUg`i6ZHlC@afFz5`6Q-5odW zb=KA9g?pejKMJ*ZnK(@dy544O{vvvEvD*BeN^PFBdLsHGXRd5QTJk}2q0ns9LU-i6 z2Wg2l)fx0nZ`r)MOZ)bV^I~HK-{Ok%^=0XcmFIc8vWKhA2T!NPFh#HnX@m>YA&B$> zmI6`_cq>a;3YR5`x*GjE5e4AIVj;&<5K|(#NJNV-UZRKRa&cLZ&BIfp1*s+FH##Zd z(1(UrKe@7wt04R;fkQ{E@oZMA)Ce&zs?CLz*lXqjITZxMt5Hsb%JhnKvAZn?t&dQsC-B9EdiPLou~w)Dmr_@#C-r8l*+5lG z^&DOzy1rVeKeMJ;Ni5XrQ3ei>l?X#H)`>Y(v4^V$A_7bs!HU4VM~!-wvvT-1Y6=2S zYT2~BM(cjdO8wp?m3mlVlyPPbZ7jwo4)+LtWo&7ME-*D?dE;jzcW%i!q77{FiJ8!d z`A@6Vqs}@=kKR$GUi5gaQr~#I6Uqo^KX~UpEE=8MIjIZ4h~h5+;upZbdy=dc>QOne zO5OdRsL?BwF#C+9?912aZ@rhR(U-U+OwF+7H*Q2VdPJFCrbZtS+)%C2E6gzHtXd#m zT%%t+=pdvlr4FO|pU|A5?fnJv{|F5mmXOLSqXf*Id_|B_8dzBuQw^-$BlDf@ z>jZ2G_P5m9LeSt6?xKLH1wZv1r4}edS`BJB;%pQEcU&dE%Bc|3ts^-f3v8cs@EtE< z&W<#PS;pyWaE(0FAPFZ(iZPfdQXyCS>>9N~qEv}B4J&8jVVg{28C<(16b?<}U2P@R!5z5nq3Sy5M;s>x2vx>hV#%mi*Dzz-Q}V`8Cu? z`6)dWG93Utbz!N9zZY(l9jc~Q{fdncaf^DmE_oY4RQ`m!Ozy7T9NaHjcTCXq^v=K8 zrnYNnUu4@i_6|PvG8Qi-PtOdu^ z4tHU!!Qe4#hK(BgitdEQ6*XEL1E%=_dlI$_NkkT_0oTQSP$-dDZ6;tfod5XwZP=%< z^OzS?omR^To6XN)u#po{7yK7hdS2i#y+nXiQD@efD7lys>vdLWEHu#SxF0EE`d3Id zLitu*vyisZ3X6hrcsw$V6=_B{+Dv!;@cBJ3tMVy~f!D4&4PC?{ksE#g)N9aWorU)W zHScP9NrJdxJdFvS_#KKscixvVcwMnEA8fKN$ej1-57 zSF}p4qV*1!R7~TnK_wB~W$NhdbC9I!$gltY^N(z1G{xo+DZl0)|KVQ{TjVutmRKk1 z!U4kdHa%7iJ^z^Xs%b9%M zRU#6u$~m}$q~hl|mj1$Nd?+!5T1WLrOT^0Y^7$zt{G=hCsX*L~%T*3{VImnCbg6ua zg5S|$s~!{1Zm%7aR6{l|^ugZFQo;qZ-rXW0lL#4OFk!Bjq|_Vk+t^_78htSBhL*#j zZ{ZJ3N|fl(kF1xmElnYtF*RV(Yjv45?HXO6-()rG(&OmtH(@ixgQ6lZms};Pm0?0n zB!-!h_i4gHoVJ_;1x0%h(RkDf4-d}EX%8?o!0>=7=~&*PaJPx0tRFRnA*BLCL>!dR zq);khoSuN8pK`m6Zk(Vs7MKAoGs0R+l|-UorDBtU1*LNa)yZtmwDxN2j%YztBxHI` z&?D7{;#togxlS(EHMKU!EUd-Fe0u)Hd+go4Jr0JXo)*K^ z`iHRn#ACwqF#oO-^PP1l-BAq7Aej9`xh(w*9MO#q2p0VuWu!p=X_8e_%h$6W(gjYl<}gr(5M3T-Z2ZTIW^Ovr<{h==(e|kmtvEA){Zimx-@cM?}^|fM_<1u*SubfP!)G+Mk zi^p4FD_jc24d=kZsWm(g9$r_rayvF0E)KbTo^6BJIGk7EE)Z$>KL~7%{ZUs(v600I zlgmZZN?gn+q(&`HtCeybMwJLC1w(4{9sS-r?iEXLC2JR%#VRu06Vbpj6tzs1&jroe z&ewiD|GOIt544f+KSy70hbeOV2R<>PvT9{_-)n5NP{2hOU?;I_i7lcK=Em3)MmdJ= zNX*?)5*aNtrwb;p`5HO(LLD%mVW4coyE3v=t4Z-wJ%WgerG`eXoSaUblh}n;09(32xKwx>V(F2sPs{tO&s`lYTEh<3jjz5yRsVBdo8#cD}jINDjr@G^$P)y+5En5Yo^q-qH z$HkUti#OEY0jeH~gn-wOd-I%50K_DH$-FNG2gHYN>>l(Gu2ZqC_g#Y%G-7 z95$IP9dZeeiX_U?p0T);Y+OGznPB6|w2l^u*F5)uW3wHUEEu%0DtpR7%D_as+Tk<1 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𝔭;h0!N>4?F0 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

GO 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 Qh?TIi6qMHQsm75104~C-Pyhe` literal 0 HcmV?d00001 diff --git a/run_tree/assets/images/player.png b/run_tree/assets/images/player.png new file mode 100644 index 0000000000000000000000000000000000000000..62c16d72631c6c5aa5a748c169a816d5fbe061b5 GIT binary patch literal 659 zcmV;E0&M+>P)EX>4Tx04R}tkv&MmP!xqvQ$?v2hjtKk$WWauh>AE$6^me@v=v%)FnQ@8G-*gu zTpR`0f`dPcRRg44N3P2*zi}=)Ebz>*kx9)Hhl#~v2g@DIN`^{2O&n2Fjq-)8 z%L?Z$&T6H`T7B{t2J_lVn(I^}h+_!}Bq2gZ4P{hdAxgVOiis4R$2|N)jz38*nOtQs zax9<<6_Voz|AXJNH49UdZc;D?bidg4$0*RV3pDGt{e5iP%@e@?3|wh#f3*S3ev)2q zYmp;hU>mr&Zfo)$aJd5vKIxJnIg+1BC=`JAGy0|+5V{2dYwp}y=Qw=;GBm5@8{ps& z7%Nity2rbFJLmTAo!0z*0C*8{sRc$Zx&QzG32;bRa{vGf6951U69E94oEQKA00(qQ zO+^Rg3L6vv3cL>r8~^|S8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b z0DMVAK~y-)t&-6Vz#s@jp>e5pi*``mLdUxPB7)lLB_xWd&l3hfQiW5UP&#q5oCmAu zqQ~5vDK@#oyImH`aYG28icAqiWJab4T_0vqJ+U^?dXhHIJYeL$_ZwY;8HF!BVD-XY tfL literal 0 HcmV?d00001 diff --git a/run_tree/assets/shaders/basic_fragment.glsl b/run_tree/assets/shaders/basic_fragment.glsl new file mode 100644 index 0000000..521185f --- /dev/null +++ b/run_tree/assets/shaders/basic_fragment.glsl @@ -0,0 +1,10 @@ +#version 300 es +precision mediump float; + +in vec4 v_col; + +out vec4 fragColor; + +void main() { + fragColor = vec4(v_col.xyz, 1); +} \ No newline at end of file diff --git a/run_tree/assets/shaders/basic_vertex.glsl b/run_tree/assets/shaders/basic_vertex.glsl new file mode 100644 index 0000000..f59a055 --- /dev/null +++ b/run_tree/assets/shaders/basic_vertex.glsl @@ -0,0 +1,21 @@ +#version 300 es +precision mediump float; + +layout(location = 0) in vec2 a_pos; +layout(location = 1) in vec4 a_col; + +layout(std140) uniform u_window_matrix_block { + mat4 u_view; +}; + +layout(std140) uniform u_world_matrix_block { + mat4 u_world; + mat4 u_model; +}; + +out vec4 v_col; + +void main() { + gl_Position = u_view * u_world * u_model * vec4(a_pos, 0, 1); + v_col = a_col; +} \ No newline at end of file diff --git a/run_tree/assets/shaders/font_fragment.glsl b/run_tree/assets/shaders/font_fragment.glsl new file mode 100644 index 0000000..8980446 --- /dev/null +++ b/run_tree/assets/shaders/font_fragment.glsl @@ -0,0 +1,13 @@ +#version 300 es +precision mediump float; + +in vec2 v_texture; + +uniform sampler2D u_texture; +uniform vec4 u_color; + +out vec4 fragColor; + +void main() { + fragColor = vec4(u_color.rgb, u_color.a * texture(u_texture, v_texture).a); +} diff --git a/run_tree/assets/shaders/font_vertex.glsl b/run_tree/assets/shaders/font_vertex.glsl new file mode 100644 index 0000000..59019b6 --- /dev/null +++ b/run_tree/assets/shaders/font_vertex.glsl @@ -0,0 +1,19 @@ +#version 300 es +precision mediump float; +layout(location = 0) in vec2 a_interp; +layout(location = 1) in vec2 a_pos_top_left; +layout(location = 2) in vec2 a_pos_bottom_right; +layout(location = 3) in vec2 a_tex_top_left; +layout(location = 4) in vec2 a_tex_bottom_right; + +layout(std140) uniform u_window_matrix_block { + mat4 u_window; +}; + +out vec2 v_texture; + +void main() { + gl_Position = u_window * vec4(mix(a_pos_top_left, a_pos_bottom_right, a_interp), 0, 1); + v_texture = mix(a_tex_top_left, a_tex_bottom_right, a_interp); +} + diff --git a/run_tree/assets/shaders/imgui_fragment.glsl b/run_tree/assets/shaders/imgui_fragment.glsl new file mode 100644 index 0000000..62e39fb --- /dev/null +++ b/run_tree/assets/shaders/imgui_fragment.glsl @@ -0,0 +1,14 @@ +#version 300 es +precision mediump float; + +in vec4 v_col; +in vec2 v_tex; + +uniform sampler2D u_texture; +uniform float u_texture_enabled; + +out vec4 fragColor; + +void main() { + fragColor = v_col * mix(vec4(1), texture(u_texture, v_tex), vec4(u_texture_enabled)); +} diff --git a/run_tree/assets/shaders/imgui_vertex.glsl b/run_tree/assets/shaders/imgui_vertex.glsl new file mode 100644 index 0000000..3fa601e --- /dev/null +++ b/run_tree/assets/shaders/imgui_vertex.glsl @@ -0,0 +1,18 @@ +#version 300 es +precision mediump float; +layout(location = 0) in vec2 a_pos; +layout(location = 1) in vec2 a_tex; +layout(location = 2) in vec4 a_col; + +layout(std140) uniform u_window_matrix_block { + mat4 u_window; +}; + +out vec4 v_col; +out vec2 v_tex; + +void main() { + gl_Position = u_window * vec4(a_pos, 0, 1); + v_tex = a_tex; + v_col = a_col; +} \ No newline at end of file diff --git a/run_tree/lib/glfw3.dll b/run_tree/lib/glfw3.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d9f9a21d0724ea22b2fcd6dc195c44103aab6d6 GIT binary patch literal 214016 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 literal 0 HcmV?d00001 diff --git a/run_tree/lib/onyx_glfw3.dll b/run_tree/lib/onyx_glfw3.dll new file mode 100644 index 0000000000000000000000000000000000000000..abd19acdf7df8b657887ddd81b66c50f9b2d7ead GIT binary patch literal 121344 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


_Ck@pJ$R#2up4mn7Pt4D@Z8==Wsw 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 HqVazK_Y64! literal 0 HcmV?d00001 diff --git a/run_tree/lib/onyx_opengles.dll b/run_tree/lib/onyx_opengles.dll new file mode 100644 index 0000000000000000000000000000000000000000..d015f35cabc45e4b402a7f1d67c28f734a8894f9 GIT binary patch literal 204800 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 U6+J(O%B~f)9zn?VU+(Y!0Q~mhF8}}l literal 0 HcmV?d00001 diff --git a/run_tree/lib/onyx_opengles.so b/run_tree/lib/onyx_opengles.so new file mode 100755 index 0000000000000000000000000000000000000000..cc89c8ceae7de89bc5d293eed274a2f643a69003 GIT binary patch literal 237120 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≈gn3@Z&zPgl~ilNzwHj4uNvQ; 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ðI^;_1@p@Aq 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 z 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%0DdmSBd_3Pm*# z1T#@4(zQki;8Zmr87Y{hs$=YoWu(|Fsr?cC9Q6r4L8rUSM?r$1Zo-x1p!LMrzW_=9i-GW`5FVTd;bndmt= z1IC+N;nmz?%gMFiRxSdtF7cbw{NZJ7Ufx9MyT1a)g=uQFsl4i(gVN%jpmMClDq`4L z24aw$q{oi%R#;O%@z1$+0P!dD&=6s4%{|<^$*YKggP;K$G?5rkG6W=JrXkUTxyYhF z#k3N#N$!P0xTSle^3@JopNRpOlrji}hO_>pT6C@PMdMQ0KfBKuvbM2eAB5yUVja97VqgQPma<@h zl3Q7MA>9eat|>-a^_luEJhi>-LTuh0kRh+p4ET6s8;>I~EsubK@wTAZrn;r-A$w%u z_u3S_Kf=|c{P~!|S-RQl`wt$R%JwIX^e3J+6T@e|Ny}$MVA-t=G zo*kP+n&6ci%~F{wYd~+N6q9^~<@NZPvv~%-^n$O3)rPD6o~k2Z8ZrYo>hdVs=j&Qh zc^ZNl6KpwSgP^Y;)W=a$$H70iI{}zYLmTViC5=Wq+#sCC;JslxC317Fj?dkP9Z!ItOBteK(_FXlm#d z$<#gQ4M-z^?(X%N8sqe5MJd;LVijItP$gaeC})BEL5TcgtQGKnP3cZ_ zU@jY5^k8uVTjLa*H>mw8x^wAjgY#qv%VnnMSIDN`KcT|UzyS}dy3Q)?mMGb^hvRA8 z`3FKpazQaRd11JQnKfR5i{42Q>PV074*nUZdB9J4$64lvMQ*#Qy3k(8&oXh@iUbv^ zRsQTqOe#VZpsm-l^;hh;M-4HuU{uAcklL+A4h^cu0vR(L*%@=AfL5CIEhdu&&m8=hck!x;#i`>;vPS(M{fo2H@ z$aIb%q>J*xy%{+oGcAMfNJM6il$)CV$GmCJL2{gc98>tnFPx(v>Cn?CWfzqd7JRiR z+kBE^5u$j&8DBC_4A}b{s_S7Ab(C~1eo8mtr+g!R=G5TlJ3O9+=TmFdQ?9%~SU%~a zK4#DSfiLs!ST$!5DQEMN{z9V>LAj8g5K`r$mS3jR31JpS6CpgG1Bk}O!VZC4VIWXv zE`41aQ!N={oxnj;Il>aKVCXUru%OHXUaTu?Cv-37^WMic4!u(V>vCzc0$WbH>@Cnc zkYEvv>3v_tH<%VQlf1fh4{9pu;W_*x@38(l|_HGyf$a zpb{cSESS0yw&5}@q{aW)ulh=4v3GZPCx)2^{J#77d2uG#jT+J$K|3> zLg*xd(tL%s1pg@BMs4Q~c_`;21JhAuuBZf~q`onmQRlj%x)~*2ffg$vE>~0^qd-+}UV6n9wO@VrOF4$>{Xh&6dl`ACB#(0_!E#Et zbdxMOm2zx~Lpt60fEoT^bm2IpD9jz_ayMT_N0%*$o4C|RB+>QLzlgf7Klvq9PwI5`xaaHa}<_@M-k576mOqi7F( z)giI*(K0uB0xY1?;BpMwKtfJamSZcVGC9nkzMl9QR>G6>Ff2I;<$pCF2KnfKqz}S} zDj{m+shtPG6pr!LpHneOGqli#Q)sUN6VpsXW9AZ*t0rv_sJI_U6(1;$^5BWlBcIE) zJ2$^`@6Us*rHiv2=Ti@o$v-CPhhf*2S{$)I^Z z6*e~{$v{3a4@H3i(aRxeQ1l`igkDPBDzTdYoFcQE0MU}G9XJoBC+)z{jQ?YL!C`3I zZ~AKQ;`GLl-k}q-ww+$zeV=09gO-(=f!3zHk+1grH;z>!D1MYNs;~O)^%}~VDm96q z-o&|rM8>sOPnEmoYuUP>J;$yi^kdt^XB3vQt>Fl!aLx|=R5qKX+c2@xgo%}{$lMQS zn|+Rto@N*NL$Ng@_!?6)Ez)LnX}^w(#S-L>@o2bjq;Fr3Q(Q&^DpF@KS`G!WKG99d z+SmR*l*;z&RaN=~^$e@DX$C$=0W#&y_$dX8$k3|Z6;wyQIu3*yFsR%*t;{g7!-uz$ zE8izXo3L=C29i8zgb#Nq2{u+xg8Yt`BWm880r6)pHQaWMOLh>1eOwg>nt-W^{Tox- zJHyqq6(tOo3rm~uQ@#~Ha~cofF19GXgf5qwg(3~jrUi=XlqlHG75 zZfw)AraOc7Tj^gl^-`Ofbo{grN@N_tvxf_aVgQB2T ze|aNikAh&+n^nEd!o6}J*H7HPy_z<^8&~b{C^4KjF4}41YZuHxx+^#vRqv@fOr7tl z$I`Cc1&44K2%;;5@Ft0eevM5M#*J@?Z$r2SpNTR$c{v}JC*c6Q_=@47hs>aCuo(b- z&$OU`m_?|C_{5^9Wvo2TPG<)_XtFyU!jE&`!N`q2%ndm#<&t%3vijK$k4kWR`C=OB+$SA7^$A%dv?fxQDKQq~0CQ@mla!_@}QW|BF?s4cx zR9rP*)LV5!T3hWhZdcl3p5)q3{;~1yVA@)HdsKi~&?|~b~dt{pebpuTo&Plkg z7fc_LWu4J;=l5O-y}UfoA=w0_lwmIY^zkGTA6gN~5Xx6LXDQnK1}} z9Z^n{`Q4(BZ=2zGsV$0WWd}mVnDm2?{L{)ZSb`(xBw*E7L{G(O=?p3TY}VS-tla`i zVC_)Y!W`s4yaZtcX+HiH753;u*1_LpW)DLIb^-7WBlt6HzRJgF$$T~!zYt!;gD1W= z)Q9OZGun$^Y{Kf1N3 z12XZ%yH{|=X+1Vw1dt>ypGpS>Px5(=fwr(TmH=^Mf=a2n1=D9TgBeH@j7G=GV@nYp zmfZB^6epgz9-PgLMo&ZB%&7Y6V>CKWB`C%NmL^$S@-@edwVKGk&Vty2r8%Ak7>~5x^>bO5Y^N~&frNn6R3%5lHdf3r<%2Z$O$A#!i|7#gYX_GPz1zev+BX_ zo?t*(u!e3_u1fK0ITUz z?jAr)2h82C@9eD}o?jE)C*JDy|~50s=|ivh%dtBnQ4h7c+6%T_gnTH1$nJ=09&5KlY+XN{7y zd#Z4m=5AaPBKub`40PJ`4F(EDx=uAkiPWcIgEBY;xxi#SK=o3BA`vYZ*oSJV|A2~~ zR+W&zS};Bi9Io!oU&BV|Ce@bJmBPH*1a70jOcrJu z^C2fkat1iC=ge2KAA=z=kev9FBwprRuo*DVw{bhfEN}Oo&&loTHcWFdjt}huWgz!27|oBo&=gXH=g+_wy_#rSZBcf#og;4NFL?Nd`$-GKb*PQ z+Wh?|pL`P6*0cs&62)fAo@7P_S-jkxyccq^1+h2-^&jS?C6P0k~*WQO)5OhOK67FJ#Aw(NYd0f;p`SE^>q z_TQ>H``dYT4S#!qs^Pyw?;mO178@H+YfT(V-h0>GOW%kNsnHR}rPi31n2IxmwHwj< zsAJ`J?@10KE61Y+GCCdu)^c3_Ja8?a3qp1+e`SDLev!nxYWX`(E&nR&kE-RDI<@>} z1#@coeXQkIyDHjh2nc>!b}F%{ICxFZ#2&h~XX0j=RwP-GW+ZtxIQ!S|GH~S|iZ$PT ztI+XGa@Nl_{;GcsZ?-cSiktNtlV_wkNrwNGf*Qy-48@!8KJ3sxkh~u}*^;{BUn8lE zDmyewUj<8bxRHMV%hs+Vc@sTE%l6~3krAHcyR&WA(L7hVjz$dSkp5tq;@uKk{n8ljvbU8M=mEt*&?QC)Xj)`HPU1^(a29V^bR zwUux^&7A4gn`SZUsn6({80A>OaYN@1?@?B) zFiQ@Od4k^ikUR%IW@vP|krOjh2cc?V*lz6ew)0Nwq2z>PJo##quR6tNc{s~0D@IMK z^ZM2ljQMeuQgyEFg7tK)`9^ zmTcm1M>cRch5=5CH9g;)mYX~qK0^^N!5yKI*xJLzc!HQUNPV6Z_q-eK^ac-8V>^I3 zxQk&11p_kN{z#Ps#(jpA9LIIb8eg<@FP4w6K7f68(egHRK_v997AfpSlV>rwcNU1q zJMtTg{p2(fX6!R;PO~Nd`Q){&}D^1dPw!6YK^rVMK?8 z<%6&!(2YPG)9kEa8Pn|Lvf_Z@V-G}#O`qwt&{p#k4tef|;bC;E4JkHr^k8UK@UHGgh*f_E zOkWL!Y39Xnj%IWrerKvr7r5P2;>=jwcpP!)3pG+Jm=auz5G~T!>I6!#N*y;E5RcXe zCtK0CIUet*?NYP=~b!%=}8; z)`J;|v(|u_kAe$6oaz15Wzh@H#8;(@xYx#JwInMq$6d*7tuR=bnf$x+da#Fi(F+ua zJ$GXDMuq)$SUzauAkbe({Q#zI`U({>`A!VJvsNSBB)Pf@1_+{^aFkd$F*dm)unh?p ze%rD6IMw2g#iTZlHQ2GbKBB9#N$z_VJ4_Z;NMUB)7 zx0ha{Ma4?nw4zM}y;0GNN^|ait-bb{b0#x^_I~&G{l4!qKf*eDz4qQ~zxUaDoefSl zr?w%qzv`+#i4GK<7>;sue1b>I@R&)4`(f1N{`C-3$V}XKzGMZd@2uZx1*z|>{~>~P zYqlG%hVS6%G&(HmMYnhFMVkj<@`Nsw=cm%G>Itfhz%Wg@>Vky{U9em)?96Jy7V9m^ zS&jI&7`5bjcUEJTyJ^9Y#`!~z_LZC+r4Ns6!$fVXiVLHJ&1;65FzeBt=W1JB8y>*; zQ-`miAaPUpV?VA9Z_spRk)BY{FuZ7|SQ7iWbmSOQB<%AH8af;%2`9BLOQm`j?M5F9 zE}G1tyid^Bz^5GG8Cbpd{w+lG&hXk}bO;J_q2V;PH9q5^o_+I09B6g};FbFjfPCjE zoPGRGn&v_3#Wx;|jv9n*ueQnipS%={J@+B?G@R1l=X_IXjejV)f_?O*bgd|65h_Kh z2t`qJDK_`R>zC<$3a}2*s$!Oql_u1NxM_l_jNS!})A7P}66GOw#X9X&B@{HmWdRnS z^tpPau&1<9?O|@$2D-Xbr%oOy$the|t__tS?BjQ=R5Fn=Iy&(*W9Y@gF?6qf5!I0^ z3r@E&6WqPO+_=A2ORxRhrs$m8cB+)>=m5Ni;LV6>ozwpi>9I7R;_-ouCRO8_>bd&y z)x1NaQ4ui+@!R1n$GMG*$3S}%t8Hqg%9+))nT_52%zO@U`ev&aKrN%7htt`#89SBW z#UhS?%7khWUyuAdG~P}rX<8D3h#(&Z@BqP6D!#p!JY+Xg=pM6Fgt9gg#cd3!s{UBBRBzt8FVEL)cZ4d zuZ9NQe;PsgbDqK-7D`z&Zz71%aTDoIs0U;=bIBpic*Dym|jNMbOMorqy0O2V-* z{}kf2s=$25#=JfeKxV;+oXs!(6OrH8FaA5`MktOK|5o=&MZjC=s3#}roPlede1;Sw zc#Iy>Wh&Or`@k4S*}K z2=O_EK{SJ*7%7yMjGJ+^MFS~Jg*49);vr?sgQE!%oTn>P|G|;zx z#8MjpQ8|}TW*hKKme{E2z{B;X@>IJMgj!7?CYxYwPlCJ9tx){2Wtr5IIL(%EA1`Kt zxAY{44q4v?<p=YY$!`@E0S zXiQ-oo^M%ou6}Z@I}SX>h?DJfVa}b6|CVH9LqwVH0MQOmw?OWD)+b|T1x(VA8@L1D zb0S{y+eU5ewgYr<=a4$M^TtqWwd#`TL5YBUuiBi_;^Z|)yp+AUMx52|AUvg>BCR-& zB3yYr`rfhL?G@OYe4J)~#Bxwrs=^f7p#=&^AX5qKs90RL=5fpcn1igfy$%YFPDhw7 zd$^NUfDu_nj&U7YcXymJX9_-_9hCy5SDi{p#m>4^E=<#{N`{G{RV(c^lp>@pW{Nav zD-`Q^4@HFe#IQK0wyB|v(^+CgX#=GJ7#zrlt|i&Hac(seii8$ys?Hn%r8bIFw+km{ zyHtE9v%M`i`Dw0CHQJsAUGtrso#3Kb1AnT4kNEQiSP7mW>Jg%XkH09O?_(=F?Z_fK zQMF`m!T8<_XL>RFo~Kj%RDaneKXrk;9RNKLQMW;fgO{nAlHMC7*z3*}#IQrD;_^th z#j}GnI^rRWibvu=8&4J^N8;MyB(h8D^xnHsOX!0|RDWe4wyx3ez(IA0jFe0+NK)}% zrTP$}>PDEVyAzAs@K=We2#usv^KWlu3CJs?EDMXqy za2CsWWu!&NvX5;ARn&D*6aPNx;a2`B1g1d%x7qir7QYNL6KV1KUUt&SOlmY7thxko za5^Zi_dpP<@#f~yF~BmPYi!cTAXZ&O2#OA{|1M_dE=l8b)_4FEWQupsK6c+uN$$9( z53SycDbIQt$nz8I8PW7a&70-2FTTZl0CtSS-aP+P8$a%-s-fxhxN-Zik?*<3VRxj3 zbbD)0i<9(v*EO-~Dc*H!xKqdEjS)xBMv0-Gj^um!YNOZK9qlLl zER7-~%e&T7@1};qDc;&h4Ame;VyHz4HB&|780sNHJu%{LUJYcV7?0T}r9 zA~(C+e}k@R6n8L^2qb)o3}Yi@q*c9G18GxHc^j%Oj^xB@1&Gn?#ntw7j7ayq6J7N; z@d^BxHKlve!)Z(GN)^S*<+Cvkud~q8d!r~fogQl+ux>dmR;o%{Pm7b2ii<;A@!{pk zdtGz);>*Vjv89Hqf#}}_yHT(^nig%r%L;_D!Ascey?7fX<(`dBQng*4G@L-UCk0Cm z?4@dv11QZ;!>tr6CK>x}{2OQ}&{cuP)fAqMaLwLCA)0(}2tyFAa_Z1l3LVm+Z4^3; z4Rb71u@|Y<%BykJ6t9{u1o{xr*!bWDWPs7GbwB%ix`Y3LIzgp(npJ{20u;x_Dc&t> ztR}rN(m-i+j&uP*%2*WhmI(7kDWR1~9oI1@K0>`IqIN@s6ZW^-J-AcAtqT+dr8{qG z^;<^qM-`k+e$yz&MzK}MD00=9=`~DWIRs4K##}n{xg-t(c#d>Q}vV9Al~Q@I!A;e`vjB-tO8PKO^~t( zUo~B`n-W3`gZ>{)R;^P;G1|HN)u|qAerBw7k$4Xxc&*T*Lx7Uh&meK_S zcmMYh)t6xtr||B@>?*3e25WP<`;U?oQEj5uL!Wo8QyJjz#skAWNq$-n?#M)KqcalMnGgYmQk=0tY)riEHPE|Yj zYwNpZN=;_wn#m>w8x|r_Y{{g+V%v>#VtO7Ar&uTpyv^8x(nKcfHvu+2vyuMayn+5l zLQ|U8;feM&7&MmyG}JfXeRyAu!*cLh z4VKA!!|tZdq^_x+qL{o_$D4q7o9ZcsQT1#Jer~EKUX5Y7&7`M^d3xclABQ%Rt_V(r z6ooX>oxsD)!4!_4aD1Ju?gcWm5q2RL^whMOSn+nW?uBxTKu=AZiJu8n1dvcUgB*pK zKn21CN-78xZgi8)$o7E!|1?=zdkUjyy3y3UQE`(I)sFwa!fuWAMbcDrE6V=`x86BQ^+|37}Pj|T3_wOkRTw&Tm)e$QK{JEQzy;N&$ zQKFRCSgGqF(pOF)*+Zn%XNc3YrOJuME7aQeAU{k}KG2pbPlmuOrF|~mu)$fUZar%I zfJo1EKs7t>0qcvl2hk~ZO&2L_L{QoRHEzxCuU9AehSg}S;c0|KUzH>r<$^j zM*+1NyF-l;?Bqes9d;6n@*AjFAVb3lyJLtMUA_z@!D{GZ>(W@$e30TzXPdHh6XANG7-0mrOj0E8in>F1en|ka!7l#l?sCk~%{8a2|9dEhlwjnF-k26qd72vSf*lEc(XYDVq;={x0pA zQCH^ptpV@U|C_C0bk7>7F~%QJ)lrEabBaspj<#%@ezEHXDwZ^)0VbvL=dVlh6FUW9 z5?GokquAiB8XBK}fF>zPlAscq#L&%=Arh)gDiV59tP>Rrdl9iBA!K)cj)X``lB`FO zOjR1X=Y+DRSXJ$gV{@>!gtm+OQ(Y!EG(!iRZ?wOh&}=}}F^ZRLa`p+u@kPAQqf z=RPPBGMn^6sylOYyW}m^qO(;4Pv=}O=1PyWQ!naTe}fRoBvA^EaW{cI)?vak)2V>z z>-&PZuf7$$G&j|@v3Dd{ET#-Wc$MoEKE$H=IclB~>3)U#O;sz@a6jLs#>TF+@g$1v zsAmT`!XDjCEf&1U$*7=SexdtlLH*Es3OG8VF~@rtHmOD}gI40jlA0b}-ySCW(i%}e z7zoNOS%Z_m1ea1&4?Bn965jAb@~Q7j8aA5PRYzYgd=XLZ9z_f(hF5Z$FDm;{234=Q zSx2zc8G+u)(r@0>COgkK`7jbCQ;VobR0&i=jbxINv?|vYs9Yq0Fi}!$0oOXZN=7k#xG%K~d z8>8PB(OAA3x~g1}s@d@b^dVieoAeA3X=s-Xr5ls1p`BlRYs>VXq>{?!U7B4>xu7IC zZxM2p0m)md_?jsj@mV`nnqU;8;~SF4NYVCKD^gUpxouEA(={YtB8;f{KT<>7@(FrX z4T~faRlyL!k{)V{Q?wYO*y6xGnY)>u$vC90iO&6SI?s7jnrv%P7FR+V7xx)->QbKSd06&ZIDY72OV!mzWrq_2k2 zgaaQZAEWuGdNd%%Nq+(f9Uukd>(d)x#1`odWW*t=+KwcmjHqg{2nw}=B|HvMt0z4h zp_#uFt@WsmO?gu%ZYIj$9i?Y97lqQZiS%rg3M?~hQtp^udp9}f*7QyIZWHS`7Umst zwy>P~IovCjh2hs#TbO!Zr-eJoj9adZvM{h>;WZ%r@3k;(-v`*jvVXq{bwQu9plN}s z!wC@!lcOW2g^!bkuNoRfy0$$DoA&jdgWzX{dK9vc!Klc;oIvyC8h=dx3_X7tW8sq4(O3rem zaOmh|Bu03gjd>FKtK3wg+wnxv5J7Le@4@qkR%|36#sj<)HSZuI@5R77O)G7&s$;qM zSp8-aq|YbPMhvpI6JRn2TpO}JM)r752L#$#pUeT*hD$)e=Jyt$l#ik|d2Q}Ty>t-t z`}8a(;4E;|tIo^NIjXme3*lH6ZjRQpQ;j@=&&)I~I?S(2aCaJRfp93jr2+5rp1lno zo7#~6cJ-ou+t*#}<`bU=Xv!wb((PyX8a+ZR@TO^2y7{#)c60YPzJpyJ_JVu|qE#MG zZ8ul&?j@!>;|-_^`o0R%CyqxOv)lH0Pter3V<2{4$fE24rsd_fWIES@yyBLdLgDrj zuD2K9TJ>EkufrR^Dc&Qi`|d^`ZFU^NYylYdSARm4Ogr{~m0ZDO96MY0Q?MxJ=kQdp zcFl3~EZ04EBW4I9j>+C5cZs$Kd(!55Zqf0Amp{bqkvG=vZGrgY*09Lkek!@Tzg$=M zVeRBr*Sd?rs!}roPn?>!UF+$~I{f^u>z;{tmi#AlH%X$+Bwug_5^WiH6SA)7yvN5F zhYaK8w!V#f5&B|`ao8|=wI<;|_zs|Vrm^kSwCLo^9}ZZ%x6_fiwb0qKNI#uDZI8L9 z6zLN!a^WdNqWO;^jpPd>p{}GYp<^FH%6?S?82)Lc6wR+dVKXJz%=Dx}#HX4!qXnFW=#ScY9-Y zXA`c4;YyiuiEx58vo=A1>is7AN@%2SNQWGH6Y|mi3i^VXjov-*K1TRS4c7d*ZQr#1YXHMC5| ztEc+MNQ_*YIpW`_IdBE>9*d(la;kNdYK}dXK_!n*C0f+^n!3C421QM_QO7ftMu7d~ zJiI+C?~r05KW;jL{z?U2OeG5T=y~en9r*C)5!VKgl_x&O)xY^DqW$<%3yKzZiKvL+ zHa~kOeJ)YukiM!y7Jkwt7Dm)Wqr7R_{Y-;}Um*)0*558^pdM<`L5GFG!4_^)04mTO>C*u7+DV#)CXA9CF<|)k?qsTO?ytB$M%Wsr~|sgRbT3WSpZp z+FkWD%Bh5&Yvbs^t~r{?WbZLo{aY4?+s3g^b9B1ucUc^CAw|dXW5t2NQRyFSqcv(8 zZVtgO%m5sVnc{7!T%!)XG_pRztXU3<8aa2Xk#nl2^5#14N!)AgZb16%Xbb!YVW`N; z`whCD-7snjj7rx06qmLa;dK^n3=dWZs)tIf$tpNF@<9uH->(=4bao>h`uIoPu{5** z+XMl*IYjk+)MuEaAdl?Rzg-%^L&zUa9`^C#xt#r&>y_aUr` zc|!~tyiGJBX{uFm$XP&Nbb`?8!K@Rs(7`-Dnpx#mr{+orb5e|w#&AT_RG9~2YD-2_ z^U^K&@VHpICJB}3=up^{hb1+8CG+e<{ed}|j8FES=yi0Db>fa{(h2=FM>SR+L5JFg z4)rix-QaIg8<#M~&NZDfd|KY);V@oLbuWAbQ*wNa%hK!?&5ke4euc_tabPeN2c$^k z-%w>Niiauca<{(JO&ydPVP|0AJWbYTv2?Ilhe(RzP6=Mdt#rkmadXB^8H+MpVkSZFR#*D@afGXxtZeP&a&og-~#Q@K6tnb}li54)iOg@aF+B~8U` zLi%u5)BJRVQgsOT{u=k0@G3#GeH}50!6QZU75EBs#vW8Yh$*7dcNH`o%eL$LqYib~ z$GXs6$h{8w^u`?qN`H@+Tv~iGv+=_@jUP}=y5m1&J+qH0uaUKHMl!+18OdC0vzh~k zZp~Plaa+di89r+!#uWkf>qH7sbJLR}DZE~%iE}(vha4%?A~ZT#DMVWCL|SZZMU@rB z)lSU?akWbsc@SSl<101{8IRq9FiRvkzno(?*b_SBNRAe6SV|b zLfPPSE7LNSl4&TqaXM}`%;h@dNQtfrB*v-9YV__tnvC1isxTszMb%Q=F|?}Bf1{Q@ zh}(FPTH2sPF_U&WwKP*};H*y4q3-&0Hl>#0lN-CSWWdz#%YqD7>8p`iI`b%MX`C8b z_sa078XB*3w0X;;8nl!WHQ1)>?WS0xL*0{(oQGF@B&HSbx);2)YRhkK0LrAy@yM7v?G*-vz1Lr zzeVUaTJC=4y5uYB>!2Z-!e@SGEO5pGXDo2W0%t66#sX(7@c)|yXxl;MiS{WBBNWaJ zhkZo>f4R?JTwIoCM-)^90u=UD1oFbZa(~|P)FLHo7)61~ieM-l%=27(t!H7*^ab;M zS>8npW-rW{J;S$fc};P!G~k;)#}_KA2xkR?g+*b{>eZgplghM78EHmAup$&5Gp*V) z^;%DLno(Mo9~d*OG*HdBX%UoWSQ*R@7kP$y^2SW_7Y7SVDTQf9b$MCHGmW13*G&tN zue{Qu@Jba>Mh(T98wiDcHEfD-MP(pdQyzdNE*oCvndZqIGc6Qc6`^iQAxPkSRSY-HD=A9x6qi8ndvb~{MF^gWx>*dvN6;03JOvw zV#C;bjcE>q6DbXw@H`yusme-RG=;eLR40q(QXuD z-omltja8n@uJsHbUR4&%_lz6?W7nj?G&SQ4REZFm6&?aLM)f$ZEu+TK6RcUSF*+Qf zkbQ0JZ2W3QLNz2uaZ!pICv&*0+^1?AqDV7x%fjKZ5<7+yL-E)6z)Ka+N@tBvv6IFq zwrZ=~Q4c-Efl?#ChEYboA{hn#+|Y1;MZiCTk~l6kZCrs7szFW>Q9-cOUpyv_ajV8m z%MViP4VIM}2n1M9D9>N&Qz@z*Rk#vyl&>^uMimy(Q;|{RD?@RF{3YeZ0a8E7sOp9( z4^{_?L$?NRQ;o|oG-6~ZToKF<_=2Ur+?sG8Bn&|+H?&=UiRw{wGm`FRKKhpFfx=*^ zE$l7Lw}lo4!t->hf~AEvN@iJUc!9sPkQJjZn-vI?xtJA$$=r!iSaz%Y9|#feJq?qklF!>mse1Mo`f+L7P=vQ(iP%$ESHj z9!3MbU>^FVSn_04mS0%pFAwD8XlboKiax#@o$~KTHLOC{JZMaWZez?WAXEH4k_ z`vUnWPW}m;jXzQP|02P&Y1hZc!}3Q*Cf z`W(KV2?Yk6Ohue>6FL_kjA_5TuoRnK(GyfZUduogGc z=~qj^T6)qy4BvO@X9a6#f#oGUr$0Gs?R9`-+%*GX=%`JfFyU!j6gP<8f-|sR{0`B~v%e<(MVT}DNJz;wV*0G9#&`lBwh7Vx!?yUgu?cVWl&6~LU%F7pUrCtxx*wLPD7nZp5Z z!26XsfMLL5!0!WY06YfxIN%h#aytMx;PWo?7~qI6y3BrO8%E}TcA29AFT|;>Ie_E7 zggoGLfExf;;-Jz_zz_}&9|U{?@HpVveN1yuU&B~?mT67`+?i~eivjzbZJO194*_lg z{Gu<$S-{_4XqtxrS6yV9Cjd8JY??#PLA;kh9`JR*#eg?o3VFb6599&g1Kb0+?3<=} z7_bQr_fGOD**oma3#tG<8Qr z*baEK67qOsII9ZsfHzk|9`L2rkO#cD4)TCY)5Y&Fd>60*Fz?%t2Ydx^Kj0NjkOw?_BjoWOH|u`L1MYkP@_?TK76Go?1bM)% zfI9&1-U4~Rm$yP5@Na<0gU}AQK_2kFA3`3m^j}P~81M&x8vutqX_}7%J_2|E@WP#@ zc?|HepPOdC^9*DAbEY{O@GHPMfG@rTdB7PhkOwUO732XQI}CZi;eRmAPQbZ4i2Jj%Ds~znIa2(*E^U+=bCjwRh<^cW> zFbwz_;3mK!AEMp?t_5rZyy&QD_8wvwzc_|?0U!Jr^%anQ$QJ*4ty*C8s&@Cfu-{q9 z8+*a#z+QyE);GFLH@yfu*PVIpkn3INtW2&ouDf8$$O%_`lLS5Zn~A@*Z*`ehLC(lH z*S$VrM*lwEy2QlMy`W9$DFW#M^qa%%Jc-|A28yQvf8RaSWv&ObbR?{`%$*MUPc1t6VSEAo`NNb~orlElCQ<~HKKi!dRP^KJ z4*BJld=~H<+Pc)>rR5V=S?MbR{V3?!&}HdQ$g=1Spbx?LK(3uEdg5mZI{qD?cfQwU z(!giY?__aK-+s^s!c_r0CPe7r2)!Nj(V(xe(-VrV_>&Ru8qi1E>4i$(1Ke=X8$qwP z(^19={}hR14tPEUPp+LO;WjIdV$erp>|5iYS6lQA6bI-B9rV|j?g8#`(67aq*%x`S zY(VwQ;9^kq6+D+?9Np>A@lz{~PSBqQ{Y?kG)ry1adQm&ZT|1rfc|Wso923FQ2A(uK z&vHfg0G9)LC+MT1(|K7Woz>v^&yFs0gk48|B#teh8yNTF(aBZH*`Uv}%O_mV3aGvw z0)0{s^b?>Lf=p-91)n(q~h~q{pjoU$A5BdWR`n?wY70|x~{WgdG#g_gfpkHN} z<`InHk@)}QCIwU$y=#XD&$!CH7-bmBD)Iq<%q8EYwmr`XuaGt#ioVWy$XceJkkqJLH=!`F7He{i;b0`UHzk z>wzoN;H<$x-)qrno$%XnxQXbXH(2y6(65Tn4ljc?UchcAnJ{I;~N@0{y3Udcvd3KxIg4mwL?c4>{<+v*`V> zHn|pa|6e)iFEZT&+-T6-KwoL6QyNPmX_yb530ODWVCPB5wBjfS{dUkt*y*-@e8EE8*; zTzee0aeN}^4WO@g(AQdd%mMx59^}KIr(I{7UpnNETk@MgKRewtN80IuNd9(#J`nV| zc6!2WOa36}8K7@)HRi2X;MOB@vcCeW{5WSX@F3@kk6&odv z{H?O`cM$X!mYU`;NB+KPWBFQ=$AX>FR|n&g8nXU(=N5k z%a};%%K`m-tSQ}?Ygzge&#~sRVbISi#G1{aKhM&?3G{hbi{9?Y|B^`lL2t&Il+I&E z^j{sxKj@ED#JB%((4PW*f+KyYR{92Et-d#Gntn(AmRj{|BIt=&3&-oLb3h-1HS#it z{H>OJ81xd*>l}17nJ4>g0=*UV?>XoXTJpOqSpl3AWT@uD4D}6L~ zZB4eya0__8+KfKJu0z%sWP{zH_k9pv1RQCow9;@0^!$f#UC1t{+Gli{Fn-1^p_}(;aD;Vx?gz=r{ewG_SVjp@Or(X;=+<3FzDH?F4B^ z{4N&*+hH4cKKeJ)OmM{UH>(_4K!5GuP4h#$j>Pw^a%=vA`J%oUyZPn0^*SUbnLZ>w>{WKj%q{vjC-bqM`h zC1Od2LFdQlhplM-^`?Cg{IE64KRKRZh#D-EReESUhJLjoug`CYxPjvy{3{X#8s8#} zI-NU2Frxus~py!1V$j6!@sXX9d10@GXHK2>e1|A8B`k z1zsu8kl!})AZ7dM_FzLf9-Z6{5(iF2mulW!P%vjHm=KTQRQh#$iYFh9ubZhfZWK6d zoC@z0yR=5xC!YK^kuM*w@?-~i+p&3l1mf$`2wTU zt;0J0!y-T6TS~rMavbPL=jP{%iG#*Aw`!)MK1G{Q4(TqpFvMBszg4g4a)^{}?dZCwgOFmWVadwdL1FUgH^WT97 zidT=Asj;B|c-frd%x94_h9_}_w`((|R{ zm(TnGH&yu4qWJ$R{9}jW0l#57!+^bT7`Ah!LJU@9<9q~3|Loxk!RPhxNX>-!-Co77 z$KfpD|8j)l=kt4b389%N<%Px)$%%GWaCf8-jaSgM^76#RiG{0hN; zF8Fzpo*Kc=oT3mKUn}?r1phYb2mS69{2ll(8~v!A&~KaI*U~Kr{P;W`;I9S$1KfO| zpSI8Yf)AxL+Tindc>F@}jTs8RUI8Ns9R=CPHC-Y2yd54d2A=HG8D*b|!k;u(@h=rU zGX?J#Jim7YZHee{XQ~Y8`cp3aK52-2t_u9?1^>y7N->{#!{bAOpSw`u`K%ircZ&Wr z(SN=o8~cQRe7-_#6a2e^e?#zm<_)wD1^-b%F>3oHVuDZh2^A>(v!dr4f*(=nFM%4>d< z9iA2bk?Ry6pAW<1n}W}+SNMIR=Oe+7xJTjnJQyAm(EpPio^4QgJ_m-!%LIQ&GW4Y) z8xsZp`gas!q~J3J|Fz(yx)`?#e)bl{$Y*=-SOPrdt6cJhSA6`d6aF_JQei&pgU25T z|3=~0>$_dT|H2Ox|274TR^i_%{Cd6jf$-nt__6&jjJ|MZq6? zUg4#?H(CYn`Gvys86Z6VS@1JnRCwL4KNbALg6A_oU^yET2C5HFwJ3f*>w`y+;LrcH z!t)s)JWdq+>fb3mpFP3j0^rF$?pdk=>ip7qLc*sB{sJXt+$nmFA65uH1A@oz-SkIudfw?&qd&|_u0x0CryRFN%-lD zAY>ohx?l{SgTT{J!4FPWcxisdw*>z^!SlHX@Mi%}cGxKC)b;;%;eT|f(vyz-8C*VL%=znpo?L9Psxt+{VFWk`T!+fmr;xtiQjZ_uVvm5$hRjMDG(+GJc>Dy}xrO z@Hk;&ET)Bk?RTH((d#Tt`aa_^%cynoKMi~W?Z$aDr-Gwlp8-@)WT0*m^7G&){8#rX z#7_nPn&8v#Q;3yl%v*FnU<&?=PZcAd=fWeMLGy^L9i#zI@%DX9Vf{k%3jT^= z3L(wjxLNRDrm6g<3jZqLQ&4Z)q+aRy@Poqt&OF5^&D)^+gt~7L6%2kM{J(rdVRd?b zC-^Vh6~0r1z7l*#vqH!;%NXQV`Fj2Vh3B)$c$^44{&o9J7XH_=6p8P6;Bl_t@7=8M zxguF0_`@#;8W0_c%s&`PcgqR*}&d7_&+edpK-gCyJXMk1Rnpo z{XQ4|L3b;XOv{Xv6lI^c4=6mJUBzQ6lxoY-iL(0^4}C~s_1!4@U>Dg^}Ogg!7q~Wl+RQ`viM?cD?LS` z=WXFXI9B2Lz8oIuekt*9d0pXke>-r1!dJ=sQ`d*Fg3rEJ@fRy#WDCAi>d$(?uMqqz z=ct76xkAwDfcFTG9o#Sc&x`&HAwI!)JEwYnN%*%&x$`{^klqyhkN;Wm9TL%x1^>bQ z3L(>69M)6$^$R1P(FMyu!GA6Nm|lO475s!Zl%59Bf1}`kQ>zfyi~WlPf1cR6PWT%I z|J;2Faf9G*IY*@@S=!wU!LOEn;A7c9x>WFwiJrq!L8N&buL}OI2Na_$r;WpcFO>f6 zo1$kn>O-vhe?s^#`ki82Cj0{isdRR9C zTd>48KVz2Hw{Z3?UZ^cAt*N$oweqcm=MZ>KaZt#;m5nfefj1{-i7#`}+!;Bu=gsx` zQpZmq_aJZ|6U#k}&lf{rd`tn$UrbDyanUm6a5lm&x8T&KIAE~zts-`zChUm@K42!=-JhQl6|1Nq_--UvFbeI^>=@S=rT^A_abLBmCJ=FOdjFayyQ3>Cl)jn>TGh{FC{ z)B;7H6$q1?8s(-Zv#f&M`A`~_yBdpWZe>YspkiJDF^8h*Z0S&CZiSUGGJU8@J5`#E zW=Mh&xtO-&#sPmza2Q11yWqx1@_v zi?joxm}D=!3RW4@_}G=*YOBiPll0W`Z#sD4ju^y2ixwofRvC6Ju6n-IF-HXvGq@ItaTvtyqj!M-cI3 zhwda;VC9;oBiwC<$hBo|U{w$!XkbMpe13^tXsE3ut5lSQLTH&GpVh(TRibk(E3=e^ z%8JqYfrXu7rN(NfGt}_CC?|7LxD5Y~yULdvEDV(9qoyebVLFZ;Iivb}%!R^vMdkjW z)!i_{Dj;(HmQ5_kMRdQ;^CYbgENe@{(m1vyoo=WU= zvQAZ7`GNe0G96#MhwR1|ij&d!0;kF%#$}sZ%fCB|J&VW5V$VV`vKTFpxgaCk>+{Z? z>GK)95=1-850&}U7;pGyE}5H=J$nYQIDzEzX8Dvr*31P!;DBU$8Cez-O9l$gyPY+EC^Zdo|>sT?Lyp<|1#1Z}(@FUD4;q)@y z>ym-362g*qc1|`HnR+pd^w3f`$2lKox0uRrBX#b^l-EbDFVsct*mOoq+s8IF-9W}C?>_YnpI%!lXESsz1 z(RqteF`_sl?ZsZ{Vpg2)k~*4*O}J1NA}>B)VF~8sC`B077h$lJWa-uoGv$@nSOq*z zmvB@`MpW4QhItG1G*Z`W7(c>F(^<=Puxc3GjpW;P2zw7^j40&%SxL8AhLtO)`9)6m zT-n&RLdEo!^g+Ytm*|5MNcq|^0Jk&l48|Y7~Zi%VT4v#ix{g=Y^#60BOywiD~?D^l)dTLnaPL6 zsFHI3-9zskr)w02)O=OhL}G}Tl~d>Q@0w(2AG0|mupWqLjy6%VPiiqPhh zIyF>Ng3TTy6BCIKI46Q22;JE++(8}`tVZV_YD3UGPqI}5e zkdjb)w@N}kL$SXE>!Q>`te5D&RE|I?%f+@sDi&HL*crBOYX3K$FN7?P+~8fc`t6Vh z4bud#L9%`jmPKUa|9$v%6+TfxkI{qI=$?J0`8j_E2`!6bJJRK#U zmaX!u;SRi?wEv=#W4r(&UiDec&N}~Js`Nzj>#&CZ3R%2*wdD0Zw&c^4e-pA)cXYGY z=W*O3-y+3F^`Cw^UTw!e0!J)bzEut?ww8$2Jus~GMUc}>vq>M&lb$CUr>!@?OQ I5EV533!p-~+W-In literal 0 HcmV?d00001 diff --git a/src/build.onyx b/src/build.onyx index e69de29..623558c 100644 --- a/src/build.onyx +++ b/src/build.onyx @@ -0,0 +1,24 @@ + +#load_path "/home/brendan/dev/onyx" +#load_path "./../lib" +#library_path "./lib" + +#load "core/std" + +#load "main" + +#load "gfx/font" +#load "gfx/imgui" +#load "gfx/mesh" +#load "gfx/shader" +#load "gfx/texture" + +#load "utils/input" +#load "utils/utils" +#load "utils/vecmath" + +#load "stb_image" +#load "stb_truetype" + +#load "modules/opengles/module" +#load "modules/glfw3/module" diff --git a/src/gfx/font.onyx b/src/gfx/font.onyx new file mode 100644 index 0000000..4d82fc3 --- /dev/null +++ b/src/gfx/font.onyx @@ -0,0 +1,175 @@ + +use package core +use package core.intrinsics.onyx {__zero_value} +use package stb_truetype +use package opengles + +#local { + font_registry: Map(FontDescriptor, Font); + font_vbo: GLint; + font_vao: GLint; + + font_shader: Shader; + font_color: Color; +} + +fonts_init :: () { + map.init(^font_registry); + + font_shader = shader_make("./assets/shaders/font_vertex.glsl", "./assets/shaders/font_fragment.glsl"); + shader_use(font_shader); + shader_link_window_matrix_block(font_shader); + + glGenVertexArrays(1, ^font_vao); + glBindVertexArray(font_vao); + + font_interp_buffer: GLint; + glGenBuffers(1, ^font_interp_buffer); + glBindBuffer(GL_ARRAY_BUFFER, font_interp_buffer); + font_interp_data := f32.[ + 0.0, 0.0, + 1.0, 0.0, + 1.0, 1.0, + 0.0, 1.0, + ]; + glBufferData(GL_ARRAY_BUFFER, sizeof typeof font_interp_data, ~~^font_interp_data, GL_STATIC_DRAW); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 2, GL_FLOAT, false, 2 * sizeof f32, ~~0); + + font_index_buffer: GLint; + glGenBuffers(1, ^font_index_buffer); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, font_index_buffer); + font_index_data := u8.[ 0, 1, 2, 0, 2, 3 ]; + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof typeof font_index_data, ~~^font_index_data, GL_STATIC_DRAW); + + glGenBuffers(1, ^font_vbo); + glBindBuffer(GL_ARRAY_BUFFER, font_vbo); + glBufferData(GL_ARRAY_BUFFER, 1024 * sizeof stbtt_aligned_quad, null, GL_STREAM_DRAW); + + for 1..5 { + glEnableVertexAttribArray(it); + glVertexAttribDivisor(it, 1); + } + glVertexAttribPointer(1, 2, GL_FLOAT, false, sizeof stbtt_aligned_quad, ~~ 0); + glVertexAttribPointer(2, 2, GL_FLOAT, false, sizeof stbtt_aligned_quad, ~~16); + glVertexAttribPointer(3, 2, GL_FLOAT, false, sizeof stbtt_aligned_quad, ~~8); + glVertexAttribPointer(4, 2, GL_FLOAT, false, sizeof stbtt_aligned_quad, ~~24); + + glBindBuffer(GL_ARRAY_BUFFER, -1); + glBindVertexArray(-1); + + font_set_color(.{0,0,0}); +} + + +Font :: struct { + texture: GLint; + texture_width, texture_height: i32; + chars: [] stbtt_packedchar; +} + +font_make :: (fd: FontDescriptor) -> Font { + texture_size :: 256; + + char_data := memory.make_slice(stbtt_packedchar, 96); + + ttf_file := os.get_contents(fd.path); + if ttf_file.count == 0 { + println("Bad font"); + return __zero_value(Font); + } + defer cfree(ttf_file.data); + + pixels := calloc(texture_size * texture_size); + defer cfree(pixels); + + ctx: stbtt_pack_context; + stbtt_PackBegin(^ctx, pixels, texture_size, texture_size, 0, 1); + stbtt_PackFontRange(^ctx, ttf_file.data, 0, ~~fd.size, #char " ", 96, char_data.data); + stbtt_PackEnd(^ctx); + + texture: GLint; + glGenTextures(1, ^texture); + glBindTexture(GL_TEXTURE_2D, texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0); + glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, texture_size, texture_size, 0, GL_ALPHA, GL_UNSIGNED_BYTE, pixels); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glBindTexture(GL_TEXTURE_2D, 0); + + font := Font.{ + texture = texture, + texture_width = texture_size, + texture_height = texture_size, + chars = char_data + }; + + return font; +} + +font_set_color :: (color: Color) { + font_color = color; +} + +font_print :: (font: Font, x, y: f32, format: str, va: ..any) { + buf: [1024] u8; + msg := conv.format_va(buf, format, va); + font_draw(font, x, y, msg); +} + +font_draw :: (font: Font, x, y: f32, msg: str) { + quads: ^stbtt_aligned_quad = alloc.from_stack(msg.count * sizeof stbtt_aligned_quad); + quad_num := 0; + + x_, y_ := x, y; + + for msg { + stbtt_GetPackedQuad(font.chars.data, font.texture_width, font.texture_height, + ~~(it - #char " "), ^x_, ^y_, ^quads[quad_num], false); + + quad_num += 1; + } + + glBindBuffer(GL_ARRAY_BUFFER, font_vbo); + glBufferSubData(GL_ARRAY_BUFFER, 0, quad_num * sizeof stbtt_aligned_quad, quads); + glBindBuffer(GL_ARRAY_BUFFER, -1); + + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, font.texture); + shader_use(font_shader); + shader_set_uniform(font_shader, #cstr "u_texture", 0); + shader_set_uniform(font_shader, #cstr "u_color", font_color); + + glDisable(GL_DEPTH_TEST); + glBindVertexArray(font_vao); + glDrawElementsInstanced(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, ~~0, quad_num); + glBindTexture(GL_TEXTURE_2D, -1); + glBindVertexArray(-1); +} + + + +FontDescriptor :: struct { + path : str; + size : u32; +} + +#match hash.to_u32 (fd: FontDescriptor) => { + name_hash := hash.to_u32(fd.path); + size_hash := hash.to_u32(fd.size); + return name_hash * 13 + size_hash * 17; +} + +#operator == (f1, f2: FontDescriptor) => f1.path == f2.path && f1.size == f2.size; + +font_lookup :: (fd := FontDescriptor.{ "assets/calibri.ttf", 12 }) -> Font { + if font_registry->has(fd) { + return font_registry[fd]; + } + + font := font_make(fd); + font_registry[fd] = font; + return font; +} + diff --git a/src/gfx/imgui.onyx b/src/gfx/imgui.onyx new file mode 100644 index 0000000..b96d224 --- /dev/null +++ b/src/gfx/imgui.onyx @@ -0,0 +1,113 @@ + +use package core +use package opengles +use package glfw3 + +immediate_init :: () { + memory.alloc_slice(^vertex_data, Maximum_Vertex_Count); + vertex_count = 0; + + imgui_shader = shader_make(Shader_Vertex_Path, Shader_Fragment_Path); + shader_use(imgui_shader); + shader_link_window_matrix_block(imgui_shader); + shader_set_uniform(imgui_shader, #cstr "u_texture_enabled", 0.0f); + shader_set_uniform(imgui_shader, #cstr "u_texture", 0); + + immediate_mesh = mesh_make(vertex_data, .[], GL_DYNAMIC_DRAW); + immediate_color = .{0,0,0}; +} + +immediate_flush :: () { + if vertex_count == 0 do return; + + shader_use(imgui_shader); + immediate_mesh.vertex_count = vertex_count; + mesh_update_verticies(immediate_mesh, vertex_data); + + mesh_draw(immediate_mesh); + + shader_set_uniform(imgui_shader, #cstr "u_texture_enabled", 0.0f); + vertex_count = 0; +} + +immediate_clear :: (color: Color) { + glClearColor(color.r, color.g, color.b, color.a); + glClear(GL_COLOR_BUFFER_BIT); +} + +immediate_set_color :: (color: Color) { + immediate_color = color; +} + +immediate_vertex :: (x, y: f32, t_x := 0.0f, t_y := 0.0f) { + if vertex_count >= Maximum_Vertex_Count do immediate_flush(); + + vertex_data[vertex_count] = .{ .{x, y}, .{t_x, t_y}, immediate_color }; +} + +immediate_triangle :: (x1, x2, x3: Vector2) { + if vertex_count + 3 > Maximum_Vertex_Count do immediate_flush(); + + vertex_data[vertex_count + 0] = .{ x1, .{0,0}, immediate_color }; + vertex_data[vertex_count + 1] = .{ x2, .{0,0}, immediate_color }; + vertex_data[vertex_count + 2] = .{ x3, .{0,0}, immediate_color }; + vertex_count += 3; +} + +immediate_rectangle :: (x, y, w, h: f32) { + if vertex_count + 6 > Maximum_Vertex_Count do immediate_flush(); + + vertex_data[vertex_count + 0] = .{ .{x, y}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 1] = .{ .{x+w, y}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 2] = .{ .{x+w, y+h}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 3] = .{ .{x, y}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 4] = .{ .{x+w, y+h}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 5] = .{ .{x, y+h}, .{0,0}, immediate_color }; + vertex_count += 6; +} + +immediate_image :: (image: ^Texture, x, y, w, h: f32) { + if vertex_count > 0 do immediate_flush(); + + texture_use(image); + shader_use(imgui_shader); + shader_set_uniform(imgui_shader, #cstr "u_texture_enabled", 1.0f); + shader_set_uniform(imgui_shader, #cstr "u_texture", 0); + + vertex_data[vertex_count + 0] = .{ .{x, y}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 1] = .{ .{x+w, y}, .{1,0}, immediate_color }; + vertex_data[vertex_count + 2] = .{ .{x+w, y+h}, .{1,1}, immediate_color }; + vertex_data[vertex_count + 3] = .{ .{x, y}, .{0,0}, immediate_color }; + vertex_data[vertex_count + 4] = .{ .{x+w, y+h}, .{1,1}, immediate_color }; + vertex_data[vertex_count + 5] = .{ .{x, y+h}, .{0,1}, immediate_color }; + vertex_count += 6; + + immediate_flush(); +} + +immediate_ellipse :: () {} + +Color :: struct { + r, g, b : f32; + a := 1.0f; +} + +Immediate_Vertex :: struct { + pos: Vector2; + tex: Vector2; + color: Color; +} + +#local { + Shader_Vertex_Path :: "./assets/shaders/imgui_vertex.glsl" + Shader_Fragment_Path :: "./assets/shaders/imgui_fragment.glsl" + imgui_shader: Shader; + + Maximum_Vertex_Count :: 1023; + vertex_count: i32; + vertex_data: [] Immediate_Vertex; + + immediate_color: Color; + + immediate_mesh: ^Mesh(Immediate_Vertex); +} diff --git a/src/gfx/mesh.onyx b/src/gfx/mesh.onyx new file mode 100644 index 0000000..db769a9 --- /dev/null +++ b/src/gfx/mesh.onyx @@ -0,0 +1,87 @@ +use package core +use package opengles + +Mesh :: struct (Vertex_Type: type_expr) { + handle: GLint; + vertex_handle: GLint; + index_handle: GLint; + + vertex_count: u32; + index_count: u32; + primitive: GLuint = GL_TRIANGLES; +} + +mesh_make :: (verticies: [] $T, indicies: [] u32, gl_hint := GL_STATIC_DRAW) -> ^Mesh(T) { + mesh := new(Mesh(T)); + mesh.vertex_count = verticies.count; + mesh.index_count = indicies.count; + + glGenVertexArrays(1, ^mesh.handle); + glBindVertexArray(mesh.handle); + + glGenBuffers(1, ^mesh.vertex_handle); + glBindBuffer(GL_ARRAY_BUFFER, mesh.vertex_handle); + glBufferData(GL_ARRAY_BUFFER, sizeof T * verticies.count, verticies.data, gl_hint); + + vertex_info := cast(^type_info.Type_Info_Struct) type_info.get_type_info(T); + vertex_attr := 0; + for attr: vertex_info.members { + defer vertex_attr += 1; + glEnableVertexAttribArray(vertex_attr); + + switch attr.type { + case Vector2 do glVertexAttribPointer(vertex_attr, 2, GL_FLOAT, false, sizeof T, ~~attr.offset); + case Vector3 do glVertexAttribPointer(vertex_attr, 3, GL_FLOAT, false, sizeof T, ~~attr.offset); + case u32 do glVertexAttribIPointer(vertex_attr, 1, GL_UNSIGNED_INT, sizeof T, ~~attr.offset); + case i32 do glVertexAttribIPointer(vertex_attr, 1, GL_INT, sizeof T, ~~attr.offset); + + // It would be nice to not have to have all the cases here. + // Instead allow for an extensible way of defining them at compile time. + case Color do glVertexAttribPointer(vertex_attr, 4, GL_FLOAT, false, sizeof T, ~~attr.offset); + + case #default { + buf: [256] u8; + msg := conv.str_format(buf, "Unknown type for GL vertex attribute, {}.", attr.type); + assert(false, msg); + } + } + } + + if indicies.count > 0 { + glGenBuffers(1, ^mesh.index_handle); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mesh.index_handle); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof i32 * indicies.count, indicies.data, gl_hint); + } + + glBindVertexArray(-1); + + return mesh; +} + +mesh_update_verticies :: (use mesh: ^Mesh, verticies: [] mesh.Vertex_Type) { + @TODO // Add bounds checking to arrays here. + + glBindBuffer(GL_ARRAY_BUFFER, vertex_handle); + glBufferSubData(GL_ARRAY_BUFFER, 0, verticies.count * sizeof mesh.Vertex_Type, verticies.data); + glBindBuffer(GL_ARRAY_BUFFER, -1); +} + +mesh_draw :: (use mesh: ^Mesh) { + glBindVertexArray(handle); + if index_count > 0 { + glDrawElements(primitive, index_count, GL_UNSIGNED_INT, ~~0); + } else { + glDrawArrays(primitive, 0, vertex_count); + } + glBindVertexArray(-1); +} + +mesh_free :: (mesh: ^Mesh) { + glDeleteBuffers(1, ^mesh.vertex_handle); + glDeleteBuffers(1, ^mesh.index_handle); + glDeleteVertexArrays(1, ^mesh.handle); + cfree(mesh); +} + + + diff --git a/src/gfx/shader.onyx b/src/gfx/shader.onyx new file mode 100644 index 0000000..e439404 --- /dev/null +++ b/src/gfx/shader.onyx @@ -0,0 +1,164 @@ + +use package core +use package opengles + +Shader :: struct { + vs, fs: GLuint; + prog: GLuint; +} + +window_matrix_block_buffer: GLuint; +world_matrix_block_buffer: GLuint; + +shaders_init :: () { + glGenBuffers(1, ^window_matrix_block_buffer); + glGenBuffers(1, ^world_matrix_block_buffer); + + glBindBuffer(GL_UNIFORM_BUFFER, window_matrix_block_buffer); + glBufferData(GL_UNIFORM_BUFFER, sizeof f32 * 16, null, GL_DYNAMIC_DRAW); + + glBindBuffer(GL_UNIFORM_BUFFER, world_matrix_block_buffer); + glBufferData(GL_UNIFORM_BUFFER, sizeof f32 * (16 + 16), null, GL_DYNAMIC_DRAW); + + glBindBuffer(GL_UNIFORM_BUFFER, -1); + + glBindBufferBase(GL_UNIFORM_BUFFER, WINDOW_MATRIX_BLOCK, window_matrix_block_buffer); + glBindBufferBase(GL_UNIFORM_BUFFER, WORLD_MATRIX_BLOCK, world_matrix_block_buffer); +} + +shader_make :: (vertex_path, fragment_path: str) -> Shader { + vertex_shader := os.get_contents(vertex_path); + fragment_shader := os.get_contents(fragment_path); + vs := compile_shader(vertex_shader, GL_VERTEX_SHADER); + fs := compile_shader(fragment_shader, GL_FRAGMENT_SHADER); + + prog := link_program(vs, fs); + + return Shader.{vs, fs, prog}; +} + +shader_use :: (shader: Shader) { + glUseProgram(shader.prog); +} + +#local { + WINDOW_MATRIX_BLOCK :: 0; + WORLD_MATRIX_BLOCK :: 1; +} + +shader_link_window_matrix_block :: (use shader: Shader) { + matrix_block_index := glGetUniformBlockIndex(prog, #cstr "u_window_matrix_block"); + glUniformBlockBinding(prog, matrix_block_index, WINDOW_MATRIX_BLOCK); +} + +shader_link_world_matrix_block :: (use shader: Shader) { + matrix_block_index := glGetUniformBlockIndex(prog, #cstr "u_world_matrix_block"); + glUniformBlockBinding(prog, matrix_block_index, WORLD_MATRIX_BLOCK); +} + +shader_set_uniform :: (shader: Shader, uniform: cstr, value: $T) { + glUseProgram(shader.prog); + location := glGetUniformLocation(shader.prog, uniform); + + set_uniform_internal(location, value); + + set_uniform_internal :: #match { + macro (location: GLint, value: u32) do glUniform1i(location, value); , + macro (location: GLint, value: f32) do glUniform1f(location, value); , + macro (location: GLint, value: Vector3) do glUniform3f(location, value.x, value.y, value.z); , + macro (location: GLint, value: Color) do glUniform4f(location, value.r, value.g, value.b, value.a); , + + macro (location: GLint, value: $T) { + buffer: [1024] u8; + assert(false, conv.format(buffer, "Bad shader_set_uniform case: {}", T)); + } + } +} + +update_view_matrix :: () { + matrix : [16] f32; + top := 0.0f; + left := 0.0f; + right := cast(f32) window_width; + bottom := cast(f32) window_height; + far := 10.0f; + near := 0f; + + matrix[0] = 2 / (right - left); + matrix[5] = 2 / (top - bottom); + matrix[10] = -2 / (far - near); + matrix[12] = -(right + left) / (right - left); + matrix[13] = -(top + bottom) / (top - bottom); + matrix[14] = -(far + near) / (far - near); + matrix[15] = 1; + + glBindBuffer(GL_UNIFORM_BUFFER, window_matrix_block_buffer); + glBufferSubData(GL_UNIFORM_BUFFER, 0, sizeof typeof matrix, ^matrix); + glBindBuffer(GL_UNIFORM_BUFFER, -1); +} + +update_world_matrix :: () { + world_mat: [16] f32; + world_mat[0] = 1; + world_mat[5] = 1; + world_mat[10] = 1; + world_mat[15] = 1; + + glBindBuffer(GL_UNIFORM_BUFFER, world_matrix_block_buffer); + glBufferSubData(GL_UNIFORM_BUFFER, 0, sizeof typeof world_mat, ^world_mat); + glBindBuffer(GL_UNIFORM_BUFFER, -1); +} + +update_model_matrix :: (v: Vector2) { + model_mat: [16] f32; + model_mat[0] = 1; + model_mat[5] = 1; + model_mat[10] = 1; + model_mat[12] = v.x; + model_mat[13] = v.y; + model_mat[14] = 0; + model_mat[15] = 1; + + glBindBuffer(GL_UNIFORM_BUFFER, world_matrix_block_buffer); + glBufferSubData(GL_UNIFORM_BUFFER, 16 * sizeof f32, sizeof typeof model_mat, ^model_mat); + glBindBuffer(GL_UNIFORM_BUFFER, -1); +} + + +#local { + compile_shader :: (source: str, type: GLenum) -> GLint { + shader := glCreateShader(type); + source_data := source.data; + source_len := source.count; + glShaderSource(shader, 1, ^source_data, ^source_len); + glCompileShader(shader); + + success: GLint; + if glGetShaderiv(shader, GL_COMPILE_STATUS, ^success); success == GL_FALSE { + buf_data: [2048] u8; + buf := str.{ ~~buf_data, 0 }; + glGetShaderInfoLog(shader, 2048, ^buf.count, buf.data); + println(buf); + } + + return shader; + } + + link_program :: (vertex_shader, fragment_shader: GLint) -> GLuint { + prog := glCreateProgram(); + glAttachShader(prog, vertex_shader); + glAttachShader(prog, fragment_shader); + glLinkProgram(prog); + + success: GLint; + if glGetProgramiv(prog, GL_LINK_STATUS, ^success); success == GL_FALSE { + buf_data: [1024] u8; + buf := str.{ ~~buf_data, 0 }; + glGetProgramInfoLog(prog, 1024, ^buf.count, buf.data); + println(buf); + } + + return prog; + } +} + diff --git a/src/gfx/texture.onyx b/src/gfx/texture.onyx new file mode 100644 index 0000000..5d51168 --- /dev/null +++ b/src/gfx/texture.onyx @@ -0,0 +1,38 @@ + +use package core +use package opengles +use package stb_image + +Texture :: struct { + texture: GLint; + width, height, channels: i32; + filename: str; +} + +texture_make :: (path: cstr) -> Texture { + tex: Texture; + tex.filename = path |> string.from_cstr(); + pixels := stbi_load(path, ^tex.width, ^tex.height, ^tex.channels, 4); + assert(pixels != null, "Failed to load texture."); + defer stbi_image_free(pixels); + + glGenTextures(1, ^tex.texture); + glBindTexture(GL_TEXTURE_2D, tex.texture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex.width, tex.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels); + + // Are these sensible defaults? + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + + glBindTexture(GL_TEXTURE_2D, 0); + + return tex; +} + +texture_use :: (use tex: ^Texture, texture_binding := 0) { + glActiveTexture(GL_TEXTURE0 + texture_binding); + glBindTexture(GL_TEXTURE_2D, texture); +} + diff --git a/src/main.onyx b/src/main.onyx index e69de29..7bfe010 100644 --- a/src/main.onyx +++ b/src/main.onyx @@ -0,0 +1,146 @@ + +use package core +use package opengles +use package glfw3 +#local runtime :: package runtime + +@GlobalVariable +window: GLFWwindow_p + +@GlobalVariable +window_width: u32 +window_height: u32 + +player_texture: Texture; +main_font: Font; + +init :: () { + create_window(); + glInit(glfwGetLoadProcAddress()); + + glEnable(GL_TEXTURE); + glEnable(GL_CULL_FACE); + glFrontFace(GL_CW); + glCullFace(GL_BACK); + glEnable(GL_BLEND); + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + + shaders_init(); + fonts_init(); + immediate_init(); + + glfwGetWindowSize(window, ^window_width, ^window_height); + glViewport(0, 0, window_width, window_height); + update_view_matrix(); + + player_texture = texture_make(#cstr "./assets/images/player.png"); + main_font = font_make(.{"./assets/fonts/calibri.ttf", 32}); +} + +update :: (dt: f32) { + input_update(); + defer input_post_update(); +} + +draw :: () { + immediate_clear(.{0.1, 0.1, 0.1}); + + update_world_matrix(); + update_model_matrix(.{0,0}); + + immediate_set_color(.{0,0,1}); + immediate_rectangle(0, 0, 100, 100); + + immediate_set_color(.{1,0,0}); + for i: 100 { + immediate_image(^player_texture, ~~(100 + 64 * i), 50, 64, 64); + } + + immediate_flush(); + + font_set_color(.{1,0,0}); + font_print(main_font, 0, 32, "FPS: {}", game_fps); + + glfwSwapBuffers(window); +} + +#local { + debug_screen := true; + game_fps: i32; +} + +run :: () { + last := glfwGetTime(); + now := last; + + seconds := 0.0; + frame_count := 0; + + while !glfwWindowShouldClose(window) { + glfwPollEvents(); + + now = glfwGetTime(); + dt := now - last; + last = now; + dt = math.clamp(dt, 0, 0.5); + + seconds += dt; + frame_count += 1; + if seconds >= 1 { + game_fps = ~~frame_count; + seconds -= 1; + frame_count = 0; + } + + update(cast(f32) dt); + draw(); + } +} + +create_window :: () => { + #if runtime.compiler_os == .Linux { + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); + glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); + } else { + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); + } + window = glfwCreateWindow(800, 600, #cstr "Bar simulator"); + + glfwMakeContextCurrent(window); + glfwSwapInterval(1); + glfwSetWindowSizeCallback(window, "on_resize"); + glfwSetKeyCallback(window, "on_key"); + glfwSetMouseButtonCallback(window, "on_mouse_button"); +} + +#export "on_resize" (window: GLFWwindow_p, width, height: u32) { + glViewport(0, 0, width, height); + window_width = width; + window_height = height; + update_view_matrix(); +} + +#export "on_key" (window: GLFWwindow_p, key, scancode, action, mod: u32) { + if key == GLFW_KEY_ESCAPE && action == GLFW_PRESS { + glfwSetWindowShouldClose(window, true); + } + + handle_key_event(key, scancode, action, mod); +} + +#export "on_mouse_button" (window: GLFWwindow_p, button, action, mod: u32) { + handle_button_event(button, action, mod); +} + + +main :: (args) => { + if !glfwInit() { + println("Failed to initialize GLFW"); + os.exit(1); + } + + init(); + run(); +} diff --git a/src/utils/input.onyx b/src/utils/input.onyx new file mode 100644 index 0000000..a05c3f5 --- /dev/null +++ b/src/utils/input.onyx @@ -0,0 +1,64 @@ +use package core +use package glfw3 + +#local { + keys_this_frame: [..] u32 + keys_last_frame: [..] u32 + + buttons_this_frame: [8] bool + buttons_last_frame: [8] bool +} + +input_update :: () { + glfwGetCursorPos(window, ^mouse_x, ^mouse_y); +} + +input_post_update :: () { + array.clear(^keys_last_frame); + for keys_this_frame do keys_last_frame << it; + + for 8 do buttons_last_frame[it] = buttons_this_frame[it]; + + last_mouse_x = mouse_x; + last_mouse_y = mouse_y; +} + +handle_key_event :: (key, scancode, action, mod: u32) { + if action == GLFW_PRESS { + keys_this_frame << key; + } + + if action == GLFW_RELEASE { + array.remove(^keys_this_frame, key); + } +} + +is_key_down :: (key) => array.contains(keys_this_frame, key); +is_key_just_down :: (key) => array.contains(keys_this_frame, key) && !array.contains(keys_last_frame, key); +is_key_just_up :: (key) => !array.contains(keys_this_frame, key) && array.contains(keys_last_frame, key); + +handle_button_event :: (button, action, mod: u32) { + if action == GLFW_PRESS { + buttons_this_frame[button] = true; + } + + if action == GLFW_RELEASE { + buttons_this_frame[button] = false; + } +} + +is_button_down :: (button) => buttons_this_frame[button]; +is_button_just_down :: (button) => buttons_this_frame[button] && !buttons_last_frame[button]; +is_button_just_up :: (button) => !buttons_this_frame[button] && buttons_last_frame[button]; + +#local { + last_mouse_x: f64; + last_mouse_y: f64; + + mouse_x: f64; + mouse_y: f64; +} + +mouse_get_delta :: () -> (f64, f64) { + return mouse_x - last_mouse_x, mouse_y - last_mouse_y; +} diff --git a/src/utils/vecmath.onyx b/src/utils/vecmath.onyx new file mode 100644 index 0000000..eb6f639 --- /dev/null +++ b/src/utils/vecmath.onyx @@ -0,0 +1,71 @@ +Vector2 :: struct [conv.Custom_Format.{format_vector2}] { + x, y: f32; +} + +Vector3i :: struct [conv.Custom_Format.{format_vector3i}] { + x, y, z: i32; +} + +Vector3 :: struct [conv.Custom_Format.{format_vector3}] { + x, y, z: f32; + + mag :: macro (v: Vector3) => math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z); + + neg :: macro (v: Vector3) => Vector3.{ -v.x, -v.y, -v.z }; + + dot :: macro (v1, v2: Vector3) -> f32 { + return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z; + } + + norm :: macro (v: Vector3) -> Vector3 { + l := math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z); + return .{ v.x / l, v.y / l, v.z / l }; + } + + cross :: macro (v1, v2: Vector3) -> Vector3 { + return .{ + v1.y * v2.z - v1.z * v2.y, + v1.z * v2.x - v1.x * v2.z, + v1.x * v2.y - v1.y * v2.x, + }; + } + + clamp :: macro (v: Vector3, min: Vector3, max: Vector3) -> Vector3 { + return .{ + math.clamp(v.x, min.x, max.x), + math.clamp(v.y, min.y, max.y), + math.clamp(v.z, min.z, max.z), + }; + } +} + +#operator + macro (v1, v2: Vector2) => (typeof v1).{ v1.x + v2.x, v1.y + v2.y }; +#operator - macro (v1, v2: Vector2) => Vector2.{ v1.x - v2.x, v1.y - v2.y }; +#operator * macro (v: Vector2, s: f32) => Vector2.{ v.x * s, v.y * s }; +#operator == macro (v1, v2: Vector2) => v1.x == v2.x && v1.y == v2.y; + +#operator + macro (v1, v2: Vector3) => Vector3.{ v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; +#operator - macro (v1, v2: Vector3) => Vector3.{ v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; +#operator * macro (v: Vector3, s: f32) => Vector3.{ v.x * s, v.y * s, v.z * s }; +#operator == macro (v1, v2: Vector3) => v1.x == v2.x && v1.y == v2.y && v1.z == v2.z; + +#operator + macro (v1, v2: Vector3i) => Vector3i.{ v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; +#operator - macro (v1, v2: Vector3i) => Vector3i.{ v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; +#operator * macro (v: Vector3i, s: i32) => Vector3i.{ v.x * s, v.y * s, v.z * s }; +#operator == macro (v1, v2: Vector3i) => v1.x == v2.x && v1.y == v2.y && v1.z == v2.z; + +#local { + conv :: package core.conv + + format_vector2 :: (output: ^conv.Format_Output, format: ^conv.Format, v: ^Vector2) { + conv.format(output, "({}, {})", v.x, v.y); + } + + format_vector3 :: (output: ^conv.Format_Output, format: ^conv.Format, v: ^Vector3) { + conv.format(output, "({}, {}, {})", v.x, v.y, v.z); + } + + format_vector3i :: (output: ^conv.Format_Output, format: ^conv.Format, v: ^Vector3i) { + conv.format(output, "({}, {}, {})", v.x, v.y, v.z); + } +} -- 2.25.1

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