From 3dc07457a65ecfad319bf86e58373e121aa90541 Mon Sep 17 00:00:00 2001 From: Tadas Baltrusaitis Date: Wed, 7 Feb 2018 08:28:39 +0000 Subject: [PATCH] Updating the tbb version in Windows build. --- lib/3rdParty/tbb/CHANGES | 307 ++- lib/3rdParty/tbb/LICENSE | 201 ++ lib/3rdParty/tbb/bin/x64/v140/tbb.dll | Bin 261360 -> 261392 bytes lib/3rdParty/tbb/bin/x64/v140/tbb_debug.dll | Bin 484080 -> 478992 bytes lib/3rdParty/tbb/bin/x64/v140/tbb_preview.dll | Bin 266992 -> 268560 bytes lib/3rdParty/tbb/bin/x64/v140/tbbmalloc.dll | Bin 123120 -> 126224 bytes .../tbb/bin/x64/v140/tbbmalloc_proxy.dll | Bin 42736 -> 42768 bytes lib/3rdParty/tbb/bin/x86/v140/tbb.dll | Bin 200432 -> 200976 bytes lib/3rdParty/tbb/bin/x86/v140/tbb_debug.dll | Bin 379120 -> 375568 bytes lib/3rdParty/tbb/bin/x86/v140/tbb_preview.dll | Bin 204528 -> 205584 bytes lib/3rdParty/tbb/bin/x86/v140/tbbmalloc.dll | Bin 84720 -> 87312 bytes .../tbb/bin/x86/v140/tbbmalloc_proxy.dll | Bin 34544 -> 35088 bytes lib/3rdParty/tbb/include/index.html | 4 +- .../tbb/include/serial/tbb/parallel_for.h | 36 +- .../tbb/include/serial/tbb/tbb_annotate.h | 30 +- lib/3rdParty/tbb/include/tbb/aggregator.h | 38 +- lib/3rdParty/tbb/include/tbb/aligned_space.h | 30 +- lib/3rdParty/tbb/include/tbb/atomic.h | 40 +- lib/3rdParty/tbb/include/tbb/blocked_range.h | 30 +- .../tbb/include/tbb/blocked_range2d.h | 30 +- .../tbb/include/tbb/blocked_range3d.h | 30 +- .../tbb/include/tbb/cache_aligned_allocator.h | 30 +- lib/3rdParty/tbb/include/tbb/combinable.h | 57 +- .../tbb/include/tbb/compat/condition_variable | 30 +- lib/3rdParty/tbb/include/tbb/compat/ppl.h | 30 +- lib/3rdParty/tbb/include/tbb/compat/thread | 30 +- lib/3rdParty/tbb/include/tbb/compat/tuple | 30 +- .../tbb/include/tbb/concurrent_hash_map.h | 41 +- .../tbb/include/tbb/concurrent_lru_cache.h | 34 +- .../include/tbb/concurrent_priority_queue.h | 49 +- .../tbb/include/tbb/concurrent_queue.h | 64 +- .../include/tbb/concurrent_unordered_map.h | 109 +- .../include/tbb/concurrent_unordered_set.h | 111 +- .../tbb/include/tbb/concurrent_vector.h | 37 +- .../tbb/include/tbb/critical_section.h | 30 +- .../include/tbb/enumerable_thread_specific.h | 63 +- lib/3rdParty/tbb/include/tbb/flow_graph.h | 1691 ++++++++++------- .../tbb/include/tbb/flow_graph_abstractions.h | 57 + .../tbb/include/tbb/flow_graph_opencl_node.h | 1572 +++++---------- lib/3rdParty/tbb/include/tbb/gfx_factory.h | 359 ++++ lib/3rdParty/tbb/include/tbb/global_control.h | 30 +- lib/3rdParty/tbb/include/tbb/index.html | 2 +- .../include/tbb/internal/_aggregator_impl.h | 58 +- .../tbb/internal/_concurrent_queue_impl.h | 54 +- .../tbb/internal/_concurrent_unordered_impl.h | 171 +- .../tbb/internal/_flow_graph_async_msg_impl.h | 221 +++ .../include/tbb/internal/_flow_graph_impl.h | 150 +- .../tbb/internal/_flow_graph_indexer_impl.h | 78 +- .../internal/_flow_graph_item_buffer_impl.h | 69 +- .../tbb/internal/_flow_graph_join_impl.h | 126 +- .../tbb/internal/_flow_graph_node_impl.h | 195 +- .../tbb/internal/_flow_graph_streaming_node.h | 745 ++++++++ .../internal/_flow_graph_tagged_buffer_impl.h | 30 +- .../tbb/internal/_flow_graph_trace_impl.h | 30 +- .../tbb/internal/_flow_graph_types_impl.h | 40 +- .../tbb/include/tbb/internal/_mutex_padding.h | 30 +- .../include/tbb/internal/_range_iterator.h | 30 +- .../tbb/internal/_tbb_hash_compare_impl.h | 31 +- .../tbb/include/tbb/internal/_tbb_strings.h | 30 +- .../tbb/include/tbb/internal/_tbb_windef.h | 30 +- .../include/tbb/internal/_template_helpers.h | 51 +- .../tbb/internal/_x86_eliding_mutex_impl.h | 30 +- .../tbb/internal/_x86_rtm_rw_mutex_impl.h | 30 +- .../tbb/include/tbb/machine/gcc_armv7.h | 38 +- .../tbb/include/tbb/machine/gcc_generic.h | 32 +- .../tbb/include/tbb/machine/gcc_ia32_common.h | 32 +- .../tbb/include/tbb/machine/gcc_itsx.h | 30 +- .../tbb/include/tbb/machine/ibm_aix51.h | 30 +- .../tbb/include/tbb/machine/icc_generic.h | 30 +- .../tbb/include/tbb/machine/linux_common.h | 30 +- .../tbb/include/tbb/machine/linux_ia32.h | 30 +- .../tbb/include/tbb/machine/linux_ia64.h | 30 +- .../tbb/include/tbb/machine/linux_intel64.h | 30 +- .../tbb/include/tbb/machine/mac_ppc.h | 30 +- .../tbb/include/tbb/machine/macos_common.h | 38 +- .../tbb/include/tbb/machine/mic_common.h | 30 +- .../tbb/include/tbb/machine/msvc_armv7.h | 30 +- .../include/tbb/machine/msvc_ia32_common.h | 30 +- .../tbb/include/tbb/machine/sunos_sparc.h | 30 +- .../tbb/include/tbb/machine/windows_api.h | 40 +- .../tbb/include/tbb/machine/windows_ia32.h | 30 +- .../tbb/include/tbb/machine/windows_intel64.h | 30 +- lib/3rdParty/tbb/include/tbb/memory_pool.h | 36 +- lib/3rdParty/tbb/include/tbb/mutex.h | 35 +- lib/3rdParty/tbb/include/tbb/null_mutex.h | 30 +- lib/3rdParty/tbb/include/tbb/null_rw_mutex.h | 30 +- lib/3rdParty/tbb/include/tbb/parallel_do.h | 173 +- lib/3rdParty/tbb/include/tbb/parallel_for.h | 46 +- .../tbb/include/tbb/parallel_for_each.h | 30 +- .../tbb/include/tbb/parallel_invoke.h | 37 +- .../tbb/include/tbb/parallel_reduce.h | 48 +- lib/3rdParty/tbb/include/tbb/parallel_scan.h | 40 +- lib/3rdParty/tbb/include/tbb/parallel_sort.h | 30 +- lib/3rdParty/tbb/include/tbb/parallel_while.h | 36 +- lib/3rdParty/tbb/include/tbb/partitioner.h | 52 +- lib/3rdParty/tbb/include/tbb/pipeline.h | 54 +- lib/3rdParty/tbb/include/tbb/queuing_mutex.h | 30 +- .../tbb/include/tbb/queuing_rw_mutex.h | 30 +- .../tbb/include/tbb/reader_writer_lock.h | 30 +- .../tbb/include/tbb/recursive_mutex.h | 30 +- lib/3rdParty/tbb/include/tbb/runtime_loader.h | 30 +- .../tbb/include/tbb/scalable_allocator.h | 38 +- lib/3rdParty/tbb/include/tbb/spin_mutex.h | 32 +- lib/3rdParty/tbb/include/tbb/spin_rw_mutex.h | 30 +- lib/3rdParty/tbb/include/tbb/task.h | 49 +- lib/3rdParty/tbb/include/tbb/task_arena.h | 96 +- lib/3rdParty/tbb/include/tbb/task_group.h | 32 +- .../tbb/include/tbb/task_scheduler_init.h | 64 +- .../tbb/include/tbb/task_scheduler_observer.h | 55 +- lib/3rdParty/tbb/include/tbb/tbb.h | 30 +- lib/3rdParty/tbb/include/tbb/tbb_allocator.h | 30 +- lib/3rdParty/tbb/include/tbb/tbb_config.h | 408 ++-- lib/3rdParty/tbb/include/tbb/tbb_exception.h | 76 +- lib/3rdParty/tbb/include/tbb/tbb_machine.h | 51 +- lib/3rdParty/tbb/include/tbb/tbb_profiling.h | 30 +- lib/3rdParty/tbb/include/tbb/tbb_stddef.h | 44 +- lib/3rdParty/tbb/include/tbb/tbb_thread.h | 32 +- .../tbb/include/tbb/tbbmalloc_proxy.h | 30 +- lib/3rdParty/tbb/include/tbb/tick_count.h | 30 +- lib/3rdParty/tbb/index.html | 12 +- lib/3rdParty/tbb/lib/x64/v140/tbb.def | 221 ++- lib/3rdParty/tbb/lib/x64/v140/tbb.lib | Bin 95534 -> 96548 bytes lib/3rdParty/tbb/lib/x64/v140/tbb_debug.lib | Bin 96974 -> 98000 bytes lib/3rdParty/tbb/lib/x64/v140/tbb_preview.lib | Bin 101178 -> 102718 bytes lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.def | 34 +- lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.lib | Bin 9268 -> 9268 bytes .../tbb/lib/x64/v140/tbbmalloc_proxy.lib | Bin 1928 -> 1928 bytes lib/3rdParty/tbb/lib/x64/v140/tbbproxy.lib | Bin 273450 -> 275858 bytes lib/3rdParty/tbb/lib/x86/v140/tbb.def | 222 ++- lib/3rdParty/tbb/lib/x86/v140/tbb.lib | Bin 93554 -> 94556 bytes lib/3rdParty/tbb/lib/x86/v140/tbb_debug.lib | Bin 94988 -> 96002 bytes lib/3rdParty/tbb/lib/x86/v140/tbb_preview.lib | Bin 99158 -> 100676 bytes lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.def | 34 +- lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.lib | Bin 9204 -> 9204 bytes .../tbb/lib/x86/v140/tbbmalloc_proxy.lib | Bin 1924 -> 1924 bytes lib/3rdParty/tbb/lib/x86/v140/tbbproxy.lib | Bin 259466 -> 261956 bytes 136 files changed, 6179 insertions(+), 4389 deletions(-) create mode 100644 lib/3rdParty/tbb/LICENSE create mode 100644 lib/3rdParty/tbb/include/tbb/flow_graph_abstractions.h create mode 100644 lib/3rdParty/tbb/include/tbb/gfx_factory.h create mode 100644 lib/3rdParty/tbb/include/tbb/internal/_flow_graph_async_msg_impl.h create mode 100644 lib/3rdParty/tbb/include/tbb/internal/_flow_graph_streaming_node.h diff --git a/lib/3rdParty/tbb/CHANGES b/lib/3rdParty/tbb/CHANGES index f2fc2d3..ab1d1a1 100644 --- a/lib/3rdParty/tbb/CHANGES +++ b/lib/3rdParty/tbb/CHANGES @@ -2,6 +2,280 @@ The list of most significant changes made over time in Intel(R) Threading Building Blocks (Intel(R) TBB). +Intel TBB 2017 Update 7 +TBB_INTERFACE_VERSION == 9107 + +Changes (w.r.t. Intel TBB 2017 Update 6): + +- In the huge pages mode, the memory allocator now is also able to use + transparent huge pages. + +Preview Features: + +- Added support for Intel TBB integration into CMake-aware + projects, with valuable guidance and feedback provided by Brad King + (Kitware). + +Bugs fixed: + +- Fixed scalable_allocation_command(TBBMALLOC_CLEAN_ALL_BUFFERS, 0) + to process memory left after exited threads. + +------------------------------------------------------------------------ +Intel TBB 2017 Update 6 +TBB_INTERFACE_VERSION == 9106 + +Changes (w.r.t. Intel TBB 2017 Update 5): + +- Added support for Android* NDK r14. + +Preview Features: + +- Added a blocking terminate extension to the task_scheduler_init class + that allows an object to wait for termination of worker threads. + +Bugs fixed: + +- Fixed compilation and testing issues with MinGW (GCC 6). +- Fixed compilation with /std:c++latest option of VS 2017 + (https://github.com/01org/tbb/issues/13). + +------------------------------------------------------------------------ +Intel TBB 2017 Update 5 +TBB_INTERFACE_VERSION == 9105 + +Changes (w.r.t. Intel TBB 2017 Update 4): + +- Added support for Microsoft* Visual Studio* 2017. +- Added graph/matmult example to demonstrate support for compute offload + to Intel(R) Graphics Technology in the flow graph API. +- The "compiler" build option now allows to specify a full path to the + compiler. + +Changes affecting backward compatibility: + +- Constructors for many classes, including graph nodes, concurrent + containers, thread-local containers, etc., are declared explicit and + cannot be used for implicit conversions anymore. + +Bugs fixed: + +- Added a workaround for bug 16657 in the GNU C Library (glibc) + affecting the debug version of tbb::mutex. +- Fixed a crash in pool_identify() called for an object allocated in + another thread. + +------------------------------------------------------------------------ +Intel TBB 2017 Update 4 +TBB_INTERFACE_VERSION == 9104 + +Changes (w.r.t. Intel TBB 2017 Update 3): + +- Added support for C++11 move semantics in parallel_do. +- Added support for FreeBSD* 11. + +Changes affecting backward compatibility: + +- Minimal compiler versions required for support of C++11 move semantics + raised to GCC 4.5, VS 2012, and Intel(R) C++ Compiler 14.0. + +Bugs fixed: + +- The workaround for crashes in the library compiled with GCC 6 + (-flifetime-dse=1) was extended to Windows*. + +------------------------------------------------------------------------ +Intel TBB 2017 Update 3 +TBB_INTERFACE_VERSION == 9103 + +Changes (w.r.t. Intel TBB 2017 Update 2): + +- Added support for Android* 7.0 and Android* NDK r13, r13b. + +Preview Features: + +- Added template class gfx_factory to the flow graph API. It implements + the Factory concept for streaming_node to offload computations to + Intel(R) processor graphics. + +Bugs fixed: + +- Fixed a possible deadlock caused by missed wakeup signals in + task_arena::execute(). + +Open-source contributions integrated: + +- A build fix for Linux* s390x platform by Jerry J. + +------------------------------------------------------------------------ +Intel TBB 2017 Update 2 +TBB_INTERFACE_VERSION == 9102 + +Changes (w.r.t. Intel TBB 2017 Update 1): + +- Removed the long-outdated support for Xbox* consoles. + +Bugs fixed: + +- Fixed the issue with task_arena::execute() not being processed when + the calling thread cannot join the arena. +- Fixed dynamic memory allocation replacement failure on macOS* 10.12. + +------------------------------------------------------------------------ +Intel TBB 2017 Update 1 +TBB_INTERFACE_VERSION == 9101 + +Changes (w.r.t. Intel TBB 2017): + +Bugs fixed: + +- Fixed dynamic memory allocation replacement failures on Windows* 10 + Anniversary Update. +- Fixed emplace() method of concurrent unordered containers to not + require a copy constructor. + +------------------------------------------------------------------------ +Intel TBB 2017 +TBB_INTERFACE_VERSION == 9100 + +Changes (w.r.t. Intel TBB 4.4 Update 5): + +- static_partitioner class is now a fully supported feature. +- async_node class is now a fully supported feature. +- Improved dynamic memory allocation replacement on Windows* OS to skip + DLLs for which replacement cannot be done, instead of aborting. +- Intel TBB no longer performs dynamic memory allocation replacement + for Microsoft* Visual Studio* 2008. +- For 64-bit platforms, quadrupled the worst-case limit on the amount + of memory the Intel TBB allocator can handle. +- Added TBB_USE_GLIBCXX_VERSION macro to specify the version of GNU + libstdc++ when it cannot be properly recognized, e.g. when used + with Clang on Linux* OS. Inspired by a contribution from David A. +- Added graph/stereo example to demostrate tbb::flow::async_msg. +- Removed a few cases of excessive user data copying in the flow graph. +- Reworked split_node to eliminate unnecessary overheads. +- Added support for C++11 move semantics to the argument of + tbb::parallel_do_feeder::add() method. +- Added C++11 move constructor and assignment operator to + tbb::combinable template class. +- Added tbb::this_task_arena::max_concurrency() function and + max_concurrency() method of class task_arena returning the maximal + number of threads that can work inside an arena. +- Deprecated tbb::task_arena::current_thread_index() static method; + use tbb::this_task_arena::current_thread_index() function instead. +- All examples for commercial version of library moved online: + https://software.intel.com/en-us/product-code-samples. Examples are + available as a standalone package or as a part of Intel(R) Parallel + Studio XE or Intel(R) System Studio Online Samples packages. + +Changes affecting backward compatibility: + +- Renamed following methods and types in async_node class: + Old New + async_gateway_type => gateway_type + async_gateway() => gateway() + async_try_put() => try_put() + async_reserve() => reserve_wait() + async_commit() => release_wait() +- Internal layout of some flow graph nodes has changed; recompilation + is recommended for all binaries that use the flow graph. + +Preview Features: + +- Added template class streaming_node to the flow graph API. It allows + a flow graph to offload computations to other devices through + streaming or offloading APIs. +- Template class opencl_node reimplemented as a specialization of + streaming_node that works with OpenCL*. +- Added tbb::this_task_arena::isolate() function to isolate execution + of a group of tasks or an algorithm from other tasks submitted + to the scheduler. + +Bugs fixed: + +- Added a workaround for GCC bug #62258 in std::rethrow_exception() + to prevent possible problems in case of exception propagation. +- Fixed parallel_scan to provide correct result if the initial value + of an accumulator is not the operation identity value. +- Fixed a memory corruption in the memory allocator when it meets + internal limits. +- Fixed the memory allocator on 64-bit platforms to align memory + to 16 bytes by default for all allocations bigger than 8 bytes. +- As a workaround for crashes in the Intel TBB library compiled with + GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS. +- Fixed a race in the flow graph implementation. + +Open-source contributions integrated: + +- Enabling use of C++11 'override' keyword by Raf Schietekat. + +------------------------------------------------------------------------ +Intel TBB 4.4 Update 6 +TBB_INTERFACE_VERSION == 9006 + +Changes (w.r.t. Intel TBB 4.4 Update 5): + +- For 64-bit platforms, quadrupled the worst-case limit on the amount + of memory the Intel TBB allocator can handle. + +Bugs fixed: + +- Fixed a memory corruption in the memory allocator when it meets + internal limits. +- Fixed the memory allocator on 64-bit platforms to align memory + to 16 bytes by default for all allocations bigger than 8 bytes. +- Fixed parallel_scan to provide correct result if the initial value + of an accumulator is not the operation identity value. +- As a workaround for crashes in the Intel TBB library compiled with + GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS. + +------------------------------------------------------------------------ +Intel TBB 4.4 Update 5 +TBB_INTERFACE_VERSION == 9005 + +Changes (w.r.t. Intel TBB 4.4 Update 4): + +- Modified graph/fgbzip2 example to remove unnecessary data queuing. + +Preview Features: + +- Added a Python* module which is able to replace Python's thread pool + class with the implementation based on Intel TBB task scheduler. + +Bugs fixed: + +- Fixed the implementation of 64-bit tbb::atomic for IA-32 architecture + to work correctly with GCC 5.2 in C++11/14 mode. +- Fixed a possible crash when tasks with affinity (e.g. specified via + affinity_partitioner) are used simultaneously with task priority + changes. + +------------------------------------------------------------------------ +Intel TBB 4.4 Update 4 +TBB_INTERFACE_VERSION == 9004 + +Changes (w.r.t. Intel TBB 4.4 Update 3): + +- Removed a few cases of excessive user data copying in the flow graph. +- Improved robustness of concurrent_bounded_queue::abort() in case of + simultaneous push and pop operations. + +Preview Features: + +- Added tbb::flow::async_msg, a special message type to support + communications between the flow graph and external asynchronous + activities. +- async_node modified to support use with C++03 compilers. + +Bugs fixed: + +- Fixed a bug in dynamic memory allocation replacement for Windows* OS. +- Fixed excessive memory consumption on Linux* OS caused by enabling + zero-copy realloc. +- Fixed performance regression on Intel(R) Xeon Phi(tm) coprocessor with + auto_partitioner. + +------------------------------------------------------------------------ Intel TBB 4.4 Update 3 TBB_INTERFACE_VERSION == 9003 @@ -474,7 +748,7 @@ Bugs fixed: - Fixed data races in preview extensions of task_scheduler_observer. - Added noexcept(false) for destructor of task_group_base to avoid - crash on cancelation of structured task group in C++11. + crash on cancellation of structured task group in C++11. Open-source contributions integrated: @@ -490,7 +764,7 @@ TBB_INTERFACE_VERSION == 7003 Changes (w.r.t. Intel TBB 4.2 Update 2): - Added support for Microsoft* Visual Studio* 2013. -- Improved Microsoft* PPL-compatible form of parallel_for for better +- Improved Microsoft* PPL-compatible form of parallel_for for better support of auto-vectorization. - Added a new example for cancellation and reset in the flow graph: Kohonen self-organizing map (examples/graph/som). @@ -556,7 +830,7 @@ Preview Features: - Class task_arena no longer requires linking with a preview library, though still remains a community preview feature. - The method task_arena::wait_until_empty() is removed. -- The method task_arena::current_slot() now returns -1 if +- The method task_arena::current_slot() now returns -1 if the task scheduler is not initialized in the thread. Changes affecting backward compatibility: @@ -737,7 +1011,7 @@ Changes (w.r.t. Intel TBB 4.1): any platform supported by compiler version 12.1 and newer. - Using GetNativeSystemInfo() instead of GetSystemInfo() to support more than 32 processors for 32-bit applications under WOW64. -- The following form of parallel_for: +- The following form of parallel_for: parallel_for(first, last, [step,] f[, context]) now accepts an optional partitioner parameter after the function f. @@ -808,7 +1082,7 @@ Changes (w.r.t. Intel TBB 4.0 Update 4): Bugs fixed: -- Fixed a tv_nsec overflow bug in condition_variable::wait_for. +- Fixed a tv_nsec overflow bug in condition_variable::wait_for. - Fixed execution order of enqueued tasks with different priorities. - Fixed a bug with task priority changes causing lack of progress for fire-and-forget tasks when TBB was initialized to use 1 thread. @@ -877,7 +1151,7 @@ Changes (w.r.t. Intel TBB 4.0 Update 2): Backward-incompatible API changes: - a graph reference parameter is now required to be passed to the - constructors of the following flow graph nodes: overwrite_node, + constructors of the following flow graph nodes: overwrite_node, write_once_node, broadcast_node, and the CPF or_node. - the following tbb::flow node methods and typedefs have been renamed: Old New @@ -898,10 +1172,10 @@ TBB_INTERFACE_VERSION == 6002 Changes (w.r.t. Intel TBB 4.0 Update 1 commercial-aligned release): -- concurrent_bounded_queue now has an abort() operation that releases - threads involved in pending push or pop operations. The released +- concurrent_bounded_queue now has an abort() operation that releases + threads involved in pending push or pop operations. The released threads will receive a tbb::user_abort exception. -- Added Community Preview Feature: concurrent_lru_cache container, +- Added Community Preview Feature: concurrent_lru_cache container, a concurrent implementation of LRU (least-recently-used) cache. Bugs fixed: @@ -992,8 +1266,8 @@ TBB_INTERFACE_VERSION == 5006 (forgotten to increment) Changes (w.r.t. Intel TBB 3.0 Update 6 commercial-aligned release): -- Added implementation of the platform isolation layer based on - GCC atomic built-ins; it is supposed to work on any platform +- Added implementation of the platform isolation layer based on + GCC atomic built-ins; it is supposed to work on any platform where GCC has these built-ins. Community Preview Features: @@ -1070,9 +1344,9 @@ Changes (w.r.t. Intel TBB 3.0 Update 3 commercial-aligned release): - Fixed library loading to avoid possibility for remote code execution, see http://www.microsoft.com/technet/security/advisory/2269637.mspx. - Added support of more than 64 cores for appropriate Microsoft* - Windows* versions. For more details, see + Windows* versions. For more details, see http://msdn.microsoft.com/en-us/library/dd405503.aspx. -- Default number of worker threads is adjusted in accordance with +- Default number of worker threads is adjusted in accordance with process affinity mask. Bugs fixed: @@ -1157,7 +1431,7 @@ Bugs fixed: was a temporary object. - Incorrect usage of memory fences on PowerPC and XBOX360 platforms. - A subtle issue in task group context binding that could result - in cancelation signal being missed by nested task groups. + in cancellation signal being missed by nested task groups. - Incorrect construction of concurrent_unordered_map if specified number of buckets is not power of two. - Broken count() and equal_range() of concurrent_unordered_map. @@ -2078,7 +2352,8 @@ Packaging: are provided separately on Intel(R) Premier. ------------------------------------------------------------------------ -Intel and Cilk are registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. +Intel, the Intel logo, Xeon, Intel Xeon Phi, and Cilk are registered +trademarks or trademarks of Intel Corporation or its subsidiaries in +the United States and other countries. * Other names and brands may be claimed as the property of others. diff --git a/lib/3rdParty/tbb/LICENSE b/lib/3rdParty/tbb/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/lib/3rdParty/tbb/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/3rdParty/tbb/bin/x64/v140/tbb.dll b/lib/3rdParty/tbb/bin/x64/v140/tbb.dll index b0dcda765aadc543f0e23a0cd34ef6c4861143bf..655e6515cf7b219b5c9c216a39ee70aba549cc5a 100644 GIT binary patch delta 112405 zcmcG1d3?-A`2Wr)S+a@PgshxoBa0A6Btas`t|anV*+kq&NT}9Pin0+`Z8QnCA6v($ zkDiWRik8w+M=KE$x1cSmMN8XFqpH=aqq@KM%x80;-{0}a&+8SRd1jvHnP;B4o|$=O z_SQY^iu>9Xy@=P!-YK>lP5MpQ^juUz?cWC7zJ!f{5684m+>9@ci%#6aznv2I^KZw* zxAEQdT>FGm9B!ZZA-+B1Iwd;zSHbTY7nS${htDS{-wqreG_{Mmu?lxAb3U>&qAuA(7TUU2=S3l$w5(1Vq*9%z z|0fpRh!P#XB|AJ+&QjXaGraYTbfQAc2jD9f9g3>%mCOPhtIbYe6?)NJ&sLhTUMire z_pGBOp6xU-3iR>1ou7JU5PDVZN3$({)US~dfBtk}BfWfPHHn}vHgX6LM^pdCo5*;& zx3N{YoI_*0a>+uv+^Z`s%#5K|y=KtuCyjK)10yZejHTN(dU{o}+LoOQG3-Q?z7eH+ zV$prC0=1)`zNUv*^uVv6@n=i}H5~xx0YDg4O-leq08Gs_e&V7Bg$RgJg?3G;=qeTM zrXV1YJy4ZO)TSSgJ1Z6)aiztTihuvUS46DIArjG^?&rL@Or?tRKZ~%J=`)rhN=KZp zrBF{FJ6TR&_6Z|1cW&`%MugMD=z%5$Lhdk{;2YKA=^VGfW-sT}msF}1&}Kq8o$ad^ zcD+Q``pyv+45iJQu4{IC2oR+VKcwq(L|2=0Luh%^PF|A0N?TS=olQk3R4-SJCVteY zwFYb-EU5036RYoDR!~to?cC9p9?`}}tQ}FGWx!Ho$*`L4jdEj+X-ixBg*Qn6xhQFn zQ`^B*^h*;?52DNc2C)j#)8GA?3sFDOM*iW#@Mb&P`3od$Rtax0qI8VwrFy&qLsium zXj-%O!doSDMzav1S;@|2%?J^;HQBkm`QN0?wVjk_I6RH!GN(t;)yASUq%263OkScS;%n54uA}D2BcgU&nc1VSpXhPW%#_^M zOVqx7gl=uoLwL22{@9{|tfX55Tg80F`tmJpS&Vo$G5{E~Z3rJ3;O-c}yFt zLfYECp68(w;|_`TV#8WwWRfm`G+vbMi}oRg1dCKH+AW3=7HO`R#lFChohH4{L^FNC z3z?}c+g%7Mi`{AvMd^9Jic~|4$}DNkQiT{@CMH#AmyH5u;Q~bGLzn9G5y-Bj)Y@2d zSPU_)sz^pbjIpi>+Ue?jsQcSmTdHBkgvw%r1B_KFo(oL|3pP z%@C#IPSaHtvdi}qA%M{=H8xA9#ONcUlxi@FNkzK{~ z(-p=-7txlCbh%vMlV6{h^DQk1ZD;GB&iYU-*Nz-oU`Rl%K;i0u;g6~YEpj$%jjV1R zM!gwzi>lFQN++QNQ9AEzjxnEUek>~5>`*FttaD5?tLSCCHpRFT&KE)imBsOfVZCZ1 z(^U@CG)pu~*Gze)T+Ov5o|&k!q(>;FX=MEi&!(LO^D+2+o1 zw~|!DB#ZP5YZFlx>3OsXt3jU@dp%A1g6SFUH5H9@QCP4o4Aq`id_6w^)QyKJB~zQF zlddY$C$;r$%W&7XaYALPVGOJ61%^Bk;jv89_>N#-7CYL4GP8zkc4T=uTU=&ESzL%j z5v`%5)Hc&3EoKs!k}9o1K(x6rKm4Y)t|=jC-Tk5x!L_!g4Yf6GF=V@Rucl$>SzyRj zSwod79t)BhZGE<5!OUI9)7*93Ahj<`1$~~%8d<1cfbv-VAK~8<{6&dp6`n>{wAA&o z0D>MX%+goRPdqTwmuidOfa+Ouj^VZXG9NBb@EGU#pIOCP43k)`E)JqsT1E&MJsz~2 z)2E8Is<=ReagxFGfdLz<;Zg1ro@4WAF)sBs9NRDa%oA>}$ zeYiHt4XdfMRj$y_MaA$0%q;$NQTVso-v)ZP#{$u=UbT=;)pr$sGtqVWkg$}6tkREK z)tG;4yhVE>G=wfJ&fd?D-uftrcIn{ned2_h`%rpU-$58h*DFRt{1}S_ZI0mI)z#K(kz{JWqScBmLmmoq;?3` zG&N&*6^o9#Zi(8m{xNL)iE_65g)VA+QfT#nW=FOZw8?aOWMAQUAG$L#QCN{hZ$@?# zCTGz$hAndTXC#tdGxTPbNi(}Y8$Rp)RfpcAacw$be!{HtN`qMk#YeFPXn^CJrBWz6 zb!n=>OH4XuZBEy>iRdmJj61t@h`|ege)tQ*xMgiQp>E_CC4aG~%*$-|GZ&SD>`4Bv zU{g+aw@LK-4}N-Dh)F-&i}+L0woB8vQl44KS*s3RlQwPJIv}oIK3)I@(;=Ep^m|V| z9oM#t4AILepGHnAIt7oDpHC-xpJ1`%k~I#EaFvnX zhCcyrs(X{U!`^<)zLG4>(^goQ2Wt!`fkA9bMHyGOQ~+_O%K zQ%s6ePWdl3PP9T6&-J9gcW>LQ+fNuKF_=cN!4%PHJ!$(MCe05&GD!Czk-o=>Nr()iBOxBCi!`hnf zhZcNTTe6Dh#Wa>b1$i10X-I--yC22$$Wg3k5dBL+o%GP5*;T>E9yW^?ReFi%u8Kuh z|1~F7YF`}3<|B#a25O50p+rZn-Xbw6lghOvOOPG;T_{9!aJ+ugcS$CX+f zP=JlKZ1f1&4yPU2MyKUhmy0E3B_MK+MXFp{Y$)V{pF@ZZp@`R;lP+3=_{=6s-eS=~ zbVjdChtbQNbSD2-Q7XrP^6|nTE9|$^&Tm-8MTfHUa&w?ftT;So>O={R)L}vgp~l3< zWGEFAV;i}r%EH9ef>#gL#{6%#ZP>=tSGv=@o&_m0{W7I{nbK7@>q-}4mHL^JDrV2o zhNFBbexmEh0cMF|6++C?9Z~x^jGvSs@!Zd1(a-;4mY!iw`j-YLg^|B$_oRrH=SBN0 zKSl^91rq0AXC;JHWuHZ@N&0RsR=sz$#qGe>?8rn?8Y;9b9|d=LXp5S#Xci@T-W7}P zCTkbpNA}deZ?J9e16D=IoF$>!o2SJc&6EzoQel?bKlfa&8l<_?L0a2Yntc!XOI%i8 z=#N)F>b*w&8G0{rx+zBAM0*mo{hZ9I)2GF`U{%iUjA`E@Jwytct{WHmqPAqJPWOZu>_p`PHfvr2&@NaQRbPT!H*V*7!bW0qK-G{~s_Om|QI^(k<4kyl8f^XXl^4L!S10 zbj5tM61Np$K6f?lQruaKv=wU#a6ritm{wxw3(4Umh`yN|>=&af4y1q!X6dNO^%bp1 zZf)aYMxd{^#$P1<3>Jymn$j_|Bj67U#+__S(phV0rgS(n`k*%42MPNe+3tB(bR87WV2Skg%xjuV z`!m2OHu%vA##TOqMQOhwiqq1S#*{HweKEyKpBVfQX+bLxp?_@=Yu}8LOWy`kx5ZyO z{6%FsJilW@cBaSS3`YQFtYevuCigL3StBfp{B;Hf4L9ksl_d%1)7~8Yz^b26m(JxX zWF@c*qGJ#W{2R%yL0R)X&Gsxbn#1CvL#!p%cZQsDYBlX@HVDm@4*`eWL%;^wtM5aS zLVKo+X_xi~I+QO6|}vfPRq@M9lPjN{Y|H-$9WBii;g-o76=A zFT(1E%dZi;ts|YD8cJT=DW$3jvCx%i+gg^-{1qEIXm2w_=_?TpA?`UEHsgFrou}ub>#|Y+TH0CbS6~~`fqJIviIcWTU)JLIZy4c{Zu8|A z5>K17tIM2iX=QpI`H8j@Q)>I&3^7SKbCZ53wj|Byaq)}Rw=eS^oK`6&rtO~PEjlvS zIg>F!tf(0$+UNR-QYGDD?%X~fTMuakqCIVZ=opH>%=69}-zt~Lb7Ro zmPtPVn#Y1nw^+x@?K=QgGV~&PoJ4)ObTf4H>#R>n7F{-=t-)VV!E6a<%MU$UiDA9c z16yPqE=Hep>DKzwuLmT1WrC+ew;_|Z%uWyP3qaXgVBOJ-Axc7LQoou-U&xL(a8&Sf z>FmuR0PJzFM)tn_vzTBI;rZtDtL(_pe(qH1f=jm)fOH&FyGu8e#ba=bzzA-Z&;~I3 zVkCk%m~l_LbiI)t=aMRGd|kQ-hKrzpojR=v(jRu=Ye<}`c8Q9;0<>Y-!`*H8p2wMk8S0wdI z{po_it^IwWJM}okVv&4aQV;J>w+)W+0nFxFmIM7`a3`TtGL0D08vXEJ+HXj>jty&> znbO~|ILuND-eAIf>AWH1g)Ud=l_9B`4@8LV&}|fH$Dsy)Y!DtrK6PuOSo!x?(fHD4 zhG{ZN2^yHLIF!ztm9IGo!v!6zX(+urtFPuo1v(x=%dH7s3P3}sM}94k6GBsvf(aT# zks-9G4yXy{G)l_OU{0d|^Mg4JW)sk)1k<;3`)KAXkY_OMKRa0yr$C2-=qf-p`#END z5dCI$56u<@vMA6L1quk_bdd`5Wgu<+QoPqbPPRUfUM`5!Y*C=8fppaLE}B^i)GLs# znx3GERUnT*O6T;_{EGPvf>pGj7v}U8HtwZ2=JjbReIwm-j!{zjwV;#cnl(NO^pB4A zoZr<8GYp81>*(#dJv6Hni0bIh7Zcn`IXXIPULTE*k`$&;!LR~VO#q!WKiNwGwg%9> zbGy2M`2qCyyxNpr0bBvccXJ}o0D6DEQS+h#l{e>VOj4lY<~;3>T^uu|IUW2$f|mmL zG^exyHJ@;@1^ygy zhXQ5zb8XC2pyvK`u&uYIqXK>9M_;vxnoB!5-7-H;w^4y|{5a-l1wwCPm_7>hrIuBo z*SQ^>?j1U=s1?;NYN3&ph#6Y?(V{pn1?a7%lNa^U1S*h9OFJX!V@`OoDXm^)(yUS- zsVO}-y}M?x0*!9UTSYSkYTlH_%}emw&dIL%(rbCK8d-t1`_j%u(VFoJRP0NiDoW6_ zR-g<8^XF}xF36W&F6yY+p+GfFxN@f`&?ilJWwlnI@k-jIk2qb&CiIu$bd97y*L`Tu zk|a&K0&Vi43juj3&{Q9Kuw;N{%ZHpU%!h_7F3?0P&^zArwZ+3V$G7q{i#NT$c%mjp zfv#(KqY71^ts1&{NxJ6v7Ct0At)cgqysrrbgjTxWi*8;zT(fVplIBId?eA-R6li~A zy4RkkdHVy7Il3|3SP<`}08x!;?n~`7JrqdQn7;f{il%0h!m<(l=A|i`0tL!$#4*zq zD5?=%D5Yo~yw9_{uBOMN<(lz;Aj%LmR2|<$y6B8lBEr;k)zDUC7LOKkmVZ! z?LT6%=G(Vqd-$tbn~cTnyniYOcmASO!7_w#4ud~ou9MVd&_!77=S*b7kh^SWYYXA(ANP< z>v(Da!00jWd0%>qrxrgH=%q3F-lG+848T#jM(<_{7z*&6+}_^D-{i>O{v*(u+&s%^d zfWM3_@Xk=c)%TG)uEcx)Yf37>`{N3{lN50EJ(TyUg|>TqN>1l1PMp@Lmm|VeT6CA> z2jd{Kgh9HzABn0`{T#xWcvUqalKL5i3{&&9>o_}559P2GJFdQiI7vK6By~?Enr-Xv zyvxj#QkW4A-E_8#k#x`+COX>qMsj>#;A5$S*;k*7xpOhYhCP5~O3P7@^v&_DCwzyT zzyQmF2cnb{g?+62%X?xVkV`l7Cq{jN@kd^#D!H64UCPghwok#aNQ#$z3O4bl=8z`nT!*(m?{@((9_;i*B z`H|49XM$oXphI3vY=}Ho)L9^_D{52D`0fuVY6#u_OoaEPHN1t4zJq4`%tG6p$4icg z1|?^Z&hL%&?kX$hhX~ge^Ie4u#f(Inq<)3NyydUrBvu|hPl;y53`Ouii#eX-X9B-L zF>l_kFXqNS1v+L@R*MZ>6LsYi?NKh>b3f3sNg)AXQCGrGK?;$tpoCF2giCOYvV)nl z4&MTvH1Z0QIM1C_f+R`(X-8%$YfB1vM@k0<)<83WVpqS0BxdA?qRZyqBjA1aGLq5B zG+^n;SYoBB&OrbRTuY*twOtz4_mYThLAqwLKa;_d*rWCX5% ze9r@7);7BPe#V!X_HKKbxlBmv%|JjG#D;S3`v|J?)y|!(n0#srBZVBz!KR82CS^EE z<-D#|s((N#t1jC1S*>@0LJ{RHcno||Qyg7EF{|2vjXfqcWW?YytA-fRAmcepLHH8*DO0TQJ_y6(akfAnu8Lj8{depgcKl7L5x5%@&kPsJvy zZs|GN`Q`Y|^N`{gh%M++i^oBWUHvS>*aD)E&a+m0%Hz1aMzhMR%Gdtax`w)Anj&4u=%&O9f_OC78ie_$c^d3&L zmbVi8zM|8Xw+qxF-P+wORZdtTN`7oZA;zVPJxjMP?-t|(md=WQ*bX&kP?Ce*Bl*5V z?=2q`c7|DAiw+r)9ox4T6T9UxR$Z{>A4Vsx=+$f_OuD)iE#%bH&`(#yd->F`vEkDy z`uhr<vrJuJ#!siOWXTa#)UkN+#^@Rf1oMJlZf7usH@TUQ3#wAXp_s-Iv5MAVPJ zcdxO*?Cfba{$546cKp47Ff@qqcNo$n^$`y9@%Jz%d7npr$fLC-Ry16kyth;axe0(Q z_NNUaT)Kc2z_Y7whIy#4(T_pK;X9$4j#w3MyYK_cIRwc#%$)*0waVVc>H&FsO2=!G zFeWDRqGIRhr&GYiaMXAY_^YtJ@6dTTnHrFGOi7cDYhS_8*eR6Bb<~=G9bao=(LK0H zSQ%G`?vGl6v{w}hZE+4#OgJ`h_`bzNs;chKBCzCU&B6B<#EFT)+Tv{t#yJ(vgl>z> zIRysN3YtxW0(&t|lJAEMQyQZ6Vtbd8?_1PHBU{ZwWR~RF*ja{FRpTQ{{c&*97d8@h z-hIc=QW`3>|ABr-L!K>RezH2x>mDdXyYC+~^p#e^mIpKmANqjiywXXS`hdRlO8EG}5BQD@vm&4i zYyB=)UnH<&CGECvzToOjx;PVaoM$+WBW5+mVd7*Qtij-9JGk1^%e;O6d!Ny;Njcve z80ic{DwoHNCjmN4X%~@P-&Z8{nftWcnn?d;^;ACak#k3lgKbssb^F{vs)5IZq2*3V)n!$1f-87RN7Pm)eL z4)3QnF(i^~CEm{0)O}<{C|Vqpy&*mD=BEM~dl~b>Y7Mv}kzF{@oj0 z^}`Mk)rvZo!qGCI!ue5feUUN@F5T5bwDX&>{(t_!c{{C*8yv|;gyIlIaj`QWalX6- zN$_ETTZfM`!i&E7W?P*}AyZ1AI3F%7rx)IANo=&`hWJ6>F!RukoytQoj~26xCn!!A zC*Z6gN;qsjQvHL(YO5ZOg^y-KxUYjQcq=5x`PcFWrL5H+90C@;6%^!r2FEUSt_F`L z20MqY{LjP_^vYW=2y3s>+;y?Srqy)SI%Agi9lov$P)|-=MT`+8)o~A@WM22pNBDMB+cF!gd@4h8)JpT zYv`LB+oMTWZj2J1UqgT2s3Ws!ZUSM#m z@w77t$+XS8-AMr*{cb#6{_cKZ@;;jRUS}b3AARAyK+V#NL z%J$M<-|G?j+0A;FDtAAYE=n4gZuwrC{C>DFZ7&`B{=l$(FXB}6S9Ta>M3ZEbXA;hw z;H0UWdx4&OKa(_}p_{_U9GbAHLzW1C1ss^e{Y%e$eNA_&OodnBUp&>I$6wS0{MXT` zYr+pbOxPQUVS59c7(Zjeq$q0}QM&BX<+JTx%=9bhN1M8ZEWwD?F!zq`+|$p~hnoh{ z><^A;zQ$yZY0S5hMr=+Z+v%9ifkM?+boS;6LUsk>n$zDmM+vtV(%j80gyt-vJDt3x zi(uGAU)wU?HsA)cvQi+ih>Fh8vz64WJEkC_ExyI;%j}1S!A?m2!ig1gdArD?Q}lO? zL3(Sl;@a>Cc{IrN`PGb*9x8zoHghU4*DA!>5seRwO3*b`jc`h@ukK6>x3=%;i4oW= z8I}A*FL;Mwz(JLKkFDYApP4m?{T}U-?+`L3JRhYkVG}Zno_L5}+uFtRO+Ym2!(Ne9 z*b;V+amV?fT77mgl*)%!?h~E<30?AGhWBQ;=w(VREYbz~?T3-JtN=8_{;awZ91C5J zDPVny9Uj-6g`1=@SkacqQt7Kqk5WKlWR=NPCVHGr(fWBFG->@k&x!1e9H(1gBEs(l z#twX5O!izqZeM5GTQMgXeJ0K;o8Y_}GDTJAGf%;yLqb$JE&M1`$lF0rf7IX8?3Xl< zw%pcUn7xCF+oA>Y4w}EMNU(fN?{E7^cw;-=ygimw(eJiLPcUG@VpRkuV(@{pFj`+! z?M|6V&wSja6wGu+FJ5IWVb3w|-X|5!cB~&^R6k&1Jk9+$uzP`AH-oZ@HTd@;wT{~y zb`Ro=jxUbQ=(o+c(=8uQA|q+Qj=93}kLdCpVU5r%tVew5Cp(5{3gEejO4NTr{dcwt z&JRgVm>ppa5Tz_HHXun~@+L6iBRX(r7y81^DQQrt*7@7_jHm#k@g0VXk)zFrMCBOj zg*tO~E_`I%*ohST^!jl_i)7mQlfHENCvOSbtyKG|Uift%?fU6d!S)?p_i5cnBZc{6mt5OVa;m4hcNLrz!^;ycgW&Pph zsfBEieZw#UtlX;?x?x>wnzE~Jhwv>(gSBVmqducII&b6R2R{U7gAQ5`de9MPF5R{( zBXIL(#wrJezmyLjqXDQ(Ov&F;|J}(wu7A*A?Zaw8GBZ6wiM%_x+QfmlLACP!ki3~L z+1*ZPv6*h)9V*=WfS%l4NDk1f&jS6XSF*fP;4LCp9O^TbH2SS)*fJGI}FAS zUEyKcYG1N&`cs;>Z;&wMUAlAMc%jj!JA?MWM}*wBY3b*=!oM4-{)=4Ut&Ox0pFSJu zReUaQ*l9d)l?dN%qpiyfn~%VeBqsQt@S!V20JY&4cLyV1ek5}-lq#9GSywUXuC}-h3J!bEF~HBMwGaOnD2>U+5Y2Fm=9w6m&IqaQ!*=(iQ`Oz^b?KJi?1Bl)COIP_YCJ2_ zLs$$PoY8K23Hfb{9{Smui{lT&)6EN#7dc7(U5{UD;Hc1FAr9^(zRBaTJff^>I1s0@+qP7tMpc7tl<3tH5{=E)7R2%M{))2TBs}V}#sSXzB5ng;T3( z_6hXt)pR>PO;=ODlexl2bmxqdtp(w=4RrPC-tCeq>J2Dmv`=7uWP0Y_=FCE(Vs+EI zr!O|20`KG%HBFV#4F<5()g_miNZ6_~X5rd8nsKJDux=e)e&&F1>SdaJcA=22z~48 zb;1=pO+KG2yk)0_=M#mLSLwdA(wJgg4gG7cb25@B2BViY=|i?F2Lz^=+B@ zTr4CX(`6T9{d1RK-J0$Pd&A1yl?KT4^hJs6pgG^n5zK4oSKmzN#k`Z}qA8qrw!_+h z*|fb`mxs~ABbyHapgH7d?med#VGi$q!Cx! z311e{{#RQGpRCyV?A6vp`0Olw`Fo>~WusN!zad;WL#O><6s9et+kYquCG>GQ2C#!d zhfZ8av#y;IqN-@C>**wfPPqP#(DO8H@?)%Uc|JA%cut5tMRh;DC_M8Lef6i*h~#<9 z1YtvA7no7@J}7F(mlWO@ec^RX_4oC9Hm|Aump`6o-m5&%^{?}?pR?1PpVNc|cDnKB zuCe1@ejIz-T86Ix_@mSSEsx=NJpYXbw?mAZ4Ap7+-y2lwUsOHk2oEbvS92!?0D-_J3 z6RXp6zAgZYJ-opltZ3(BMGQJVc4V2SH`{C2yI#vOx#-gU35xnm`z?Ds)73aDL#8KR z<(Y0Tpxu8l3AzG0_m_@Bj{^GsFEIg~Sf;q`rZBa8xO6qMY0WRax{sNSjnb4DmL^R} zfa?}uc2h%VK>!PWZkK)S(*2mPFktRo?Pt?5HG%0tk79h>0OK!&(Me9YGB{_K?gkotk0?43^s-e}#$A0$QdV^j;Vtqp?BAdpgGKwwXae}d+Qm2SMzUf5%$ zCvSuZ?^mN58w9c4|jQNa^2pDN_6PQB$AGupsy z0}$&>IKcLebm+}4-ZOyoht^LwX$^h(re4TeL$}{-B{bSdt8PYy+}qHA#^`pNyNB`R z0QLPXDCp7wzFo~6(Yl>R*lLn4OX|Z1Xz$cTPERy=V|7x zr)@c{>I%k6RGsneb~gl_f_KiotI;{J?WJ;V zZ_m04Dq4$!2~-*U3R@xsE4q6JzFx9>*qf)oL$=|rTlIr?Xv*&$n|*MQXW7JAjGNml z?CMt!(nY^_5^`J8?Z4|o_MhgFqyKg|DX3#M`Zf#A$TQ?S$w8B(V!9 zSar;B=@=raskeD0Oqk)Ne~8)+aLD~56*bpqB`v+3EIhZ8l0SnYA3VnjZZXVp>6|R+ z<{(BhuXm3tF5TYeXs}zT+nsXZ z;IlOKZ%N3UOwauNx==caPP;o(=rxJ{aQ7*}Ig$3eH%3@Fk-mE`K}eps^UA#nL74aw zegB{Sq4U?GJew_0kp}(LG9mr8Uq*Xv`l+jjLb*oD1&5( zdt{c>3)!qC>84Y<|CJ?Eeji~&o8BI{_WoBgYhgHz6zCWE(gB4vfyz> zFRbE>rmdn&|BY_30mef;Bgq_tK04+pdi3A6Ld&J}_kTO<)K9UkxuP19{}UFvQO*z7 zz&el@EhAwV^*R2@aqf=6HcmkQ`8Yb+wLic$wst45kjrw~N#b8gB#A;r+$&a6;y-IO z??3Dww-E@{<7IDxCkp<_lY0`<(=*m`K*wW&v~^ z;k^w)JfA0jO2}yc$UIiz%H9g1J@e$&0_jQC%VPu*oAD4bx=$QhJ4C^ydm3e7yJrqv zhhm)TJ;b)MBZIhfp8)Yhk&7%0k(xSxZjG)|#kNO3N6z@Vbg6mrHv&l^1LRg7Bts}4 zBTw-lNy5uxobQd1KlUOzpLU4lSvMUe2Q?giJ63+D zF^LcYJIR%eiIe;)Z}%cCT1>-go+$#RTmtWb&_@3e^0!_jOo$&L-}fRDg?+>2@fuRq zta@03p$^Tf>>WAHo1}Oy8;R`*{W!h6)tmGdqDRU#h$XG$Ep7I$kECu0P3chEMfFRUu!hMUBDnxy)L|x$5njF4AE8taU zu6)IZ#0y8GWL*=|r`0&NMPc`eJ1W|70~7~s4iQ6_1i8V(DnIW>0z&){oWk*N;ohOn z=0V zAl9J{W91JMTrbGsO^Kn^^Z$wax`NwL9_LRYg_s5MFkjM2ldZ&lzd-)5DQVm5d#L|O zHTx(?RxayfI>I`h>uI=>d8bAH$zjW2F6a<0Sv?2Y=t}|w<9tPyu?mt#k)_k`Ft?wS zB~(FL&9ix&)Ao4^r>a3bJM(;{RO9}WlcXSh`xqx)6}6>0FrTY5oct$;XobU#dGa67 zDVZy`Xhy=l2J*Z&%#(XJBkelE0DrO&uPZpqIM>Gu5i{3aH42hx9xp_v@8|p%Cm#jr zI?v{DPV46=oJzB~NUzT2oNNRClhb?!>66DeJ)#boC%UJhx;9KWKRgD33rwyyN#LU- z)wbd9`3j;oJ=FFDLfIn-4+cEWV8bKnm!3#p^ho-?C(_3~l5Ttb2?Wz42=kvvk9Z_K z=ZSRkNP5x}>EF+0b?4TAtxf0?2xScs+C0d5LIaPaUwR^a(Ie^m9!qD3^@>^TP!FFi z+X6{zVRyLvb|A?TCWgzm**7p;E(#zW+Dybsgl#F>30}HEjk?qEjK@X&IZU3VL;g>oKKBHw9440o)iCq%{98VOnl3kMf&8Dq zJPD^2<-MKS3ivxz#%;Dp{VAld?Z0-~U4GhKzRl4LqtE2~YIkK5?Jl*tKwca~x-}m+ zuWq8o`%bFD-pOm^Q$eJqV2YD}4I=U3HDJT{zFoQt2wGq|$KVRHVi#r2mW{zAR9F-$ zj|s+1RERwy7)Uc&)-Z}3zFlFKGb;>zKeNC5K`?10WWFLF4JOggwF9my{|C;yLLID7 zJ}?tiDz+`z*`tz0^$g~NQt7ng%oPU*c(4a#@J%@bOm+pzq5B&c%y^y%40qxuNJNxN z_cj7pKbhrmAtc#yu{n-z<0fE#Gl+05!zEEt%3h=Hrb36bS_9H#)g zX38f*NU*SNy8Lqp>E2~`Ix=*qS1?f=y0VA(up6Olp%LS(h+$n8td~M`u-;K1TS7?> z&7yvs$a}iHER=K(4^epBp3Zp~+&qlRu}b?G`C=$(*X5ttbz-sl!t#-AMI#r}XDYzX z8(kRne#0aN{PwHdC5*JQtpR7ZW{OxQxS7Zge;jmskkQ`M1quc%M)d+NKw6b^IYUN7DAFp@F5qB0%_$!bC%P_waIw;=aDJbLOkmqG za)<6Eg(-5+bUICL@{?2LvTzdKWq%#f52>8!ZH4GWL!#TAlss*2qBV6ys}-UWh3Kb- zMDMzZx++Ar8FfVc6rvsq(b|SY!x<4*MYR%*vO^X2G^j*9ff3lDgRXU0k-VbP8e)y8 z#qz1c8Uw7>plpct%TzbBA3G|AdwzESa`8qrER(;R=uJ1#w{=82 zOblC{qYy27&_KNM4oaB@C`3cQs3Uq>A!?%#Wi`wxpAqq8SUd6y39E_5$ z7)WF9Vc7Ao_idXJeBPdjPcAQOvNn# zAmP673rJ6uj;1+AxXj~mak^Bpls9phT&Z~ZO!ri3^idOzh+H<4!$e;F`(CPatfq0Q zq)Px5JWXExyLUepO2YFeDNRh;%yQgh7=OWBcFi->qdYaKO8ZusN%Av!98Eg2Fx?bA zB-9ImA>4h%?Y|4anzLPwGc0rKu}&&Y#I_Jb;(pn%;s!Ny%x#$ zJ)ACN;#{k%IQ}5!>?KQOxh;tez3q#(P;^MFt7E0{NNV9(`FdN@(RPCsyngcnmoL}> zA$EUQHyAL9^#bN=1h2D|aQ~*n-UB2-r7b?e#mGQ7RlB=1)vi`eMl}@OH7;yYslGKy zP#J+xM@)!N;7m?Ge^Y>Og+p?wew zr53R6>F}L{kFy-lA4uvpljM)1NUOv&o-Ljz(d8f!ZcIQM$Iyy_<^q)Cm(=^}L_xIx zUK`2-6U>Bp&qwxZPlo0#g>a(1?_JTpk_BNd_AjmOIkn+ty+!IGkf9=4zGqbRY(7JznlW z+P1m6lu7m?!%?p9LAY!G)_6I!?NA0pN$UJ`xqUQt3eUVMkBKJXPfg+^-cORqZ8?dB zZ~QaQ4s3ZAy~^UW@Ennxl7G>ClHW$VYjA(#0+@Hp{0 z=R6>Pg?ySZCpu9Ybj0~}2n(o}_mdlSBwb}=M-pdy9*r6fSlyW1cil?;naRDr4MV;w z`7mEF6Bl{Em)0zYoObtOrIOT{;EGyY#2NV)K z2<8%e!XC~8u2z(P?MNaUyXO?SNhcDlEtpi-X3$1f$nl*>N6%#`f=W*4Od@o{5n^%* zt}4m5FWRh2cRfyitrLlAqO_-syJq{^rShpx*zKB|Q`{N2TLAYp>j9o_ zm^oNUz6*;|Sz+{u-$d~4Cwe`66Jw-87(mSbPJmLQ%1zrz+*#(#J4eqN*%Rp}@};h%T~e~-yL=H7tShpIE}GZrVky&wcH8NiR&{!Cv~uf# zr^%*R5=0uyqhd*Gi}fjX0n0NPd+o|`SY$AYV~6iLCi*&$g4z<_EM!@(fPu(L?CZ{x z9cM(9JA>szu_P*D6UXV#aHI>6Od0V(-Y`^Ld4`+TF^HIB^eP|XgsVLT+Tp%F}* zy4@H3*;}{lxs^IGWJeqc?C=;mhBu5l*ma2E89svFIi9TRS%6DOPH$iCYpEUu3xc02 zWayoD#^M}Jg!ilS1`j#ZquJ2_&K%$q;L^#R}M^oj>dZ|edUh+Sxn~d7JIBfUlSqg5Sv-Zn-&5u6;HUH%KF6?Cs2vAy%5hM; zVY0Rt&ZIPLcsSRQs>R#@S@yKCZE$8r|@)gE$ zc&6;?MGU^rgN6&~P&XPX$MhyGgs+>*Vs8>BoH58R^d@1w_|X@?V1g5Cy)%9UYkcU4 z(JbIlzhPmyGA*zRK>Q8#GX~5A*w9>LkiY7UUByl8wi5I1#At0z*U#-kE*jm>iKz26W)urR56KGDaSE*0~$byBK3?V;Plmmi$^WF=Vqa zq)?LZ(md_#0CMwCO)SOucz$HDeFB*vr6Ss6B!s6 zsb^({TbV!KOaGeHAJ&Kgh~~>huIv^ZNl9s@ms9(ac0NbLfx&8`DqNo3my`$}50W4D zC2g8E8-Na)f(~l;aNhKiV^T;QG0RV=vey zVo%mZk8&2eorq(Pz;iSpKT60d85 z5cW^N9jmS*(7j9NA142mPM#6^*2tqpGUl0UzreFRQZeM~r$lt2xpNvm7R?R|Ot;Wy zMQtkE340uVqzj=3HDHABSlHul;dq9wYl_kdD2#>3AbZ)oxE_ca#=0gNM};o&k-i1?_2A;qa?jVkI}hQNOrV zuq#TQmqA)bF%pjbA}40Quz_V9P#(eF5hWkWAU!pUTd;aK?QA4Bwh+6{VrKeJhyHPc z0k1kj{{sW%cP%7Z*MuiMS~Y?4j~4QLPM&DrvmQA}zQq%u4D70*herf3&KKA++?psd zw@zy;<{PC|R_tZ?&XZ2&NofrcrIduiIe)6~!voS_<nrWlto?_T>kQJS!80*&ds>rp4H2) zE_xal#c@Yp_ZpfiTdjl~hd2CTc=s(;uSJ^kJ`cW(Aew6w9lJKb))s9GKeynmEKy)w z>-Iv&D$(bRXw9D58Vp)y#Y#O zC@~i3q^b(_0z|;d@qH6}^v)<0lwF5Nz)+!N)nbRcPh#zab)LF4(2?fje0a{~va6c| zWI904sLPaH_S@zsU&$stC&oc)$@kNzSRWbg2i>z-{vD}a_~E9Am~Bq$1}xhYs58jCCQ1#Bt$ zb_5^M=K{&6$cpdeH*yuNmG=$A*1>~u$n;Xauk-7(*kZe2SO0!Ecy`!)wO@{3n0?(Mfd;J79V0c!6VihZgKcF!KudH-mK3$ z)KLhdy1L@y++X2x6}ep2$P$;0;q_v8$qL>a1y959Rs)YK?i_k?AX|?}xc_8Sc8hFm zYibC#i?T)OB{l|FB-0VIR9MI)!1!8L?T0s(jCT$b+|kqSb^3`u$INym+1|7!1t|jV zRB89#dMu^AXm3$tVAc|oErQ9Gt;m+C$Tkgwob#Rsu9e_AK(LJ&IPTqL-gO+h5R?UF zO~MB**2LNW!M|*R;1AAogD48Ay0K`{#@(z%YhO`!0p!+y{r;kM*Ec(evm*+m-F3J4 zlC>#1lJ}nGfSr{`YUey#-Ex-qA^gV~G<>=tSi9>F_8?d#lTTIjGiv(Uzxk|mi%^uk zIZEkHA`H0}LTaZ5h12fJfTqj%7DJaiWrDQ>YqDT~%et7p78SA}Y7kq4OuaR3UD|m< z?HCY>iJ5IO@|IZN1gkZ(7$1nvX6m|z=`KNim-Ma1k21jvunC5sqZX-@)k+&NF(W45 zhiy^bIeX_|d(`h|T=72TmZVbUg#)G)A61ghT{y2S?};*DH3TkE<)jxX)>D z_Xp=Rn*gFq^K+Uv5LVukST%;9(=-qFVdpfH5wD!n+=@9}mB zGeXz_jor7)7&&<;PVT=00aI-*`U18i9J)*doce>fo7EOj27{UbLN{62i&cW|OF$ra z0ff#GpRl2<_h+NQg#9v&ZaT;D4Fef#GS%nH_*lmVGd9?PE{)N}fKKv_9U}xmgV(*; z8!@e!AgtOL*|_`i!=WT9b{&!)SA5)A$@e@mbmj@IGw>r&sUI0Sx*?);O7nCME`ZVVU1p*G8qXki@c?z<$+7@2Uc} zk66ibcFX*Tet%>a$tXpQYXJY!Zt>iRJE_TXAWi#`X1j@!W>-hE(n~?Hz*c|i& z?rGP~M~nY<&qvPv)45YVpNm)<3l)pzDbr$KjLeu8z1`E|xf%_d3(qN~eAatE1_J6pX6Z`{{*$rD8%D08C5q}^3jorUZgY}T2+A~|?8EOh^#a@uH;8N`=ob-#~Qzg(l= zbZ9SM8%<{F{!UODVD-!BQnf{vL&`~-;6dbZ<*;&Qj3J#`Y_p+7e)=WqLitT7hi4yq z$(QoZF~kS5CE>a8WJ5} z%1L?TZ4$8iN*-xJ$a(qBSaM9>K91y>p8F6;rPdZW_e{EihwZg}8*b=H>gs{+Df|$6 zoL&75K-UrcNJPp7AmicmzOwNt5|ShNZbFLa7m?q!jSG5w5w>oJ6O2`gf53tcxy5inO zGz<{roB$!x_JFU?a5t{^pIL$`A9h^J*AYN>(H8Tw$D$*k!|ym*wbDLzatT}8Uc>?w z>M|hm-xY}gh>KXbb2T_fI_d0>-UwUeoHrYaM*@kPQ}G8_UGxWtx^P;fq+oHL-43VkF4z%A@oYCP4oN_Pu4xrM`1KKO5u9!CO9Skru?05wo!@`z za#e!}+o>+RMReMEbrUlg?n>%wneJ@A_=08oWu`oK0@2wbK2YJL@|M)?6PA7l2G??= zOSkOmw-KS;cH5M6$E59h$9WfwP(y0RBv(xsj<0LkjpgiS14JnfYg3$#el9Rfx|yo& z`2`$AkSkMT<=7bSmGa z6`{kUw;9a^j7XQ5@*CN?^6_-%Een35s&@ngP~}Hsd4dH9ab@dGNfoog6wu!_NH0~T z;gNPcNy;?(A?Az~%#x0gr%xp9>sOYl4e@;2hH z7$G#D#NDh*XcsTU{}t+GAcGDVF6tn^jW`yL2C0a&d2)7So|v$1K*5`d7Yw%w_CsKF(L3RC^mKBu7q(BQ8t`hW)ezM1H{kSXalaa4 ze^uUGOOqa^Nq?E7Z?OdWohh=-suYOdnQo73Y3p*UR`NDaBbE&zy?qeCfSKPUb!n#o z2v=WVHOv(wI`X^_o5(OQbNl1KUrO(2F9@^mW}Thc2RIsuE5SP*hx0w8^r%$HrcbI! zmF}c!Ew^w@J|@*(0IQ-&q1}3Vswmko5D$-W?nN!6CQk3DEji7&+|ia);%gZ{JjRkV zJVCo`51=fE=PNia!jEDc%yKmOip|}Ks^st5vmf&*wJvo3SVv}JM`E2+^cicIf;G>5 zKAUP^&jzB(LLQBf=m@aeT&d?L)gIs`4v2Z7MJ-?-5Ci=iMLg$XA7FG9vgYpMOBGjo z$JE4$9rGKz(xcE!Z?Jb%kbS=0Rt7Wb}I-x7-=|4EDf z8;!x_7)J0bGGF7(7aQh+0m>i{#cPPy&vz!&PY1kbU~5+QmVr6?5PQpjJqWPyW?h}_ z1ZMu%N~2@07-qSv3(9)jq%_CwR$6xXl$9yk4b%kF6wMOT47(nr z6s^oG-QW9}bCz57{d~T^-#@>7!I?8N&zZ|JGtWHpJkQMFK#CJd`EQDD6-nd=GaMaW zq0EQi5{!R3F&#D6f$+AAC7E5A$7e5=Qf?E2KD$C$L!${31J)53&_~r-FcH2wJV?qi zqn>kv{vyJ;ke^$Oxj&8nwpbeF#0`bGpOEhVL1%^iZs21M<%C1ItYj6>Pxjs`$q8f8 z&|9fpz>ZoR-n%mdaZT~I-%qCl#@Unvn`cQNM7wkC$|%+Dol=o-Q@MzP29uRzCdVZ? z;c(UnWhIpm7BmBrl$F%nrZ+zh*!RTmFr!K+f|XPe${dO)>H{`kX>!5=n`!s~ZGDs! zfF+b2+Ofmgdu+Wf=Y-g)J*%Qq67Gt7com^1nh<57l?0X(s09Eh@}b#v`sNsK;6Xv5 zaBxvjvL`2sdgdJ_XD4*T?Iq5rOOE|JL09D96VM8SzFZSfS0OIdapNbNw zS_yWDCYf3z0f3ammQbdAnWTK_P>!Q+C1U^XA!759wYWmyP-3Bwv#){UyD^bC*h2+Y6q#+HNXd6-0PfR#7o}49lQ5zWxEJ zE#L6~bTXD4DRV=0pm_+afwGLTMRt!a?;w98J6+kM1>DLXWHXsDszPBi*ymyCo~Cjk zMjrh-?cdO@?;U*X0I6TcpW;lraB>&jvEzTSs7As#i2``RGHGg4N*w|otCsjPPHBnMn}@ovYcaSV z9{@Mt)Fp|hxuh*xe_cZaq)zUP+XtiYF&##ttfl)|XBPGOR_JiQUu+&KtBo3%O{<8!g??hG< z7Bs~bL9%zfi|QFrnnbE?lK7D|QinDQz=^?bsYRdFqP>V_`BE3lq%gvf zQP!baX;80dP$L1AoG%?}`A7mGiM9$LB`okmJ_zNJ9`w++`6!RnyJH>%rb4eEcK1VQMIU+=Jyb?Z_d`mp9RZ6-J73JcX75Ut+Q@hO#3?*@wG(O=g2BbVQKJ zESpWCVescX~IL3%(;FdwbJg!Z)z zzC=OyU*?Y}YobMr%HW?-L>qrZW)t3gos`;YDHeE0v$b6O4Gy>7hw0^*I{givwN6T5 zQ|{&a*GYZAz+PD=#S23xyT^LX;aMemwfg{?K#}5YL6Cp%wgt|Ow>8T$R=&MW+-|6^ zV|7`S*SH~sIu4y-C@auAlvq{Z03mj>P_Ya!{l$viB`6v|BIQ4yxlk!Er8kQ1sN z7=|zC{6}wCC0zzf3BXIQ7RW=@5PYJgNt=PJM9!7cUUIL`)!8C3sJf0;jqxXOnonKH-U6|K%nNWh5yBOljLnR@Zaiw9sZ=|Jz|}t-(4M}ofyT_ zAD675XKzA8uUxBHZ?EHTJr3uB%3JVfi58#Mt z_rBlD=X%Dq%)K>vWx8dQu99#;1rRGmj7xrH+Cs4)0WMb<7L3 z@8AA`UgdqH0{O}DJuqex@8$7NNgd>O$S!H+!5xVB2zt0$iA8f7DZORy-PfReKswU zLYfk>Q9c&sAtK)HX&&&5l-RNHff})I9o5aAaB71o`}wSABuC#er1_QdLxzZtD)#Yn&q(q18)3Bczm6kl_EF_wod_W{S?Hc}c=g2#2~ukm zNR_|h=2#jY=!CT*3hV~u>CZ}S?tSqWOySy=kPKj5za|$-2%LZ9L{`vNhs2o@*8 zSp5ysBx?qeShHut&fx)zFils(&QlE5pf_>FF=Vq?QK9Q&Qavo)#^ zuMpH)B$^n~#kGo9T_00VG)MBd(-uc$eM(~kyFSv1)5GJinrt?VK%s_#p*({H`T>)f zat}3_%#?X3m`Jmpc_$m~qo%<{d2^#?(2HJ$bi5~_Drw~AZ;hG?7iW8R#R5fy6BqA4 z<+Mm(b6pgLsqJ4DLdo$#PT8vmt=&f2GR=dLXhXFzT#u>yx==r1X*SnCD?za^pQ8eWj>g1N>uF?2ZoC6q6QBDdwWmnb1U@5*8-G%lujAvJlPAE)O@ z8Rmg`FjS_~+SgyEVv0xG6d?s|%;ZLuigzcCn{`p;T7(!ns(9Ci&NVGu3>}(&Y1~A> z)yK^`k)lv4iJ`L=rep=!)gopB$d-;_7Qg`7D8T5j+#;k$z5jAE>KqtFPX92{3q&JH zFOEK#L~-=NB#NUCCMu49Fl~4Z-5H8stu<<@eMH#c`5Osq3biN94yhca_?VQEt(~sH zWhMr^8r4oqDeka(FV?38=we`rv>xCYj%`xAMZfV6mJLrJL$rw)j9I<$CdOx0Si`ov z=Y6WMza^7&ACXGhjrG&|#=xof>8MQp=Zg@{Up$O;UG!EdN4LW7siFpipL9l|Ap$ zgh~>>vs>uyb+QfYo0W?1-o`$=qv~+jK#+j{jWgte+lEAGye_a$=_KvtmTgju^FRm@ z_POs74oU6*7tpU$$oWwjn15ny(`VE%Ko=@>VplQ!SG9uKm-xOLeUGV!?73tt^AF+D zf|Vp(2@sM$Bon<~F-`?6GHI#~TtSFPfp?^c^0RE@)=ZJefD-BqW{?K7sF&KOgo@Wx z-Sj0@nHG{B|1oiV&o-%@a|`v#lH}btY0P+@j-qZxqRo(!W>nF6dkJObM5nZU5<%+K zS1C#GU5&7ZD8`iMp%mQ9Eznqehu);PauG1tU`7{R^%(+ckE(^@pLiwNX9b18nT(37 zoR5DAa@GQV-%HrLqD9K!+ZxqLWyuSbFqIQz-+S9-@)QFcd5Xb}EXBZ1Hfe+Un7aKXjIm1U&M*Z+*3{8`;Vqy`kUh!wg0F>)BzfUp z;20UCEL7uQa%$QxMU8qgm|E@5LTbcocCZ|FWe80f`i!vwHapao(Eo~6vabw#L|h^j z;n!visI}BTn(`IfB}=pJN2s-rsUIDO;i+po_JrJkbsUN$$aKoRzVL8p=|TAD_4+P< zJNTO>?;F^%G-%HdYASajwTdANXBxhbuPR>#98o7~H=HxE1x}3|pYFJ?`SBsINF$`h zeDy2R#13~+hZCKO7F#b8U6hq~h+IL7#IL;~^>H?(zTqp9SMDQpIuc42e~JgL&&D&m zxg-8HGlH{?P&rivSl^YB`(LH#yq*NCyhj8dGjefbSirpg3>9$$l^Y_ptVweGALH3cB7o3aC-w=(TomF@&ICblL>8p5=XtD+q7ugVC^!r^#{83@H{PL3C= zxh0JR1e9b0BxpTGBTw5NfWo++RDlk!nQ z1sksw%qc9cvVt++8w{dgP;Vu{APHqd(Eqw1l8z&$nHJ{#MCX# zW@IMMf*$zJa2QB%^5!1O%1O?>3PPB7BAai1O}d?3+RKl4m zy#uF>=V6iQdrPXk1_vsr><#`#TT4mhB`NMQ$_{Gg^lFFct=9-Ero0>^;(m`%4I?Uu zF@$_NJ4|i&9%Xh|9S`Z@4ykgy&u8)3elJ&}-qgbH)WYw?=h$b26G*V+`1W<_dFKQ< zeq>Dc=(_FQjO^GN3)EtYDY6AgwP(e3f5Di zCa8=!f4|lX37Nx#D?ms@@d5AW!MjmC&YUEmG zma@f^6?o8Q2G8miYz8f%ht-Nah5=n5dhRspt?H!bsFCQ<-SKJQcq&j7xdelPN^ZkA z!fs!XCN*pyW;G6+UR@ShW#x1G^uWcppGW+xD6{STizK#vIdJo zHv@-kPe}x7uRzXQ3fXLooG>!NlzR&KQSw5!ceP9yxWL?&hwPBr2U$dVohB=(?G*zS043unnx)p`zw2i&{yIk zWJm0YI3OO^id-X+zBrxKPucm3x1|BiAH;k^mYG-|fb4PbX04pEE*tY;tDoMB=D+0 zXk{T30-2$;o%=$BFIDJrBJ>DU(1E28b@lQ5y?3NGebR_VmPE?|*EJKaftWjU4`nkP=?*zW^hm`40NfjfMRSIF zJMZi(-%xN<`nLi(!tDmOVy2zu)KkfEI|ddx#;cyPWVG zO-~OsLjwznl2A^kWQ$cUNqn#zHGPQc`YfQ$2O+-tS;{_0I0i!sGEgT6{?2YGvXcxw zg};x&l>L`K>zo8rIcqupb~iQ_+_9XS3!w+LHf6AmER?#n-u4O#1R*-G3`$O74(y@I ze1*SJ2m}=HPYR{JI`23@bSLsoj&eQ=%`Dv`XGJ?Lj6Vz2PD%wZ0;Rxtq zIy8>o7FDlF{V@$NK>!x;ijSm-D1G;Uzb&C>F&_Gg%BeT6Tw=5Es3NIv3y&78Edc?=N}2qt|&d|Qz;x^y#zQSS)R9J&eNZDChD~DRuHAYB)gKuDUSrso6bGe*ao<~7gSV+^lAs-;!HeJI z9~_W|bg9W_bJ?x)v994O4oGdg?mX>Jv-985%y?6z8Tlrk_A!pFkS_7OkEOxdfgmUy zhQ}}r4{?@G)&1b!Xm~i{`(;Jim2>hMtcQ#n$fLZo(+d=6*cKIm(_d%)a?NGIQ63x*3$Q}m6Ww|6V z2;U1<24j1kl_F%Ivp7(TN^>fPa^Cxr2v&9q|(S)U1A!=`9_Ssr8`XES&p+Rvk5~W@ot?l%*3Bzz0 zb`Bnmh`$>SmiP?^k6{U{S+EX{0wm#YM2_ssuSNl&6bENDLQECP82;}=Qd8$2mDCzI zqbr(9D3^@TTwuTq`3+S7{MS+S7wnjV2iEn;Fi<7&-=eKTJs@-*B+&!Ik%^9AC20g{ z|HZFH=$3neF3=pSp-r%FAqB`;Z9Xc2%B9c2&+;*!NHf@nFYz6pU@QOnm-yG8NM07T zk}o(cC9!iZzVom&tA98os~FV2@GO-^(luGxK}aPV7)`L?@GK>hV%aky)8BC4{orr78dKuq2+Hc?-tgF-_Ri58{q1x6iwGuT+(|hQx>OMM zaZebmkwl^%+&4yfdGLo**?o!TgT_VppiW!CB)zBYEr~iI?X86z?U1MkIH|Zg)ssD5 z!Po;Ja_sN0-IPYmZ6fk=`=gszVezMpVnG@!ursD zT($Q?eZaDg$W-r!4oDyWC6kHos_9tNyTH(ycG+u$O8(7qi7`q(u_i!YOmStic%iXe z(nPlvrhTfed_;r6O-#p{8C{jfAC+R8XM9gL-joZ)XW$0@;8Dra+66$37uJeFMW{^q zguiuE8Z2$+mySviW50hMh|pw(-tB;=IetIM1KuSc4$xDcp%>Zxr!O1R_vj*Z)XGd(6($_+Qp3+%skN{EnHS53);#ChpA-VwR zm=6>Y?3Ihuvmet$rG0@T-#~W1f{cR-+r@rpPwp&<=K`4RGKkX z_2mHG__)-m&93J(}BUg3XtT@k@BZ3e^oIh+P?5W;D2<_ty;;x!!&$hDEl+ykfaqxxBMP9RZH$b8-q5@ zL&?c~LTdoy@Mq8kCw*B8U|FdXAmo+_Ji>eYg4_$dC%mGb zeC=n_M)s`2Ehk|L31-OjVzIE?<5Nyb-FxVKg?^L@viL0uC-j&$6p63384#<0E>H2- zPD<9qv!|qiZ7Zv&`;}7-QmJqGjS@ol@!QI!Wjb{t?)lk#{&u-Epu@_aT-3+F z45g#%LLCEhd+OS#%4bh)IxU4cZ#+SLHT)$Ok&!ha$V?9xsGxnqUl$pZSP4* zP#vbE3WpP|BUcU40;#EF#ANk>Axf!i+yZ#an(4?qMm7c!tKb=tA!AD?SWqYvOR-Ey zqfm%gEb2pPkY3`&eZEL+2S%HqIjCVUh(Y_tm&T9G#CC5SU>Y?yJ~4~VFiLc0Y9J(} zQHLP~aTpm*wn&yXB>qL|E5k~`k!_(c!VCn7371W|Pr-k6*l%W2-lJMf3|I$20unA~ znT2W1Bm|AgQTsnh4R=f(c?E7l^~1Ae_eU}kHe@?tnr$Zz}c1G9kd4p!UX&;FUR4J_;ge$ zO!IOK*$`D4mv7>gUrOzQ=)eobn7)ad&Pb8YX|xY|sJoJ7^`l2Hc0^}2soaU;B833g ztlt)ri738+{0PS>bfyAf=Y8d4fS}k)Pd!ldM-6fs7N=F24rNINWTPb9JnS>mnRMYI zIT))@a;1@7^z_78mCC3x%yZee99g$Ypx*slK0kLx>Tug8%!V+v!-6dMy?$H|t+*zjF=a2>_ zyShE(z(go4*HGH9P7%MNl!PC$r;`dQ6`d11HFCw+$R7b_kp__HzBGX1AIQiGL0*mO z^jpsZ8PrSTk$HAAy<;MK5HZoCCsA%~C0_jvMB!pwQfm)EYyY?T{VhAYl2WRlxBy88 zbR;Ib`(YLOJU42S;(1sVog*tpR>Wjx+T|a}PAR)1jbtp=we?V#?4SvG-M);}s;gD;#!Cxr=0d;(SIu)6Xz)?c?w0QiWeAs&YmDj{7( zG8&pxcO;rFE1DsYLwQ{o0XY=Vno0#M z0&%yuid%>{Py?(}{k`heaN~&0Sb4yOV%6xa+4L!VORyBqKQD*0JFPzL1(7Wkb+Dxi zk}4~U1d+vvvSFYmMad-m&DZRQbcNKOhD7#I=TGv-_*V+qT}U1IPej&9bk$my$Xfre ziEK8MN&j0S>rAXWgziKNKr69Urd-;{`u|Q{H&Xurb^Qr$J?g3v*U|qA>e`XYQ%=-X zG*Jz8#r}Cj5OqDpmsd#MP-dVV-Qty@WR*8P%s35~jic9yiT55E75QrI7foH5&KbKuBC)g>v>aZ~}FO z#KV!NH_Zx-FgTy1FoRoOj(0W5v!ohsMF}Pj!usxye+P&3o25q0jIGq3Q4z9d2^M0; z5obXq227YJ6x;PbF*qT{QuML}PP-yNOe4QvHbMFG;s zi9!#A;tX9{d1l~yG8UXhCvs%l3$28fgln>C7#W*kht9_^(1m#A8y88mNmyO1qTC`K zb=Rv@KcSb3Epj$U4){zZYM(}oU%GmKIgy2FSpFd2DP~#8j+T32js2NJ`H<#pd%`)B zyF%o3Ezq>;ZM?Y$-?klk4AZ)8@R%n3Z0Z4(F>JGMKlTnHD`5A06uz(IUZrrp7kedZ z&HR3`nHGlOCWD0s=bGYre2$k-=9*6KpKJOW&}Tk_|Fjla^(Dd&5cq^sFyh}ASO@;h zNezDC`MIX5Z?O7byxkNn3UTr*zD82)2=kbp&mGz z4;vIj$AvW>MKAsV;&agq-t=mF!e2`V;pPg=83OBxr5e^hy(QMgXX>z52d1ef5E1eM z>-dRx)oz2pF=e1XWT<2xiRGkeSF!Rtol2h7oVbuCw%yp#yz5w1i{$=vKvI*d#ZHzL z_?Cn-AP!-!2QQE-HYecSn!hf}MHK=D0}oow5=_O0BAj-HlJ1f)+ZRig7`swL^2a?C z2;%@@LMoP8*fhQZi^1_2e>es4?v&nJ*%kXHV>CWkG$O_TzwM@A$iWss}71B6bq~KhOVOCoC!IDLY#a#NP4LbMX zCBR$bc8a=W#fsw1Iwr^OEZxkDFH7N*PN}iisAScss40)^+iR?{usAua<~5~~XtARx z7V9gE4EuO$ZIhd3U3!cj_ z{Y&cVJdx-P%mzzkNKj4dl2L3$^@VrIBrL$h%e}{pAQ(Sx#j}uJNoKn;0&gN7a@;k- z@QAunKBB2^%VnQ#+ymR1_oHaAtLL$o%t6d0{0`0o`u>S+HB+RgaB9)Jl1xJ1Bf4It1RQSC;q z92nDK2xwj!MX1d|9$JlUHWU4yXzfu{1*M91*)6`rH^BAEV(Md*0X%hV>vW^KP*^1n z8)>^*W^+|Ys*z-Jig9%j%IY1TN_v$D0RWxhJOujTzA|G--SEvdPkG3Mw2iNgC^PP6Qx}e)O;7K!eHeKq7+P&%4mC6stQOZ5qy2BM0geCC>gBL zP#Vs+qDL?|twWDMrfxxy_OH|klCqupqwmvX|y>K?*skpbKJ};2mNvAItX(i+Dnu7ZLYNS@xs84gs_V3gO+5aQ; z8FJ-+qCQ{KFcXRUsZY9CN(t)o7*2=u=WN$jSpPHiX(^~r69@`ufduMv^tqcvUnaF5 z0pgHENAbRPA7xmVioDFX{vvgDx@b(IWu0{h1-6(`!_ZHid+Kk*!i8`Q9hEG}iB^!G zYV%*y3i<%d8u7_tq-@T65&<@BZ1o**Uz`2V0*A=*K`;+- zwF`!6Q*cONRTYMLbRp((O54v{?lH|(CBlSA4o3*Ymb)GFCbofb`5jY^ZKh2%A2vk@-wdJ<`C zx(NfI93&Yg1w{;T)t(7a;Jqpxm=+8YH(iz5%GhFPQ~sh2U*)2uexlb3ygHOCveMt? zol;Egn0pLC#7R(h7+&g#&)fst#(_mk_}r_|R}?(OpM`6ri@q%UgR`is0vsNT+^fTk>g>T&GbB?eXjPpCX9SU+#rK9Z(c z)j4G(&nKR6oEba+`x5+R@cRy>f*Ln~^dle|P4IDyy7?nY=>4d2!Qv)-?N?5OJ_T+R z2LmR2z4)SCIY2WYp@|d_SL3N}IwDsdARO1}Bz4(CQo~sEd#r33Lc0(x$G<|7`RowV zwb4$0S~2Z6?dolZ?KCv4AkbIKNV5^3oPdFvl^(Jc1fR1Rwu4aYhd}aqm5egup=JR3Olw zF*zxUYYPI@-oji0f|`~e5}r^hteD7H)(UIEH-(C!wi3h<%RW1hKGIB#bz%fD*7cZb z9Qp%J(Ss+@4+3DT$4>LXe@LCi+M>mTr7L{FeMgH`t73dPi_V=X!scydtVNifuPg>% z1=F){f?#cHqq!OyU{6kvsHTQle9xc%Lu$#3{*c;tjow|W_&+e)U;uit?*{jfg}_in zyMXAn30%4^wTe#$EfqX|tucfWQVx4Qzu`dEt-t?@m)(G96El#uLb%H|(MEj$1M3RL zlzJGamSZClx?*-PiWq~wGi^G~#Dc+EEX-AKY8UCg$&46+2(z%>20@4MTC-Az@_T_y zm$}h-Fe|iEQC16jmvGIQDl2VBToCD6{+lJ+*%|CfP*lL30Z@Qq4={)u4#tf=1C@8x z2ef0PuApUcYtY)88B6V(d?s1fk;CLTO?}7tu4$%)d@}f{XeDQtnFeR_?Ogs zz}ZDwsUXg9E&sI<_6E*v+Wt;$`zFo2W&ikh zs^}ks@@~~X(&~KwYx*s}pQe2uIOl5|=WynkHqMpl)Q3TOt=J5s_QWZv)QugAcK4Wg zm0_fFA|>JQk{P0hYc>WWmB3PJjbXHQAp#+zgRI;F9AS=0mz7XQ!oG*W$B0cUvPXt6 zO3b%aEf9~+CCKJTPmjP8cHchiVM6+gpU2T95N}~-{}!9u3ZSS(sn8hcr&IR7JC(gE zu`f>ZAjW1(^ZCCR>&~L5@lA}~&!&{~fB<%%w4N^rV8bPuzZ<}2H4>9UCGQx>Ear}< zZVKUc7S2#RXUcW+(SfW@YxjP074#Ed$x1s}Sz;k8v{J`q`)IX#RR2i>=TKiY`(V*8)we>P&#Y>&*lHfFaur%<{I z_K7Mo{z>avK?&fPwLGhc!d4qEObBt%Pi|iXV5T17Umb`pI(r9rGq+lWabXEPC@%Q~bsaq%~Tn3Fws zg7nuGEWhd?}0u8URQx@bwUKvi%4Rj5@G|V_V&?LNFgJDj#tVZwIv_U+;n^o#gImExTb}^} zs&VsH6L@_kZl477_DjS_f??YR^Z;X1!9p6<_RX-k8vOf9_$qsddU3@~91efb_#^zN zk8xLqgj+z2Hs|NpG$ZSIe;K1%mKE+t62>Da8Q1SHxaBpk$=;tCSk{rY1d)( z^_^I{4jzke19mC*X-&J7u_@M|x@8mr_jnl}dkj_ghHoIplw5|yH{(@(F&M&Z;|PFC z2aU<}eVtkCpfUC(iNDs2wM*zOk{+gZ)XUzQzChW3xL1@t2wp0CXO#VyIil>pZiAzQ ze?EsxA?%&D1;}l0A7b3SA+ssx2aq$~%U1EDA*|QXueSn+MM8=mWc6WxgZ9G-9g&cG!jNHU{#ENrt=NWS(nf& zFG|{0?oY!AN#DN6OPaGO9Zz80vG*!f-y3oj?`o4Kpx?8G!*2QZ=_|R_#0ImzsoZH| zuXa4V9q%xpO8G-mgDGYgRhn5S!)5khk8bD@nTD2{Em z77V_yLQKPc!$;$#Y0`#@ULB=)ekqj2H{Q9Wwkw9rfM!D5`!hIq3!mJA^=Ul2PJEQl zQ4>D^;bi-1Jfj=Hg)7#GgU0q-`0*C3H4EIrFSKC&!aqPPke=OK9Y`J5jq~Fd{ENr5 zWOsBNf+$~j1(GBZ0CQLoYe}FEbN6#Rw zwQcqUwSR3qaUT}WvuPJ?U6PE{u?rEzD?ADn^!V5WV#=(|J6r;ocH z)A8;N=_vrho5JTGb_b1t2&_LkuE4OYZV37#|0|4*W79|S)NuB85Yq`3zaGx!g?S!^ ztsAxs(6$7i6O6HX2Y;Xy8^|uod`BzRr7=NZ{BhensTHqo#fCDaj9Xi?PJL-{WcG`F z!Pmt(l+JeLath9rroEBUUK~>AvnL!_nl6?>e0^&+%NhH#!_y`9YD(UBrd-^#0M<&A ziFzM~X!#+!>p0u&zQM3)q@%pNIKL;MR5QV}VBJQ6c|XH|=w_0FLsaQ^jN@*0eBbzRiYFZVJV3O=Zc%)$g-8s%S z%{Fz$bgZ#?)7C7Cu$|h5_2sTM%-K0>5vJTAY_dUXc^?374%&oj2$nHPIK0uO9OW@> zS%>~@!5tqaP+4gPRn~xVtY6TKxXa~7hvyE5=K-+7ICLuEC^q|h9tcvKKgeBe*%0YG z|EMi%h0`^^Xv_NI%+p5gSai>eIrtQaOrg~uu69o8^|7qb;kqa z(vJ0!GWgndtlK^4c{G~9xFCK<9IO&7dcOmm|ZmeneEVo!LTX|#$_Kh@;2XJSMFCSN@6I45m#*GLB)OOSV8wwf=1yahSgu z$=bG>u$X8R>*2d2I^(u5)?x*p--X#i)pMD| zWuvXE7*#lilz-TTt!K^zJ|>E#v9axUzY@hBm!uQBhjwG@C3bTlFYAsv+&Pdx7R|Z^ z2fAdh)q+D4$*j38KO4 z#_fDzPu7?9xt(w6$-a~}@#VcR2{#?U_xECh*s<8%zFzD@iCwbsk8WemrjPUkM%JP2 z@@(ARheZVpwMiRNzshY|4$i%5H6o5#xvvjc*mtbFS6>#_W|>v%5n{gfZ#pr~vPv7~ zpSw+55ZsroWqc?f7{eZF(q^azjgu5(SQsyhVgF*!4dFxkvFL#0A(-F4j^s)|)`fNK z!*}#!9ofynysRHfViDJQtN!ebUamf%XkDKa&voLtLOe6YbFz3k@T_dwoL}nC;`>yf zVU^^-sJU0m#k8B;t_Wu-Bn1>DpFXbNXw7{2GN|hr!{4ADO{WZ-&pj_ zPkUfG_N@RX`=#iOWa#K|8h>yC!NTg1b|rg^OUaK`BL}CI1D>d-74Jz1DlxW22xVJh z48t3`55hX?Z(^{>_ZK0-kXH0%NuWeTzcyS6d1NXj>Io^4Q%JBrAS~)g6#Gkr@-O*wRLh6>_{)hOtcd&s2`y{zPpYsLJ>+SSGj%B0IAOX4=PsB&l1y3AyL{mv_uyj(vR3Tf9(>+Fb~{_$gKrtg zI`K_wp-$Ff^} zPTj!Q^=dcTFOD*N41eVy{#6{9_$Qn3_VG+%A_C8IC0XGy$tuP5eLt>)mo^6M>V~#2Z7(a!gg4@PIp6Pv=lT`3rHs z0LsD|B_tIMMTM*!OsOo!0}P!}wc$mSopQi&UK4eHr2{Y8xCTQ$3?Jtmf+heHNz(p& zV=VmYDvTF39AJ9c!_**ng5Ya{gqrZ3cd{OFC76^@-(KJ?Nq%Hc__z`trT3%B};DKsP*;a6~yQ?)77XcOJO%Ab9LGd^+64fXY^X6O_q;)c8--$FH{9z{UxA#w0D*iqU>LuVKOh2M{( zfmtk4Iu6J>DS@3Xt$Z0D+F_jF4S5H#m8;>!#2Pr1MK}dhNn+uMiL&w&I)=qPM@25N zprl)oEYV5R3rR|GiSbc*saLGLJj<4ngbM_cloPgdlNlj0$yfR|Wg6!Bs%C)4XCkiD@(@5TvT%DvG zO7f&!Q%XJ4e)UZJD;dWPjg#FWJ&>o*<}MBFT0PWfO7a+QaNK?pAG1FPH}s*OwOM)I zV5&A@Z>1^Su(&Bf0%#jz3(-6V&%_F(`dz{`jvK8yM=V0P&9wJ?*pdY$#w@UaRJ#)6 z0-lh}`i-z60Q_NgM0bf>2cd4bs*b1-I)jY;9yio^?1Ji{ihn3ob zj?Su#4d$JOvhGb@0v`>!^}uyLW+)rxYzrA3jda|{s3HON$v=F)wdMIB-PYZbdvNdr zKx|g<9xAiiAM9L-@z(fGcp+WC|#w{kGol z>_`DP7moV5pbF0H9_nl@9SZ=GHGoD0@FoCCjBAh^A;a3=hYlJE{iT)6DoA;za!M68 zx{!6l6c2Q5uBZ&{#)WM4usR92!sZLH=?vCtzR!F{+~=U#kr0kza4c1Ul|@ZVMQH4q zydq~H6rQQRQjc*6Lexbt)v>O<24uv!2Y;K5g7`7f6e+7KP;O6$BM4Vt#H)4fF?ALS z5PQP9_Ne;spS+2U-R`vGz9(#ex{PjPiVrUYu#<58HmZc3Y7k63&{M_PX9irmiD{bz zwO;s8YTEmBRDF?TqIy);(wg8nsQk2G68-f85$%pRI+N$9+8%K=o`hLQpvE^ENn=H8 zbo&Cbd)6dot(!;7n&3#@G!d-#&#l`8bl5YECnvHyr8oJiMApUO6o@UM%^Wb$sIQq= zh=mVm9lD=(srxTUXe1##g$6B1r$9n-0QF_awj_Qzk+p6jHe`E^H>UE?VHo_sOr?)V z#B3}VubS``-m!Xe*l|^P3|(Hkno`p_dX2FZOV=JqxaI&L>gxc}PID(Nl4hul!ay3< zfK+S@4%&7L>LSx($D;0~4WQn%@WUqnEkaU6CN%()(ecnxpMoWp7Jr+F_jMiH0fng? zfewJ$3q}|T#}>sKWe3T6iuSv^wpqg8PiB$BU%@z{=~p@YX%BZ-b+JTgrBsuErVLT) zVLT|n7hc&GZ^|Q1YbSVt|-#@-6DQvIO{R+-)KTn0blrHpyp~))KsYu+yTsAaT>5G zxfmN6NVowL08nx{2KP_1fs(?%8^O9HylV%|N!Xvg5QUELg)aav zEi1_pvM1T>3pXQmrAY2a?^6+jcW;VC^Usgqi870K+9&}uh%En(b-Hm7c?I13c-!!qb{6Rz)QT2L zcZ%l_@wAF(qIf2W=Wy|q#dD;1I>d9dc&3WyIPshyo_C37ns`nY&#B@$T|Cpp^B(b> z?G(;j@yrm<`^0m;crFmnOz~VSo>}6#R6KLU^Fi@^NIX}Fr%OCniD#~Ot`^UH@mwpO z>%{YsR+MJy0#b3=Hgj_C4jH%b@BX3JkN<|nRvb`zIt6e-w@9o;`z3C z?i9~m;#nx3d&Tp8@%&Ici(292Vqe#NS_FEPuj_~6St_1;#q)@WJu03C5pqSmpA^rz zA|z8hPlyn$#=}KOoOq5D&+kO6hPevyegV%xzOFwB&qeX97SB(_Q>)pt;$6eged1kf z7l)}35yHi*Tr-QtDl0u$4kr*n- z=0t{l>col+qbcpI^Tdv>jidJry!%UpFcBZ6ht*3D<33Y{#e-PYX|_uqZ-KBiDaj*x zLO;1AZwtBj;dQ(A1_F>0C+Md9S%nb$2P9)@nYV+Wl)MNclAgRm%@-|v$vHS_760CR zgsR)V(CeO#(OrO2QfQ^K0ww32C$m;5v*}gCsD+{?zz?uAdYAP$Jzl1;U*FT=bD{r2JYSf~q9Z2aW1U1QqN14X%$4i+@HbOght$kHH+(gvmX(Pz3Z1G3 z*LrLYKqBOf>+|XQMUeZ`CxN?(B@L-svcEu}n z?u2&`A$)d-w;m62|6O4{ zoIWmUNww|;WNS?!+PvOy5X0+3u#x`3hweb?6n~G>#(VvEWo@cx?l{e$MsLTiv|D>( zhQRY)6s0yte}4)~fJxlC3E6^;?D}hhE2Y_f-4&5zA9fX>O%JEtRjpoWzs4swukXPmXD7iqU z_Nd#HQ-OgrbtEOCuWZB!v(je+vsY> z8R|;BlFF5~x_h);>|Ucpr`3Sng1$=Y!K4tZ$>Loti_xWO?j@1KJ!A`6KZmuHLwg$X zm>`a+vwx%J7DN8>Jv8LoH4{U=(*V#L8uCwTE+tf3jQRPzaT@E;w5CdzF7m!DqBsp?`<%L14T)Uvn*CW9#lLSzOZ@;lnc-dw}vBA6Wb z!k-Ejm~681f>!nbq^ay@j~M7fOKj$wiuvVhKI7TcEaz7?(Wjv7j(Bk zcjxNvNZq|dcS{#(-+$@UUsT=wRd<^$)&Sb;Zg1Tkq`RrQJ6CsebT?mjU(nqTb@vP1 zy{Nl^OSJTzX8k2fcjI(7Nq5KTZo2N?r@N2o?(4dHKzC2-Znf^-)ZOM;T87cO8>6{S zgH;b0r@M1?_d(q)(A`&ccdzaq)m>G0|I*zE9mS%3@Yt+lG)s54XKDpW5`K)@R(eFW z9&to>{R#Z)PjIRBVGG@j*4-hxE9>q!-MvqDb9MJI-F;Pecan?z4JY*ge}<1epk?Iu zpVa-)y4$}&d|{3Tf0rKqhVEah`yIMFNOw2;C13GOGj5Fr|3PBKHB4oBgBxStSC{=m;QI4fV7&RVxP z3$Oo2$*G_7SJPQHoa=iW(KBlLgs4N4z~y{{rr`tN?tot`#DLB&HVX$SWD3= z>(16jQH8d{Z{aC3p^4u7m4@LUewm;NF87?4;YPRwT?E&{rLE9tf0Q3!+U;7%WVSnX z7AwM;DA~-y&2v};H!o!op)+R8%gUOuWZ8mQGiJ?PFl)|y9=VhaHsXB zGk?y^CG!^Ci+g@q)b7kV%pAPCd=ZNX#J6%0V}>R@FvRH%f=!qQmie3Tp~t7c$pwhIloJN^N#q7EEosS;f6fZMc!h3#JVFx$!4wcmN7 zi){*5|EMhirCbfa)(p$QdPcM<~r72*CLg$Mmv3s<+$uOr<5qofNPz^QxcH(Nw~ zztiw{YFPgR^WOUY{{;U}@mU#*=ggcv<6jFG%*$H1c+jBvGqV@W%HYjcv9=>O>v?3h z*7{mOOU+Gfqq*i#&D~+v+-j2^uEVA4-({Nk;#JJ+=pWN>V4s-a35kh=EcVe8lE)3V z4NJD%l{{{|eaz@4@%>^3YH^7Z?T(}wNwx{eO`43)UeMbzz%nv>frUP|^ot)9Ghk5v zIBs{dae)J3<74@AZYBo~=-)4fSGn0l?JX&nUFNZQ?1{v<_cTPAqqM>q`fKjQ1@|vl z_`m|ooSa#6GPC9_T%b4C4jn$Tiyxl1Sj|>AW8T-&+0xY?uDLt(@Er}(kNZG_Pi+8S zq=#F()lWzMP=l{%5MHW@`EzCi zg(Q#@4cv7}ldelh8-w3-T1x5r0tC&9(ES;@KTh{&>i$$7sxV)8wXgmdx(0u=m~U^h zLWgV-N!QYF0?tG@4MP`P%Dar<#3xQG`}-#ZIve5sAH8M%1DqwGK3p{X7X3p?$4{;% zG=NLj;GzU*UBGn>05=B&@G2MU#*5dnmi+y67Um2Jtj$AEQN2m3Q?(}ir$OB?JZ+!W z0GaxCMbotJtJ5?$^DfP`>fzSAg`ZD)gvCoS{Lx2P2`^pG()jlE%(B~3z)~gW>_)Zt zpt9w_ZxNN$$oGx|TAmHd^56Q)|L5=jGlleLRH0YikgruTeYsv~-QBTR^Bd-CZnYln zTBL_Rq`4C^=2#YF|LdMPi!BT1T6QmZjJ+T^?`%?w1?qq@{B^P5?-dUCsyR{0-BCp^L$VaC9aotO^4REf8RaKHq{6`jJB!QvxSR&#(W88LWn%#wh*#aO9>o ztA(StH253BQFuW;IM^RuKJl(|CdRg~qQ*DlQ3;AoEZ~=h}u32|y1~v#=kTCt~f^SB+ z|3`0IZUINVAStvK4usQ?2EPR^{ru?>TtNf4EgGCy)YbzmZvd$NLxPqT^)rrv-$J?K zS2tr7;e_dHa4Fo)xqfzXvmRgZ zoEC0v5Fc|;`+kT1eKo~XM(H+wg0mscovmtXMB%0ITj0`<3g+)C5v^F3XwAg(olGh=vG3#eK+g13rc zt3?E0`og~4$jz+fU`k_ZTdg&+;L@NkgPX2_*5pNLl(i#h?MH9rJoE{yf$waueLev$ zeZB*3nhxeKD!E(e@ErX|Z`=9ICom;Vorx*Q(6P39qCNBm^i$jaFF_og9WSqC)KPiTJq{ASnsxEp5bgB<$g}-*8vS>q0KsS-#pa@GX zAiY`Ox9B<4O>k-hxC{$#`!pNwEI6!H&5y&fj(XKQYpz-M=Y0C#!KMC}a6v~zdczFX zPFli6dPdcen!l`r=5Emw%+%p3{#L-a5-Spc<_@iCg1Q+TcF-iQBXIaMtUj^QScEZnX&$HItwFL&@ z+uz|&Zh<5)h8J&P?LuXW)_>`E&!^y)o1SM8fN1kPLv&KO$1{i{NGed>==+T(KP3;1VVF>X5taz`3 z%!(IL&LF<%Mb@sVVQYY)0MU@FJQ^7;P{nt=$pRy{*ZIBz@AYa<7~sWQS?fn*LikF! ztY9~Pax2*X&0B$pvaPIHh+J4(fHYpYm37x5E!&vcxE+x$J%vD?x{U>PD5?WrjrV#P zQgaN%r5K@Tm8P3fX6qhifY^b$j%zy$Y>@`P|CfpP&3pLGZLBAx#ywtQ-2;jURI8q; zybkE*JvtsAd5Hx#29yD^jZIrvhbGm?ByKN*2zBgBR8N!=P1-sYLH-|lhe69rByN5g zXpQ5xw^+L-(c1zHMTp)^U$@gRT3+W<^LzNT_Ve2Q)QNK1K`9l9l$z!vrF1|;5+KG2 z`m!kpe*Z83J;tAF6%fv2wgdB}FSGVdci@w9fIt{fgP-a;p9H;+ZulPGw4L<~0G!s5 z&b@+;^b)32M8@#QSG76|+-4%k|I63DZS@Lpo5pRguujHu1nsE#qT(fHY*pt2GpL95 zk=6pQplap3cspw!{4#2WSjZZvm;${yI<2AXHrM|$?o}2M0C=sq7hnB9tep#dT+`bB z*X*6P>3!O!?espq(4cCxQ9-p+il7*6kVEODO|&J|Q9(GELC+Bs!znw*<(Rf<8`aC8 zN6V>WN)Z%uDB?aSf?^y+-2dNa@3oUjj`#Ea|L_0ZpU-c8&wAFg?rX2T_GQ*Gx^yGE z%^2}eLL$h}>j&uZNW%M(b5c%8c+6YFck2?tf)T8>l4^58CnWSgtnv3#(1>;FI{IBL z>19##P@^@&`H#2NO(C)q41cx(yq}_GouExLNe$jS_OMgCk4nl3nM8J4#SR%-PskeU z{rgGOOD(CCp?EOTnol2Y_Xr@9&ws9`F|pI5!g_jh3?Ckww1%q736*q0P1!&w?3_?n zZ6K7|PFgvke7M~sfGlZADC~4v5-NsI+4h{YazZ7YP*XNaT5hPTHcDDgkXBA8A8z*u zAWK>j3Ok*ago@$AGlAA7sLKhp71;@ie}AiN6K#&Y6PnSzbN8*(Xa186mJ&nmfagc) z9%ab(fXP4?Lk{mCGuHN`oD@B*7Gh=m?2}|*X?W6!hRfH0oCq=!0f87_B$ZfF-i{~y2Z05fD; zmw13{YT;8v`V^^hM#-=m6t_Mi$nA&KuOBcDH3{M*H0436H-!;5KCKZn9@~3nm#%@cR1ijG(o6g>5S<@UW40K*BX8$!28lbBvO}?UG^S zT9ACs;HAcXR_((~CTgFxRzA$6rsf&zIpOTn)(xBa%=LI8u`@fmvxrWv9JQVNknX{C z3^C8sjh<_(ILXIEKgy2B0(Adfe)6}{$(1#7t1+U>R_vL|OE0kJVdN8Ix*hR%4GIQdHZx3$ovhbd&H4*=5K+2kbO>-M>$o>2${i~ z3BFs!JzH{u=39UL2NjcXtZO74ru0nz-E;=vbdNZ4&Si*~20p)-yT{B~(`T*z;N)wM zeC_m89zAp3_mNmeSqruq!%GgG6PPq7P*ghM;5mmJHm7LfoH>Dsa{__!6_e&3dhUe7 zCRLm}p=kUC7gR?oE~+?W!hwN_#j_6{ADBJ&;)PWevvc&;bHp}iItdEo7~zm?sHD=C z=P{$-qWFo18ed&mQ$1#p{oW%y+j))U>c#{DDuzy$+jVp`D!b57a^vE-FRQR)jbKC9 zAHT4oyt;hMA)@1EMN(4Z1A%$x&gW63bu~#IS&Ld8D2_jRX6cx+qfZmlt?2UGbo{4~ z3w1l)@zX@tX#Go~NVoF}*ZiB7&2+C>#>yGf!`F>Y8!p>yI_@s*sD)*l`>MtF8xmpyKb?jOcz{E~~7%o`Js zKM|_1KTow-4?J!hBp2_@<3_0431?9Y)pYE^*5N5*c)yCHX1@g0{=~32B|HO6=!E^oRW&&1J9$@qO+74VHu?E;$Z^MUr^r zI9t01bu)&kZWB6(B*&6N6z$yBj8BYV)-l_S1MEVSVR9GYCGO}KUXEUEnOEIr+IjD*BxiQ!9fc~h z4tc^jXdfw83@?dq3bGu0Q)9c|faUnYy8a2{hypQfz*LR^|EZE7R_bLwK52QvDCi{K zX{*nZ#>D8(*PINAt+bhBK7%d@yGM*n7UKxI3ivUt%TcKar@f@KLr#B=w01vE-;($< zu=q=Sa@=&bF~LqyB9r4eSTd2@a%s0Rbjzl#Z=W>A9wS9)(UlR=!PP-d{I9@r9H!GB zv~Ru|{@~!OFEb!rkm?)h6ZQrqyx%I{VT?Yt<@FB5rH#s*7*vKaRkA$E?!0C-t%T*cAC|CBX#Jr5x~h?$!K!_eIhhVwUp#FL?DP>)daP+Y#rlJU zT>fVJHVok{T{f*_+#r7^<#-I1qKdy9XG=723KmUn&kI=>KVyuTk_gc;fh?^tvJ>BU z?d@s1e?!+II)aIRuDdOa_3|^u3DF==3KxNjx5S>;b9)K2n}m1dtM-0m0)2ZOXI@VD zKBKy-Q58eg@S-8AuV;YjlIax5BYmmx8eQSuoW`QGhyFGcg`Z9>WsmF5y%CnOKcV$M z!BPi(NKEwm{K0y&(Ksq95hrxSe(Fi$knu-&oUTW8j1%|gupIjy>$oSu66aj)_T=ZO z{M+&(X4nXf?3t%}?(L#F?ao&T{2M^}ZC%NwU2XS^$MTZuZBY`57@%l%=LYh0=5xOZ zM#OHRqRz@YO{vMC@Es>?uG`ZsPj##4A{U2N`)mpCV43unYWp^~kHI+Sq-mrkiVbfsk#? z`?+dR)I|l`=~X+om3onnG-teE6pWKv2~eLS^SSm{j8~yK{QDQIx1%H49Jdw!+8DHD z^$W&7x}4k^ZokfIzrEvC|J?_w{L*nMd5=;bgJiSQ2<_d}CbkM&)y~%1_^L5H8cXoP z82COVtPD6iy4&tyE0_+ty3%|l?l348ot#V6-BhQFuC{K(O8%HHdga*Uy4!`rU(#xg zo1Ud|GhhWiG6q?Tb{YBBFE8^@X2T~&59^B;kRJO6-G1o zoHDMR_4RAU5PMun-)N8n&if5cch5c3TJTH!j^4kFdy(JKm!OZ`uj47mQw2r&s`E@E zBI8#CKRKP;c@tkx_O=z5ZM4%@D>hnpzHSV*GgXJN9D(&tWPJv8R)Z?KwTm#NBMi=Q zB0gL5<(e(n|9}&I2Q0@I+U?`Q)n)Wk!vFh5b5 zem9f$1dkIoLppLKb~x@XPuWi8gC*`hc13h;tqAW;PJXjGpKgVOwEg8e{Me_RJeI(A zJfpj*(be6p@0*N1qohWQbwmLJJIS6GfiH(Q6lVGQ0^?7}&A;+K5FvF-Y#xHuu7 zv~GCA7Fx-E?sWz;aypgf;jrW7Nt^v}(^n`ds+*nGN)vmE3X_&NoR*g3 z3fr`H@+p_1-?>xr{b^ANUz-aa* zW;AKO^AKCR4|KEL_oB<_@Zz8A&JE*Ul{{Tc)#WHNVuZL#*b|8Es#8%n6?#Rf#h~bG z9slk;+udasefw+USi6&nfmYzA(%T#TzD-5+e=k+i7iHn;WY zyF3g^zoyg&K=Dzw__w;PuirIh+1;Zg?lgJ$U8l)%2i%DGy=R^Gp0V#t>3wy$rRzvn zO1|gVKMTw8zIK11-QQ_<$5S<>(~G}refFL)$sS*ub-XIv7Ju*~C;sbTIc|qN@Kajv zb_-`bYa7_Tx39I)MCh5iOxE%jB zH;qx9uiAwpA8l^y*Y}M(gYhq^sIT~d>szPI+q;Q_t6+N_=UYw~>xyr<=X_xgm-Tx( zn?7sUhsHq@Qr|GMJ#HUWA=3G=1+{7_Pt08_Sv4+XP>YZpH#5_ zb|<`-@N!JkoapYvHA|L6=J+!#(q`@6*26lX*%&^R{|cx(K=DtMU;1@LXWP9RT~Ks{ z5&v9wP8jQ}4=Bwx76*5RC!L#!&V|3PlZz8!IcE2@J|k5rQMXTx@dIT39mZ?WL3wJJ z=Xy0D(mybJ`j(SFHP(2<=)2F1QAPG7oio*GvRaiI>rp>}J-;~F%XQo1OkX2lWp^3{ zR9HwJyKZw22r@YYseav{JAlpR8otP)sfyj<*n$??LdJF@}Jz@pjzUQ zPQ^Mc;;uQ=qn7EoJGyhjSgB6t7>hqn?Xlau`Cg~Z;?z=@MbxCt?||j_$Enu-Ul{xM zl(zLIoHpf!*;m}@+|$SGZpFSZ^6i_@V(X?ajM35M%rx@}7v}|OA)F%45?FNdK}7)W zQ|>$w3nIJ6U(tzOn&&T){-^eH7^S|^Ziz>Z7h%bnfxR3fVR6?w?op~iD@M(#-V?usJ3>@z(zcfY+4$tg$HvpEv+BjOuwE0oW%Dzg!_Ey>S6ZBkIg^b@z-~7# zxdgP+QNA2E*Vz8858c9)A$y8bXIA1(?meXxwP>Xl-B}wS{@d>Tb*oO)t!(ka>|pDS zuUIxKah6AI0NV_w#5r#3xAz%p$7OjUFOes6BIln0cEnG?a=fVB&ULlB>b%6cVQSK0 zl3}M+V$_Xfa0M*KQ`+r>>(&}ht#AsGaKaTRzc!qv16I!RSm(b-_SU~>^s-L=+UT{v zkjI+@QUl%R-KwT%v|q zmwjVQmYd)aLo;W4)b}83$H8Sh$L-udd-n1mQHt46?^I7vclH^Yz12?j-VDpp=MrbM z9S_S8O zBX+s&+_0YBomFpMhjpuP#x)NYSA%oVPN$k%@ueO$;BkHmnF&i|qHx?+uWyZe2i17g zMzBkJhg;p&)887yXUD2o%pCN{C%EK&S6AD8&?1lWiH<16Ki8cb#xt~s8p_k|p*#g2 z%Efr-1YdSQrXbxn<&9XuKIS0n>hFw!6@fo_)Fg1Xjom zql;}G(dKb&?rn6;4}ooS9!m|LmI32t^$c@mc6qs>;|7NaP7sTx&uiR$OMK=sIW%jBm!r}83H5|0^D#Be^3 zA>_0V&U1<;Atn3_+`{g7C3;RA^(lI>{}!gMm50>HvFZuS6=jfS2`6s*fBj-03W-o2 zdvpRK|J=<~LD)UYh*T~)k&RAKe4E5dsUR%Uy|85SK3L+(OFDMv!;+cXVM*&tSQ7u_ zLH+_kPf*_@bc4@%$njVQ_rRTkCE$y&lu9xnMsO$Lk%hFu6oYwn&}eh9F~M?bwWu>8@t1aw3Fo|GNI0K_ZiiV*CsvG zFoq8w!v}9$WgxYm4kmT@l+@O0$KLlEf*hY|g}ws~S;04qg5HvBQ(Glj@2xWi^pWkL zI2N#plpM?Nx6b_87~d^JD|LC)qrAPW+kQ4i4Q_KgCvcnFdhust-!n5$c+|&WIs2N9 zEbOcbd0H^Kf)Snhi0Fqs$?ztA(g*Nsuj9dUI~%S?t?^l>|6-hOKl)MkIbAt^kM-y; z#$fw(WTDn&b%R=o-8^wj#Xag55a%ycBPms`+rDP-2);M7DZ7D2c2gs(d#hm;z0@EU zYVKduLv_8aQ$}hlMC?*K8GXs)A40Z!4J=1eyWKl|XXxu}z4W5d+4}ZZW1?4LsUeoc zolZ#UCqB#nn~`tNiW52k>9ZMa(gMqof0uRnZ^q$)^a`$DE4fH{b@lN?s=baGZH|px zzJ1o@_l$h|v}(*rLZWp~kMvzmjy{0pXof{<(R#N`xev9nzY|wP+h3#Osnzk+-Q{5o zNsix($hXd^ST{4mULDaW9Z{i`PO@N~^{dAmbxsfd#1_QfJ>qmddBGOA!O8rQupFmrxA@C(4=g^p zFV_}OJGp7ZoiswrI;0WNX{4@q(s%)uBVVT>{&HOTJ88s8!-^T^(4)M&J!%5T5W9Vv zSLdsCI{W6ci#i>fML-oeRoCXW-ZjiA<73}?R6Uq&`;#*7THEVXj@vrHH1{1GdD)|C zK~l%r=C*FYf2hC3qe5Vh_Rn?8{YigoS|8IF&7(bz($hz#qUraUB!f_YU84W7jx#hT zE@ud8yGD4%bynjT-=p>bpEjIn6N7%DhoN2sjgo<0d8!v9r%d)l_Zn!jGseZfgF82z z=Z<`J2SY~BqMq&rC}ckj-rGaTYr60c9`zjMx164K7A&XcZ?I_U-?m0|GWWH| z$cT<3%OyGRx?^`$lM^n}WS!T^9B28Q-lOjpd!uF7w@95ZJQ%x6-OjqZdk?&zK>XY-vqL|1;7bYUV*O8~ea=fVB zR_X??mcXKu=SJK_sBP%@s6+*Ud(1l5v2)$R{B_f=t;;@hT004g z^uiv;{W2`lg zk7b<z#=^gOJ{!X8)hN4*Iviq4Ol#W((Y5a(ui9!CC6vFS`Q>~IcC5j zJ)zz2YxgA15;;0nyHrE_Y9H!c;BAi%)t+2${jIw>*sk^_xBjU1G}SGc>c7j$^g+9< zH@llt?1$lM1Gl*^S)+QG;|F^gMi+nr{>?j*%(S_!^YEXN7+|P-`534|{5x^ux4WzD zu16QqVZ=Yz-4@1rt%o_>9`Z^yI>SLk7n)rp?fm^2mg5!e?or^lg9X<9JF1|p&(YzKGuoIuuV zJTTzm_-BJ*g`z7Z(i}6gv*gwWl7lS>1C*y5yYf^9XsBq{YLtOxh zN8+E)bBF4_w)+)y(?v&N#Xr}b8^)et&Si=_sGAzZg@4e5b|-Aedb_tdIjZ(IR8R1> z#3|*37Y%y~z#w=;=(Rdy`xUudZ1 zk`PtW=C;1{np5n%#>fLs)u$#}hxal6X7|ZDbkZy-nkjySBX^$c*gXo1pYDGdr~l=v zaFLRii3|3}a)ellF(*IvhX?%4F#Myg$e_U99J4@&8*CEXr$ zxRafe$fg|gkFeJDH75-YPBYY7AUVb3Bd^xLV1S~k;AS1z;$^v}t`zO(4dVEIDp*#73>t*P9H zZdNHJBb8aD)*b!Lsn+}b&9eqdaoi&?+Hr*nO>1$3(Z9=rLjE{_)!)OC~f_Vgt}&R zxPW!x0REURe~#@Q+P_^`{?M9dMSP}rSZYLW$(hjm+M6i_zbTvrgyL@KBh>-t3 z!=`oO>HuALz5|@Pdwc_RS3Jn{jtKuwk`Wy&>;|jR!KQ8`Se*pR4ExX20yO|rGK2R{ouHEHNpxb1^nY%DzJM?VF7Zm=;!%mOoeg2#GX$`l%6dQI;PkM+|4b06JDtn~xPh3-?a z)0~sC@j#v9W}+$su>l6c}#UANr*a;Stwx+=ua~3}is?aPFc(h8u|hVbX;j6&OJVCNXBiS;B@- z<2?gN9>D{`(>?aLbYX10VULR7jvd7VugUl^0?GG2u_KxJ`lsLlG9WnBqr!M5;mm&M zMLq+R6B&s7lZ3~Rf$w?7*1~I>Zx!Jgdp~F1oW&10yoXGE?Tq=UNI?>yqz54#g7 zH5V@VXkR|34@ZB&0K`D{J0c`v|8v|_@MTi=13)6)53vD3{QX~0TmL2!u2k}2yj=6M zB;XB_S+40>!l%Xd2kxn0|8Bzb5lMV1HA>hRVKe)n-$-FV)W0vD2QsrOCGkEajO;xP z10b(C6}h!4x{wABOnF>WIjelB4j)z2@_9@ zOn8F~qEe89jHvRTL1JYXb3KU@C>-Ru267TPsi-=>pjQvm9JqsL5*d*ui8Mi^AtK5U zQ5yF19ZrBxXyke$-{i>WG(p07%c%M_*b}dJ6m}p8Lc$)}KS>qI7gMb3rjp~yrAHE_ zA57y7H}ljaa$q}&!18gNe54jQi;gM&J8(Zm0S+L{QMl1(kdseSklEOyOU;K3>_N)p zz7qeyI5P9RwEt^F@F^t%nP0Q%&Skr_C zpb7Lo!c-@M7}x~90OKc{>PqlW(3$m?rh{9-H>G5|J# zpTG%aG!uw^#Ls{~nCet;9ms$|XOcL$9;ASImZ^>hYrq%a(AlP%3;qV)0YlHG2|xq* z8XS3!sV)cGfjP%i)4-MBAK-g1J8Y_3Kq^f84=y*=nc%NrJIDh6TvMG5;$SEE4vd|L z4qOjj1fB|0?GI*vTJQugE2$~47_0=(f==g}Y7{5~SA%=NGvGI{&-^GQnQyAQK_kdp zK)ZtTzzXmd7`TwY;AZeF=ye_?0#Q&8UI1T%(dV1$STG;_3ETx90MCN=!B3!nm8lK^ z$AkGmZMk~1`K-tMNPWEJ_P*n#cjGhmoU4*E*5Fiy<9_ox`<&v$8ImW1xpxw`th%p`u3CIiWl8x36;+k0U#D4> z)yG`IF1l1_r!&eIRv)`~$t+ebuBtp`?s=8-s*kBrbByCEt7nv7RDH~nC5x9R)z=Oq z@=1#;D*3CI=h!8cl`|I3T~fZ}GIgO?<8g6S<*^I9RaKr`zNm5<&mydU%`y8Qxj}qG zOBTIov-TR*!>q+&vwzQVovSXYUNUb{gg6_lTf=6* zY`~?48%&^B{Hd>US4%^rMg>O)Q;o2Q(RI` zb+%+k!+9C+e*sh6C3Ix6qfiz}C07OGrw?&2kjWSauQUwE+$ zsJ;HJxTvRaQn+N{laFROvS1S`Ur1sJ!|lDzJRM z)UHn|?P&WtVb`wI?9d#Y8}eGwom^hM@RG_|mt9m{x#;){&RwiFT7Bl4gZ9~$n+vMu ziM*NBRY#XcsxMwrdGz87WHAi&taS>e{nO%g`obmE7nfI^cEP0!FR0+-A?wPy=8#Sc zr53EK#Ok_ErS9_A(&Tn?Uu8Xy)%es#B_XNh>0`J%j&Mqj7qe(~HULpq#?$w2rS}!JU)lneSLd73NV} z9<4C@dItHFTv5+mIG-}jxuBd*d?{Da`Io3I&sUnCdRR8l8x2=D3;Jg?2P++SOmj-J zI@i$$HODlkG^_dAUvo@zTC;b7;~&x-cQ~ptTH#%&4K&9!r#1V}bNs`albW-d1Lr&b z5zR@>S>^YffwSMzp`?xaN$o z4AK4z9fPpuq~@&Vz!L4RIjK3LIdGBVpVS=DoYfqt*5NfLG-u%c9x~v)*fB_G4q4L{ zGJA<#qT|)9E_K{7%^A(%8Xa77Msxf!N1xT4xZH7j|LAa7b6j&ubLa}&KdNGmppu%y zS2_U`nlqY%S82UwKS8BjG0jQM!I+~DUF~pMyOY`-zQ)mKZ8uGm& zbzkr3vzj9}sMxtuh3ZBfV41_2KRYD|-|V>4H#wZT#o@rM4y)T74rz{Q4*tc_r?or& z7whtc<~cnRmpbug{>+{LEWvd^G@~tp%bgH$%^A&++Z}yMv;Pk5)*R8C)+{d=q(Is0 zos^u%h|?tDkVqc!L7YPVmzecBz=ZohWNw0n$pE4w~<2;#bR z4vJm3&Oy+2PbIXxt>q|j4Rj7duG?>WtFY@1I_@fQ-#W72;a1aR>l)N-BX~WU5U1<({}Eu;e2wAwVQBE8%FNc z5!N~9mK&k&t19VcP}`}${=S{kmw;Mr7wl*!?Jq}A8^*O^rlX-_rfRfZLfiT8Y@e|5 zJBD#>*WkwYU)V((wBc55=)LRrBW%=mzL--p?o3kWi}THq+!`#@cJ2(*wbN#94YH$$ zHgu<+9Sz+oEO8@rr=r@>jnJ*ZGB-XwCG8krvo6R2+m8Bo=di9}%oVP52AUcjp*y#A zywyV{4dd};bDc3Hb?dsh4WXkKdzgWA5CEBpTjZn{x#YT>p{mZ|6wcS>2=gytA zcdK2kwrkXO?wnfe?DS(gM1wYL(uVG2TYI-g*r@HA-3ayMyQ5vRwrg?Y({u0~yK`(g z|0<`d^RIR~mosa3&Du&_sO@~(&YjG=mN6{^wOyg*S!xdKxfpD z=vdt;zxHk|c3j()X}ge~`ggQz&~^*l_bwsY@MI@*lJ z?ZVp5y?tx5)9Ke~!v)$fq3`S33>_({?P|20d*9d5F0Jiq-T3tVU`M-bR2$a0In+0X z9Swa~J5`-<6aFvkinU!*+vyw3*67?O32VFPR&D6sfVNuds;IY>KZ+~Uh8z~U`#rp zZhzZYC+yRPUTx^!LU)WXpzZwH&b_tnXjh``3bmbk>uuZF>Fb2U+OSv~w%(GvF>1RS zZC9f0T5r`m*u}M7nYN4TTX@$@ZYJ#X8?<3e8@l)KxrQRAv|UEqxwqmS?b6z=S=+g{ z>K*NxuQ8mdZ;Lie=zI5$hWXbzZRgc<@UXs@?`Y@Kc7E4R-{W_*3uwE*(vZ^`)JK8n6>1jLncDJKl#<7d41@2V2!(84?IO`^??GhdA4%RW}FLhd?PTR#gOwnCC zzqU)-cJ#7vhq?hIx>yPHJ_?4c}p=?b@ZaUD(Y}hncq9o0_# zgQ4|FYCEOpH<1oAZPzZP?Y!=M3A=XlAf@Z3 zNgMjLq5HVJHG|qNtL*~X&Z{4nceKmbPZWdN&V9U&os^$LN9fmvAveMflV{hi*nLFl zM%cklU&B>M+eO^?I?S>2-Sih|!9lV`UiNp07t?c5gw9V2Yib{TEwz9{Hu*P`vBS#9XPL2wOKo+J6Lb52j? z&Tl%*iCw#5ZRgc??hA*G@s(*ipJNwQ?i-1YhBex-P)C^QILX$tf;w$itnJ)a8m;kZ zyRF);MB6#9I^>f^_t1uEZCK_ed};fU*}X#KEYHLmTvf3z;YhU;a6cDwIMI))4Ba4Bu)zBcJ-7twZ2+RlBA($Oxi?V26C15`r4 zU+HL=)P~BP0!6LC*OFnMcDwIcI)=;WZ~=Epq~F7Iw9D6z=!4qMeI3)$E}-o~jvd3t z?@aC_P?j>TVHytC4XuBqD7uK&=I@-mxT~^yUuV3`=WgF}6)1VENo;tbjWjaQ< zRomrjJNLbfYxk>unUU6ZK5gf|&#~=>$#2jWRYn^Yx(Q!zbz5pqiTd@FChSga^whbQ?3-KUQ3)W&_fn9(yBcP8ULB=m1|=8&r1IY0cGgPJ1_Pi%cck@-Oz{^)SvCx>I2 zS^UkOjMn{e%ivnR>hILJiL-<^MSpCQtl$l1$Wv(DdV@I@T5+2>zL?4W z4a>}a$lDzsq7ffrD6o#a$&Ri3rncDbzR8a50Y?Q5w6ZsuK0@@lg%HDTHisbF3D3CM zHZ8x|4oxI1&ULe$)B}#n4)Mj!b{fc1XeS^sA(!7`=lE8~hcE@!3%A(OlgEK~#7#d& zBjau1X2^B$nw8|eSG}2mBi$~11A9QYkV{a&j&ta{~$h# z1J&5be+l*lbz%>ffpOT#Qvdr7VGR}H48nf|rLRRvj9L3uP=b-{>d=dmyzx~6!^=R0 zM9TZT;b6h*1RlX!oxqQM2L5m);n9aiv7SDdjXphEsh7quPKXS5*@q16qA>6qU^DUi z`IvrLl%LIb#Ni{y@}&_TL0G<=-+^9uIbY8w$%K4Ge+nPAC(yU(=7QO<^M$TP>Ue>1n0Bn8Fu=xw*G_sn_X$kgZ_)CX6Td9Gd zE<<2=FPMz%=WRtXs3$-eo;-)DqZ8#W2rmo8XF((O!smtgUp8_Kt^=|Xzii5Y6d?}cYJ_c_A>(TRwLVXWrpjYRzSU8AomH-Hsf>H?pZvopR0Q^0eEdk~e z0PGNZI0h=j9_Cqt+KFD67k4UxUYJJ<>TUGGac~8CVIC!@X7q4W^;I*Jp5`eQHDE9D?i>LwgydP7Sf*I(! zgI6zrx6$*_o9c1_wTqrRc6A(RMjwK&i}EuY4{p)bGaxGg;4X`)UI_s6>Pxjq0Qfpk zCHC;MAn#-BVZMk{)nX4H4|<>v!PkM9*u!su0`$Dmk`LrmE&8YkXMp86xVu*O13yN* zrBd8QtGm$)kLAPNap-v~rOpNoVh`UBio_m%2PDyRv#budh#C@mcs|&Qo||K}7R(TP z_>+rh|CA(vV{A3mi_DF&ngdEP;?0q|9i-9oiJf{K%tp^=cB<#a3|#2B@m0rx3iP}f zQulz2*u$@bDzS$Tyo4G;=B1Fj670byb_wVI1{^UwcnL%UQq_0}Ukqx|$KVXe|B#5_ z(`u*{^t|LzyuVRH(F1m zSD@z=iFy?*Mdrp-9dZ@@KD)=`lT#`3}WbcyP$^si5|Y2jKa@=<>+~tpw9j?ofkbfmFj-bfIbO-0*cUQ zVQwVVWMtvnuA@YoF-qXz#!;1s5j?h*c0$ihqM8GCBJ(mpy$Z^(;igcXc0JQB(ZhV? zr>Z0@TzLb{gq~;p>KhP4&j(#<&N7-t>|vhoD{nKIjv~yunG#^cS6XVzEnIH#;6p66 z->qB$k@)~n{Q!QJ3&w3qod{;2=L;cqCCFpMU?Q0@NW3?*R?SJTy?l zKoc?#4%Cq#gB<1QfvN({ICz4fZUTFehlVBKd##qacZ#f=92X0NBWX#%F>apHp-23NSrOXN1RYAT06A1~#{XI>IJ4M458o zh~Y@XUxNx{cBxTMf=1E9r*EPJ1eX0y)`5HyOTuq~$s~}0eMv6W=wd0^t+3(#Dih zcrjpoYZZZux6w3GD{ve%5ozu&F1b6r$WAYFz*204qoD2!#(xpwpaBozVgDo|G8Ba8 zffCWfOHxWHsxAdLfuF@@J5~Jz&4HYRYo8=8Y9a;Svx5ZCC*Y%>qV$B7e_zjf8hdPl z&u{^IhW3w8fXBuwfiFQ=O8i{g-Y2pL%7-9^UicTV99jOReIlqr zPVD5a8I1ckr{4=){lH}8F#HJEflVrkF!)8zZ#?|)eAsIf-F!S~B-#PC4|#cYxiAYB#12h z5V!(axCyWtx6M6YV@yX5!;gb;$gMk|P?!(U?ejX-jx2l-7>dk)*Q4s*H>q|4B;aqs zUgW@AGzTdBmgayz1Nq2Vxa4h4HRKSy4iqEHo+@!rO{Bt~0`(2m{+`_T;fG%KQ7Oo9 zb|Hu18$f0+<9{6C?)Rzoy<`IJ`vKL9?1ygy&B$r^6HrB9?}w~f1R9Vd@Qc7tVi~yK zZVH3m4_^w#p^w3Zv#ch!cTx1k|8() zWK$Di^Ao}#3m*^akcF=U>yd>wf^EpckApOFRCZq}_>|LwOt@rO2}S!iXDp%AcP$JmQxWl5s@t0G4VUv9=$A1aSy0PmNg|_2Qg$> z;==-Q(ZhQ{5?NN*7}Y|phz-0LG$6~m6l=lVQ5;ExFF{HIz>|NVZINYJjwPTOSyskq z08L^K^K4)3L>3XCzR7|1?2!rMfTEd0H=k%R16a~-HbjzK+hX`XfCS;maN#)r6ddhxPQR zE0ASZne#FizrueSKNr4_Wq= zITzfGO`L#d`0PxKqjhwS(O}p)EWLujwC?z7{55NLs;cf*~FR~Y| z=l^&`#FK=N8Gt=<4E_p)e`NfRu_V`6ABp1;fR7tQ`yof*?O-#dPs9BOvz-HS01ksJ z2}IzMA=Dgl7*2rD&kQ)Q8cH+#Lc!qE!DRGdcm*gz&ccBxYfV*Q6oTVm7aqcIft|>* z7L|WEZH`S4j)5$C;pag!avJuIU|RxY;j=&zS(d*_faQcu!OG9#`pCj3f;{A?EUgs> z({TvD1tueBVE;(g>_!$oANY}FJ*p&#i9DK92$Ydn3g#V_3ZwVJv%qx81iT7Vqff%$ zfVa`BeLU*ueQ5tA9w8im0WEkW;159xISWtRm(GGs5WW@^AjjcXzzpOJJbElui5!40 z0=397_#fbH3umUL>NUE}b>U<@|0 z%u{rKs*%ja;GrzfvlDw+(&rW6mrTR^uw>6R^s;o%ZdT{nfgG9OQO|({Hfea$L^^2{ zM-X8xs6bA_1By7ckaPDulD&`~07Ya%_(d=SISsErgk`3YlW^Zj#Dko>htY0y?tVwY zAA)*pgrmMJ&PoGVPsxK1FU4dpJKt^GQ7L=OEfcJP=Mjl|&>k{03-}Ou(L* z4712#_*w8XHfeakEJ{pR*=6V|P=g$U-vvR56Lz7QXIQ* z$Z~8ifl|pe-05@%6ZEn)TLA1O;Sf9@c(IWs+MWRGB}4EYuuT$%-93tgPdJ0{G=cC; zP=XwX*8-nnNgr9Vt#cV|Nn#QBdf*o$_%q;@_Jd`auX;%gZUJF3k-OQHY)ths*h@UZ zpMoCP3-5ataU#o7VAp~Y!rI$LMR9DyL-v#M&Zb?Fh3A0X$Zfl6vD6c~&Sx`}l7Mg@ zP>URdSA)&i=k9qCyFGKcz#wPgA@jIUA^YJepb9T2LJq=rfUOwi?)@ZtMIBQ~Cq*w@4i+E_p9^BhG5AZ6Le9b?&ZX^<{qW(yj~s$) zK@vHBZj>Q&K0Q;6;733jIlGV{_&f#BJy9z)C>5!5-Hpa!X&1aFmV92$Vs^GMVu*;33vi% zAgpXL7A{S$3Qq{1V?bmZLaqGXGyI#5q0Y(`EY*Te4CQNri{nNEma_#u!-ji%t8 z*HOE~nYf;C*HfYpn_tMD5#AeU4|aVJmVGMH=!MS$O~`5ZuQzf=^rqTxZrflZcVms* z4K!pUjTBfW@x#GeI6IJq=YS;goG8M1AcZ3W{~L@W0TuVCEnu9Nz_7ayjPTG~i3l6v z6ToKV82l#Kft|Pq z^Lr8)9`RS&n@IieG%yr74tKqi5+Tc$FpZ#$1Z3}*UU$(+k!2s0DWH)!gYdb)Pn@#R z%HKc?eL^-@c^ZdL5`%vQMR>?YM;C&c9wY`o4Dv}V1%C{@*vnoyBkrM-q7TAX0Urs+ z;k{r6df7y!_FlqLyK(q+;6$Ta*m*d?We&s;~7Nm%&N`)Omsrr<27ld$XQ4;$#%)Tpd6 zx(5WiG5*VXpaV8i6?n)xpH-j)4_WW?;LX$ovMlXs{hi2&NS5~83ktDU50g1iEH-fc zBlPO-)E4Y)yTs1Tk8&n$qiM*r@cEB%N+Szj^cd|Q!4dfLVg}J!oPC%)om= zF@f7QyD-~rgdrPb+yYoJ+2#+C*CPw>_d1Co%RVPRG;tOTAf7k4P=VvU6w@H{tQ}8kGkWr~QxZk^+DaZl%1#krg zOT)4E=*Y;z+d-+s1Fz3SsV)*uW~k2hi3mA&j~m%H=ZFsoj9z#?s6rNA24cv@Fm`1?{1xPmdzF+Xx9i1PZ8j;io|%vi~EGS^`RtWowt2 z&E#CF5kBElMmI_(8+ly#73VaaOLmti|JI}Y^qbr*hh#gVao>?C;t@UsL}NHaI0h_7 z&fTCyHZ@uBJ)Mpc2)_Y-Miy=cJ`&5_gGlx!n)(Aa#3MWt6i^dwd+M+{Cpvcz9yqE# z{*jT1wiLeUCpsgt@HSA5Ec_KG5y?Gh|>PajHKMxXe zzQRMi+&)tp+0N!|5TFTi_mRlmFGBW__ysH-VcOicA78*B3y%Q}$g=Onq5=v@%|&G+ zi%tFI!4ZkUUxL|qWZ@GAV1&MHGYwYL^|fuZAscS=8bo5)3y%VI$ijz#2ISnmDP+%z zUW55al{kg>9nAfIGY;08QzgTwUO&|fuLjGJ)3A5A!2>9A4M#u>eQ*T37yuu7S=9Ox zKW$GuvZ(dvBU!W*8+YmE9TMj#L)`$jA}8PiEEpT%exMpz zI691D zK@GC-L!cH}mV=)=fm$5J_%Cb1mrOL&6{ATE9$!R>kYzpiSztMG?yeQNJ5tDQ6(541 zu@P!K4EH>QQyE!!6qt-0hL?i~_OcZGh(l@rT5%j|s24ynvMgABbul?dmPN}? zJ&X>BEDM&8Ih@QQ$KaceFw_hpm8~~EoJ@y8FUz~jvhMZhg=?qs07`7&?ci->S=hX5 zkp6+}jUr3~cjJ%+%D02P$g)WJqGD}vYKwF zk-)bPwFsXDh9b-U=$C1clM4bKS$N4T+6j+pcws3CAXmXDP>S3LcRGzz5m|O(m;)M+m&31t zBytnn0=6Lw`%Wi8$P~1dDV9(jK_p1*3kn51g!J)Hh|C(L4pyrDaatwY9 zl)Ucn56ET6>KsE21kLYa4}S!j-lVPP80u`$@VUd6BPWrCEwB|?cr!>Ld&8V@Ai$&j zNH|J|z>&t0g8P(H8y?fX3d_!8rO3j^Ea3D;-U+vW&74`nN6QX5yKxB1jyOI#qwtlW z3|V+ND4-t*%YHV~k%d17@v$cV7#nuSb7p?0<9OA3!j_)TnNyAad&z&tW3N@d(>$oR zQtx+}ZM@$_vvu!IbC{>pdTb|ux(ZnD?=;^sOH_gN_zUK+eI~G4*um;hHIAp*0sFVT zW)j*W>z5bI6FrA+IsQfd^<>TQ*II zHLOamima|#9a~+yI=;GYb;8=`W%I3QYGdQZ^v0%*nT^dGvm0ABssyb?(3%yo6}2nk zE9zDxRy3?guGqRFwW4uFdPUQU%nJX?!jsr>SPWR{E@4esJ(PT~@n%dO3 zDZQy_Q)W~1rtGGcO)5zbluA$JCoKOibNJ}y71zG=w}VvWzHG=U+3NOy%H~9dVhUkeW1R$K3HE;ABxtO)radB)JN)T>SOh__3`>TyBdG5 z@@i?ThSghFH?D44-MqSGb^aRPn!+{3Yf9FXty!=pwx)JXd`;b&#G2%q^qS0?<~7+h zEo<`Ede{2a`qu{57OxGiEm>Q(HoSJh+Q{12+S;}8wRLN!Hmpsq-MTilHodlKZDwur z+LpDdA-}=f;BP2w2s9Kolr)4I${NBAk%pRvSVL_?T|=Uwp&{9jYG`aoH#BXz_f>O{ z$5XxKk=M*uJW>Dp!u5gmCF?`$%hpHM*Q}4NuUns3->^QlzHxneee?S4`j++H4ZaQj z4aFOR8%j2WH!Ro?*-*P7zM*bIa>LdQsSQmVG8>vVsEzp>y&DTR1~wLN3~emi7~WX3 zF}AUGV`5{&#-#42b|2m3+vML=xM{(r$flZ2G3%^1%+({jqv-(#W6(9De(l_K|38=f z`TL%pE=J;-QD33@+#2zwdBL%RPTtfvPG?+tzVt@VQ`ReQn%57Xbnt}0 z!3R&6I5ALs=D?l@7w0$wSKnw|_>Fl|&mMtpoz2toy7x0@%{tC{>Me6-bn}G&)7Y6t zvw^j79EsS9(wG=(r?EGPv=Obbg`z25=o?NWQ&RF%=0bLPxB@B88Xc+a`#e)ymJd!Fas|8vg`D7h2`(zhGEE?;Gxch{-W zJm;x!2d-apc-RVT1<2lBs#QdV)GP!KN+uU3ECZ>ZEa>UOs6T5?DPutc_5jdXFI}_!b7L=KJ&RGTIX_?P18S3*vs_W`3k+@;r9<1jP`KGQ{ z3{PY6Wp9fycCMv#3zOSf8x~2&2l9YZMy(w9AXbD}faTSlr2hL`@vv2s_=`5G;K6I+ zwUfA8mq=ca6Jc%nHTZenf|b$jXDdKv#p%c}^%)-yz_AZkMq;;tk=QL^62}5b2mpTq zf?sK+?dUzl&Q%aV0x#sw32=R;9#Re89zQE(KbhnF4xmIN&$B!Nn>Q|Q2yxK8n5C#%dW!ACeJ15&ME}J>xUtgg|aOw+m^qIIrCpIYehhxN4{i(J)A5~ z1miL{^V^A0nqsk5%qEZ#otp4EWET4y8qvqpnO zcD>!)WzT;yfuwRpo65$!^k?drcKDgP{7loYAb;wg-8A&%#4^b~>h)Y`S$D#|8y=+S zY}9*So-mB|P0zMOSMcZFCr!LdqgMs+>SP;$qS-xA8wznKW@tVnhUHzFq#N~R|G77w zc*B*kZz(@Oa`mDrF0F%qOOYKYx$~gE9^MNrKa%V7L=>0Q8$!Mrs;tIhjHA^ikfj;C zw194;AmWx?SD(UQTb|SRG2c$k%r)uQrex7UCd75KMYv{ zpAO6ZJhocnT}t!)jS;Bdt^$kQyAB2N%hXV)iE{vRVHps|F{5jLGYVELkqkcIOR%vQ zw9K|J>Bo45Tv5!~+W|Nq(+t;yYihs|n()6M{b#7<2#an03({+6V8@=<4@f0!yj^`g zf~0M*SZQM{M#uO(Qd7+crmd}}fzU*2{J--~!^D292RL;qIEQ-=phXDFF!6H?Nus!f+`h21iUJRGd9%IoZN z=>+Ab%v-jLVpKVY3~8nAE-PA7=O4A~X*=n4iR;HNbENP}tGp|!+X$G!G(lLG`&^N8 zxjk<>@u#qTVKUhqp~ORACH(D-AnhU ztM719grdtzr6+h4``$|l(w=n)i#TrTEIzCiSsHF6hF^CJvqj`~=#qmdjwOYAF`=+o z_{k>=UqIsdWv!Gah7)^IVwSTBdtNGCE=`5Ha($_hVs%$UIFyJ~)F;3Xca+*`@JCr% zVC(DQ7-i281nAd81sMN7(VCr)lMO)PIKGE8+1sw2@>dGfFpJBMii51x;Fo)akH$d- z^6;DXk8+9wm7~-B>&i&ZToL*rGxcmJ;ks3ZNq6f?jO#K-XaZ=Pz1PZy<}x8RuOSbW zXJU9NqY3^fBBsmCP;E@2*oT|uH5nX|d#9}#L;#FCglxIba>B8X*N)QBFNpjd;Y7kM z5iEG>j3U}t$jsb0#I}icBO34FkH>MG4d+mgza zA>JOEXjLS=uyLnmytNT@b#8t{niBj-inGA(z-pP86lrd82^Vcotzj2d-;k!(3bTy6QYODymYbr~ zOm0(}t0c>j(H@UnnwcL6g+^7=q33Dlp_I4&1~Yx1W-;&F8>e2zAmel5OZPWFV2Sp@ zd6dAcnC?t)|KRmVd&*dO@PNJw z#ueIzQqB>5$k`%J72M4l63U^o0Es96EA={k1zaOmW~gqt>(=mCOHR^b_a9>1MN5Oc zJk#>Z0LIe^lT9}N-c#(y-=C6>JH!~_Q!IN{0(Vvg2crIEY74gH$>aNd*q_HCK+iq_ zW}P)C{)v9SKcCMW@3U)z_C2+peoafW3u=eBV&X8G(hh|TyxqsM(oJxiM8K)D4!evq z2h~7<=A*RE18QBk$s*~3iltdFiPNnUnP%G>$3%A9|z%=6$wZe{w(^JF&k;I?zEI%vJ3dW9bk^&}7WWv#A1mzZJugRQbTs?zNA)EKrkK57O!2y+KQ(DtY|xgAso+)> zq7Y2XTn#2ehi@Pr_OY6VA_(<6kF3wP~!|^YP`I& zuMA7q)N41-wZq9d65yr*iP()Sk&j&=GR0& gdYl)ivzL0WMe5%yKp5P-H+<)8VVmZU3XzTNPYEQsO#lD@ delta 112866 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∓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

KLp0(D%1F~PHlHo~9gEI$MKh95(_>fD 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�ic-VN@ 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%0A56pn->S&F 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 Cj=!M* literal 484080 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

%!9(icEM`DES1 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

eu#)ZgS!d=} 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 diff --git a/lib/3rdParty/tbb/bin/x64/v140/tbb_preview.dll b/lib/3rdParty/tbb/bin/x64/v140/tbb_preview.dll index 1d9fc5f6ad63bef88fd75c1fd2683effb1c725f8..735180808029827e849656c6d56f415327a588b1 100644 GIT binary patch literal 268560 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�o1^Z2K11SDK*btZHT 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 VDckn<>U;ghq2}KVE`40*{{xHd$YB5g literal 266992 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

  • XJ)K6XrGYofpI*%2K0)i=aI)A7MbC}={z_d_?% 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 diff --git a/lib/3rdParty/tbb/bin/x64/v140/tbbmalloc.dll b/lib/3rdParty/tbb/bin/x64/v140/tbbmalloc.dll index d6f7ee0f1b82325ca4abc92533374c6272148526..cee43368f5caae98d5649e20e757d1b9a1289bf4 100644 GIT binary patch delta 53359 zcmcG%d0bOR7dL)yAew*}RH7&#QE|lu#RbGALC_lwO4TZ@8&*r*s#Ft2s|E~K;%%yR z+9!Rw+SccJx@fD_y4AKI7H~)HLbbK7?WL&2r53y8{hqlApzrg%pWi<}KA+sVXO=T( z&YU@O=FH5cwxsFCvrRYVJBR=0r1t5uHzx&ti$Ci(=_$bGmo`scjRxTdir=oZ|vcAsPvr*}su+fSo`BuMCw6O_1;zyNiTFtbNeW&Rr`6 z;TZlTPuPkhK|=MG2KXt04^`BsPa(L_pKg=&Hu;n_<y&-MbkInjMgf^^ASd6m@O|RybEm~6NV2vUFH~$_EXfn& z5-j^jS}c2o1VKnV>@!a8A_Aoo&8;%LSdw_U@UXqLlx!4H$PpoxYwr{X36Kw=rm5sM zUIu`~FA>;d_fmANWY}RmMA2)D?ad^Qv8tOWC{fJ>M4WSU_^(x7?TjkrDk_175RvY7 zO@OFmRHh``4jTkLYELPV4LG;xUKl&v4EIUL* zN;0oz5gQvGnJ~$p!FAY2Y#Jj;uD>;gH9dV)E-fw(wU-H^@_7`exB4mek8ru`goiB? zCD%1bK(!=46q$IAM5AAhA+``Kpo|Bp?;c_A^o((iLetXwT`|O(1>*g)U*uB`2%6Sa z;j0Oj44;k;WHGTB(|dyG9~xQxGWp`CEN0; z0G!k_-E4?7)z>TkA>S_frHTBF>&M~tf&0v;$ijBDh_SS^8a^#X9d>=mr6%!}z9Th# zUBBy=bT`BjF`)O^uY|t;7gYy|suRe#_&jUdGAh*91^p6oVeMV}05-g3M`ugWPI-X! zrzY`rzLPaQTt3~BjzITUF`>P`k>!N$E96*w-gVOF^7$-=w7*h*a75VTFC>qLO2}uF zRca-kF{1o!Nlg>i#o_j(y=J8Cry&tvV%S{)HlDd8`B+U$1N$PX<*XiH9Iy5Jd}Mi` zR?gZ%#M<+&qdsEk+QpDrn+(R;Fe19yWUy2Mm_-95(_+|t2!kWRGIiRNQh!I(RIuZ% zMvLJrGGdgN%d#UnM3BTf=A|WV*3rv!yy)Ao7bALvz19*Wc*f}@`D^7SI~LJiyv}MO zW{IoVIAaI#8hgrUN*tJ8cvo^S>9&uUzPA`e8`4Xl>GBW6Z3G}dK0VEn?5k|@iL|2G zaVDkRuk4^PRUF8)t^125Y;fx|mfyOyrnWVEsda_;Z#J_{AE&DPqHOX(2`XQ9`?X#j zv>pcMi^Vk-=&KofRBeJj(x%XRO6B6#lCMHqTSAIYYoIu{HUUB6X(+OMLGT$DM~j5w zh2s7qs17%GtdrK>HLRV_hlo8c!ED%FE`>E{70ehcI`V?Jnf(=67WU6D&X7n6oqL>B zw(Tiqv%lJ|cfJ-ynyM00+D_p28UF>i@SG!RA7mTg>iXoZJoy>G{-jy{B>AMzxTqo8 zR$pQbN|2UI;95@db+#gj&t&wFT*-prg&<5&JM~eU#Q@{1@_LnJo9bESsuh8u8%C{m zxg&EbDVKjKjZH1;EZd7qyXcrGNyn@ZT!3o;A%w1wQiJEr!u*B8#e5cHs@9Bc#dIB(_P#86g3Y$% zsU>E~Go-{&coChEX4t(oZZlpip7|nx192~@vAfvT4t>Q%?0ko(WBOZVy_9l%*$t~Z zJgw-7Ok463X2aTHkP)kVh^^=t-TWkxay-4z=deTm*_MvOA}>ht7o>GX#2N~>0xMDs zg>SRpI}R4VV*@&+cER|(WQ+eXBj`egJ321IJvB~e#ms|;U?mM$HY!u7{)YXt)ABac z_*_&N_YUxo!q@nO#Nz7Ftb5$hG3w}ODHW7l0N)^YO8={*;rVO`J#G(7i4c#W`R|c= z(2}eizfsYc(d^C6Q9F;tDPqLtum-UTWM)-eeib+DJkfQc7(6&s6xiKvJvAYrY-0Ds z$G0^LhXN<;Y+)$tTDNpqR_Dj6IK4}F{TG^2FNPW@)!jZ zcJ;9dJho#)0UwA`$6YU;)U+Y#N`2BR&Ju$nXFy=9z+^ z{M3sz?bThgauDm+tDi<1#BzG&iO;bgdQBI9VZ(ZVC=O>gdVl)(^S=R2K}j(Lr+O{k zdG+Q=lP!}l%bTV0v^W!F%O^ql=8$QWE6Mjj?;Ochr!f>7MbdCj<#Al>x!Ht7;4p_3D}oGqHSzYTk?WO|8vPvMi~ljU+d1 zWTNrp>ar$~Ct?gH(p>0Evt{~>>5Y3C7MB|{heap3S$y9d@gCdMx36-Xb-i85n6VsljG7;3~zvXS)hPMA76K;TXI2Ik3Lc1R;5e z$p$RNu*lXepc4Amt(a4lxgEV2kvJS&v)hxQhP7aIIeB6{(4;!e7xx-qR zuWNeW-ej3Bo?tU9Gc*ftF>`7R``$8BbK@o}wnU2wY+C9B7CvG&+m$+X(}-YZAF&|# zAeO2-zZ`Ky)U+SSHm9%DZ0@+T{m5ZrOn90+F488C3WsPb6Z)g&1&4^?Gf0+pE+2J3 z)RgyUgRBlszG>$N)(1-jB|cC>KW2V#tEw9`f+k|&gUJU**-_1*0KEpvycX?}@?k57zhdl9Hs83g-yNq)GE)$<%_BwCYP(6Q;`6QG7RjPEJFx%0sI zmZCV8ot)5Le1rv0?9@-YnQBUJgNm{y@QOC>6nRDG+Nvq26xCBKjnx6s?2(CG#aCIu z#CUQ0&TSLZMKNUO?T62b;y89Tq7M7zn zqbn1$Z7qI)TJ^^o5nJ1ZP0#Mgwr3yLocxM8XGUq(TxGA$jB5AQmp)%w(yCbM#D}{! zV*RV^)XZL*v0r`kST9i%`z4iW^BA8)9&TfEug>IBVuiP%*BLf*R-1uW7-u-4pgyRzJ2TyEik<&V{;xNH@46rE(1^Q&KI0&zfnIMQi+7o7-xZ4AxSsEG1!GV-J;rN~C{E@du?-byl}I zX*-k$&~hV2$6YQB=H>nM&HVqp!kr0^OPU^c-b4?1JPHjQ`76WjT4nqq>a!R5Q1W<) zi{_A8W$HDy@rj7;O)xw|swDZiIpns|eJhPdnC<3}GQYC|a>H%-Qg-r*hq}0ueOQGw zOf6({1r@Y4f;*3owXFlrWoTLpH{?bru{;=cM@+S!pn8u^=tQIJiKAKIo*f z8-p^jxF(aM0qKd72jZCTqY@=Qx3bYHbJjsBgYv5TOw|dllB8~gU@1l~5I~`(K>@lg z@FC0vP(nNuJj^Ax2EWFuY&+K6029jcYHq-8peV8&UJr753zl zGc});v&ttw*ZkFnJ-_e`mYb-50(AgC7P8+;1;6udO1632oMFFJ**u$wi;~Ppdss_; z4ztcWsIrh;hynf`Rl+btYmx&UpJ4M?by5MQA8-)tv;J1ap3G}E_cUC>Qh|@xVv#&v z!flhwkp-P3Q=MRP1BZE~jVfWykOBNOt6b!m&{vQ@FV&=CLSK#1QEkp~R9i!K8m{C^ z1bZjOg-^Cjv^)$JXA{S>()(TKj-SNqiFe7*V@^*z4VUOWn|v1L=UCZxN|zDvu!O?F zQ{pa+%ZC73dlgnCGJ;xiGnys0lh4P?wUs z5b5m%Aw#Z!YBbqAqjXmJjMcNA>^^1mPwe^Jp`yf2=C;wryXwN14BsfRo4Lu(HQZYS zc1W_yDRLc|;h-5vgC|o;feR45g+<91OATZ)cZDQmTc%m2&M1}2n*ur56NqR~&+;Ld z>*)5(@Q1O^c-TTiE0cG5mWld1yOKBgo)f+P|Dnf;lReO@!HcW>mD=RlaS~A#pc_kBOFPZlF!&G$3^iowbZHqQfk|$?D?fpn(Wo=gQbyC1M5g9k+HEsoz&`0 z&u7`irM<;ZS@^OP@g}n^OWV0QFH6+y`knp0{2xy91X9=*xj4h~Jn6Lz`CHPLl6*Fe z<_pq@8FDE!;o4&8&FnN9~%aPiV)i?@>v^bqd6LL@`w!2Mm|ygRz>9cRsY)4oM@}6_pxn6G?QZX zYh!EBQH7>!6}>c65K^It2U>v(q@t1Pq-oWyJ;xgl1kmh$bQ}*zB_u^K!~!(3jVtom z=0~?_4Exx)Dbbpe3ic#|R(qK|B|7-4A0R*PPwAqO_p&onda>}QH*cDXyn85bzlV-c z$4-pPwYit7mL&`wC2BX>ruMiz`#4GVG+tqxTFU;K8Xf$0Es(}cYZv_MExe>m8=)Dt zo8?dIz;--+vRSzZKLoIrpf}jFD>F1v-PpO61N+vzN3mzfn{*kL@t0j`X#i6S#<@!Ni%Wtpg-6Hz%|< z2by*^GZ#d)oJ~B+wz`|tG_{mBAzIkNf{x-b_FO^t7SlS3!l%F|$fxA*rIKnBt0)+# zx$)tqHC@|Y?}%EuGeWq*?Y5%`k3Sm9|k(K*A~P&PUkz51xE~8@)|F< zTxW+hXn}o)HMe_txVdOia+x--qsX4?)#fqqT9OaJ1*T3-Qn?v@2qAN4A@dx}T)8II z3ucmh#nRBy!n{F4YpW|54;&RcUB+3S*%PS<|3TJ#SQYCQ117n0ZaAQfg#$AOzCeJ!` zxpEFJL8+irFe6AgzZm{)?Sc*{gHA~TbrEJ!B@Ax5p%al{@0+uc)jrhT*<2-z;yWSU zacb{9G*OBlWpcEKh+un?h859<-9&?8*y8h{^?RtLd>h!BQj%s!t$;HjSFl6CwO37) zSpw%Wx&i!}Krk|W?P0@nt5HnyWJF@J_lsPAijgOSxd&|?i;@9anWcjWl}IhN_znZTlWiBvw1ZKfV1cvF=9wCoX_cpR zv&!>fXfH{!%9mjmOb;vpXp~Xkm&k{u62+8e*i#I0gH7!D!uAHJ^LpM^$8TYu7ba=8 z#j<;a@lURcMFoya++kd%T@Fa}8AHLvH2DM>v?f|pd5rrYl{B*^Qy*d>9OL&eU))CV z@LU?pkpp=ZY@Gz$&xeqRD4+2tUVO%(+t~AKTRVS+t+5Z85Oex{k~$cb`{1|)D~*r9 zAd#zl#u6mRM}5W}2uW+vG=|1$OWG6r!}cR6h0p(5H`nh$4uf(UDEa0)@^&jFn^k$^ zz9^MB9_{k>A{+Qjs^-d8)_z_`_Ubc3HLk7f+%u1F+R{Nk#zk#0M*PkO|I4924igzQ zzJ8DG{a31fjS5Y<$9BFoNS~@gom5DpLN#?f?O*{fw^N1IsL<0Yl&V4_R7j&jq5g9D zyxf`J*sP7ibt>?}Z!F}U;krZ>n#g9po6wd#1Y~xiV`xR8)R273+KAuS%kK=*zpp~y z-DNAbCFxXP%U!~v@1#Pr@3P0Ruk5AwQuS}CP^(|rg!hK%r>W4_cUZUgt@=~xRG{WIOWZn4AF4uIZ>z(&h0&w`*DAw&8wYS1su6>jzx5yo{P{46>nJHOqLRW|S{M z|B(uv`-QV(u?oHY3v0DwsJ^EPJ^l-OWQU|bx0IKQ{)Lx&ONDA~@SIasXxj~*GgO6U z-(c5Y_^-ce!zM~4AtKm6+TFlG6Q^Q{WxTpRj6?(dc_tbn9N~=LHT68LK`)3yP!EoJE zywri8*?YT3>17qN|IB{houVJ5LPUT$kOJG*C@K3;|T zSF=a=PSzh?#M8c0*#5mw=%=WVUE%T+r9wj#HgDf3{n3S7OWgU1?cetweH0)JBim1G z-u}t@Po7lMeq=}X|3@FHLbe~-iceZqUyH1X`|K2B-TsgEiGj zjo5mbjbArhe{L>MUT~Scyl%4oX%&jN%zj_@gg#V-wq9cMik{HFGKc3(yTr~GjnR)% zp}LE#w;NSH!K>VLk*#pA)6WNlDtlgJA?u&ff0x74wq0QVTt7!Y9}v>|Utl5fWPPX# zUHO5{lSk?gJkE3e>j$<^&eBf-gq%ZuVC|kAr4Lo1KhLvy&rZ^Bovr3P&kjF3N1p>2%mX=+*(+sE?sDJm3K z#Rk8y+S#*8z!46|C_c5-8cMXWi16V^kmzWO6BtHxd`ysW z5N6abXj9 z{;NRKsM#kdx4+q&zGMep>ZmDmvI{S@ZN-4tzsb`J1$@TA1+3XWqm6Mu!`o~^=k7sq zpV8_>n>(=S|7_=6fQb7fdG`lxv6LJ;re?l>`oA?35`G&AKI2;CZ`91yl-u9TerH(p%i~&i;Edp+P3@E1-F(L5PFC=8 zTjNK_UEjoXj_;dQXku4q2mm?-@DWBPn%|VCJrB!B*8XxzOIVQhZz0wvF(WDGGqP`&^(K6nVUHFzOk7bfPe>9koO=`z^Eue5NM zA;Fg1tP(!nO2>C;?y$LtK+uHndcvLnL{>A#^&PUk$bjb7GVE>G*RpmnGN6mFh8VgY zuL5lAoev`;90-*v9j$<-l533;ds7wHg>vm;WJZ6ntFMIXm#GEbsbqh@(rxg5l=EW@ z@ncL>Gc5RjV!Tz!vS00{zcP{6-m8*5|LWw}x|0Nb>&KT41VrINHP449S<~10#=di3 zo?ih`p7v^5=MWCVQQWY$JwAaM(b-H;wAn(&WUJ;68?70 z!z)$5)C`5k*`+sz>1`_HIL^9n&eGRp^1{)_+4{``^;=cw>Tz~>v!tJ*La!c&ao9)S zNre_1Cj(!9X&f(?c$~2}2kPEdp+oG{o5}jeR6xGUTD>(^AF4uWSJ}L`%=&|4d9mA9 zxb3_~g-WmRobf8O@(Ry+DTC*Xzd{x0-&UbNFSFBckJFCH*r2pd;S8;EFRnXv&+bmcnEt8IQ#>Dh7WSwuZZm`?i1g( z2xPer#HlWe3S~L`M>fxZTVD`T)tj*uJ!10={fRX%X|Ks#%zBq}ZSw}w?E|fHIUMP7 zIPE_s_>3!Z*@BV*ZKte*U!&~LdUwd$DHt+xSpP5B{*s5HcT5K6fAD0-Jp0G!rVUC0SbyJ=pjnH`!+i}ns+8)XThb4SQ?IL#S zU`NgJQugb?4w^}&EV8tprX>!Jm$nyov-zd%oNpZD+-NW@HX))x@fHze3|UBuHy7_9 zi<=g6)M8M)yPqVzmBnGMcpv6Pe&EqVd9-1zT|=3^sinFMYjXhE+_U4de8z|h%GQmU506ZS@L(Id+)RY> z*|;N_2PT{kl;lTX2U|0hS$k+`A0=OY4JjTIpGw*1hx=*X&tbO@e;>=YO-z_Ie8y8) z4Y`BpAZx(6g^hueN0yle(t-+G#;3UoH?u`cB&j4Gx0Q&vw=K2e%-%4$eGm1FUl?N)bYW@(uvPsC|W z?o2xrI45bY^1Fy3qH|!h=0XhfOjg{#pfecvB)4>-%&a_kJd&+B7OmMZn{7T8AG5dx z>T+YpfyQT1)0!;!K*9b;GYxxEmonv8Cntg9fP1tVA?l&`QM$6G5TG(R`*Ff+l{EpKibg_Sf`Mll09#L~ zjAnly@7p;Vr&`HB4xK)47P6tSI3h3-<-f-EBc&>jYFYM)C{0XDw(3MIcI?!?>15dR z&{DSTL_73c#fca^e>@Q%Y%j9pG2_Wp-D5dv$xquIQ`n4?!@BBm>TrQ#-GP&xdj&JG zGKg?b; z;dkB=myZTwpL%vH6wJ&2Lp>b@m$j79Ti^15(^;IGl7RiRf z)zHFxU%!4^pU$y*mWA77r}453&(Zf9I4`T(hH)ULxa;s%mac1d6M0v6EGfpoyF-bVZM?2g6@O*B1^%<#+{0BX5)|m z-`4Ukp1VW$LZh6K+}laKEpl_8aVu!Yfj9Md-Wg?D4}hwsOd#cECM79xI@A-~MbGO| zaX_S1wdvn8@DC{H1V=AhTWw#A$0z3$1tC-BhJpO!~M;Xrw8{uepe&damgzjH_muBG`+o1 zimz8LF;jVe(7yHCciGm{U1u*x0oYVty2fe8F`W%mm*n>H09M;n67+@v5SVt~ZAr<8A$qB%olq}d1X;mj`FtB`$MGXT$VIa- zrd|K`B1Bk^W(2r)EXTFn&bEBnt!JKqYr~l3?PPu!KCH+wEG#ihDK_-co&^Co;8|E) zl$xiW|73Mv#%S8CVQs$ZlRANhL4vBf=nqP zU0=c0ebvpoT@;(J-Crf9jwry8+#}X#XcZ^Z?4l$<{hLFe@K>r=%4iP}+oG1G99<4> z1j|Qqf+`YE8}^h~eye4JzwR7E$?9FaeOx)FlsL37s%nB!u!61rx?SrWOME5XRUAQh zJ(zg~!=)UL1`$yr0O=2|`9}$|A4f8xzacXK4CN zX3lT=I!Od!DP*HwT>CD|=QHYFRX1Dgj((DBdAQ(+CkAK8qqCK%P3eH_cvG5OZ1ok7 z!OgD>`JmO)tb|0jx;KQKTCq>1rDSP;PD^jl%;~UzVxp^_9_P&*Ow>&g9bWmL-2ho{-^A&9cw5x>jUjm)}yBnkUr615K(OkJ0yc`ooL-oo-Qky%563 zb8*VwZUP|%)$(aS;Y4)@PWIf^=;6T7BRv^Omv~H2`LX|IpI5Ec%y^g$|90SPzukv> zJUC?f6Tc?oa%Ky5lg~I6KBSaUa~wE)_Q2hXThP~rJ);_U()Vtu)6p})62qSIocPju zhTLR-ersw0tv;jrgGQQy^*9?Z+SsJCMMD;%o8>yGN5FVE4^Iy*-)tUf{ajdAH1 z=Nt_!aIBf%`&IJE$?>jly* zT-Jfu*p8W$UN{soT28xT!hXd9$?cpEyX9%qTHk88DLmY8g(~Xa6+Nt;Q1O*pePscn zZ7I9rhyjLYM}a__T*%Mq^6o#O9Kry={du~*- zw{BJp#VA2o!L-Hf;`!-tHH^!|I!vc*dy7dwbc^!qbXuAJw^cii30h1Iro^#h)hSn5 z(1k}e8^*F37kYOMQCDw~G=2j%35}gbMMxd7T^G7&G=tc87oxJrD)Jeh7>oJtoIMhh z(K3oA0XSPW@MY8l9HyfwD1jf=1YcBqxU1^x+y~|SH1o;XL>CcZ&)Da&ledQrnUN8g zZI|gB7;{Ynr+LA1ECqqHY!nP`juO^&05!+RtQULFdn(P3Kk;;$CpD{jW&jQ>-_vM) z`mN+HAelGp#+MU{3h2Tky=E5`&>eHh{d^US7n{3)tR$P;O*Twf0a;~ec@Ri+yPCCO z7ca(WZVcOWDRXeNt)A*|$G3^+l4j@}128o&m`w$Sp#XJYv|+bya9AGV94%;?AFO?H zHd}w`gCwdft!M*LA-UI4oiKN(PMiA;qB5<>OJtR;^HX3S0}9rGg51k(BWGbea0>%1olkm&RanHA# zi{|IyJsUqb82_|VEk`By)7kD3a}0Y%EM=#!jB>WxM+8Z(QuqN})NTZ7gI&~Msocd? z5&Tv;ZWl46$VE+uOA+{p>l%R+&k$~6zrqi4LNBjMA%P3q4f`KwrNWg@U-bDfceN(f z6_$4y_R-Vul3@YPUb>nXeUV5*gL}bAGuRk46aCRq?T_%8?5C?~p*tjgj-Pk(z#qFh zPwt_%e2cZ5eK76i3{Y16z$=K8xxo93kD~;gqoO;5m8$5IXjVVoigQ7E4W~*QqA|Dv z(x`P^LaWyv{zOOWz>xkecY?G~7F?qW96I9F3_3uC=2tGb4FAW7d;zpOT4s3C!>#J1yhtHMeL*Vtn40L79X* zMvcraPya*kUKy@`D$Jlt-=Z_R9J1kr9=x-4FZD>UoWXqWTw%Q%sKkL6n89 ztueG5i;+|P96+w^CCjww%=CI|CwIfP7y*+p2)yJ&!arrI)0KHm;Kf*SIlM zdq@SBxj_p94JO}&1uGC`^ z)P8l2_=4N?Yq>Gv(XOS4|FJHfi!^)x9QOXOj?NE(T|N3dbO55UCYEESY)6f7*Nj&0 zX3Mf_C;Ul-s0Iv{Ntk~s6iahNd1MnQ0r?x{62@=h=|KK3d49T)?Kn`T{rW7%CMnLw ztJ!0$*^MrmN6kC?-xwmY?Z0$#9zIL*;THhzrr`^X4ARAP$`V($>=UdWi;un>G8$vp zVa$+Au#joc$<=FtBLgWJq~^PjT%Y-hEBUSg&GyN##+vO53=VVzDZm~i4LF&PGPTqg zH8v1Qb`Ygk-$4o1v-Yu!zXd3!)JS;o4A0)8_wmtp4~qD{mdmMw4)_64l(qpAwSe12 z1{XPP(O(0r)c&%!SK=?Js(5b@%fA^hg;wLp&?JySul#Y56F&mtegRJN{bq1m+0B&| zS^oAObXc1rsYh1yrB%IW=LaZZN#Eiy*I1!g7fN=A93bBOo>u&%$WF`g&}vhWVi#j zE+3q>O#W#rlBTUzO4T|VLFMFsY%0lF;n;-pk3V^eNlJ-HdY@Q^Sl7b~7mXxrGX_6m<{l_|+XE7%Fz?K=#mp7qqPOzqwEs0mQJ_8k-Qs(Gjm78Nl zAW8A1bgMa~ZW&H+IhUKO^C4k2`6+V^4$U8>aazE?qM%%X7}>B^OsQL%O%^^xqU1IS z0qvsON83`cN~A%JeX76dfcdk1!CW*N(s)!^hD%nM=Ar|Qo-w$g(UrZ0ulWujpI$9iALeX^Z>|57ZB0X!N3`@R3R&saA3u_yR;O zW4(v8W)tsp(R55^EAK>G6HhBofr*AaBkegTFhFvx&J-MD4131H3@EB*rk)uU*mx77j&JoWKS^+W!Bw0TA2ZW({lu zu%~|=z&`wS{8YQ8$ef33?6~=Y50~IJq}7v8lLcNg<@Ku0-Y|&9&Kb#5#Fxu7HmVab zal;j4UP|&2U*W&&fNc=Bl!>xggqBUan;g{zrm?CqX=xcyepva14Pra)F3`jdWU;@! zZOAj#G_$$K;3CBsxYM6zr+%BF**uN)uIoGiRovwMJKQ5DCm+0c!EoYXlcPeJhT#Ac zPOh`cr%1#;ZAPSO?-sJ6y5TtvlYiJY%mKJ)lmt@^wptZk_(6}}1G#mix1bm-;SVmn zC)6s7V8KBDVgGMJExy$fu1udw;u&a4DeHBwSKOlid(2JskGY97=Ef;PK70CJALqaP zBa5~f<>NHD45ESZ60R-Q^dn|A47P}K{=rte>=b3h39)g|BS#$=5v4UVlq*;i_~+7b zwiJlDf8=3jt4#T@2T93w2p%S3KKx$9Rk*^=H2yqlzphI3kH6!v#*}qvCLe#wr{A+_ zzjtC=o{nN0ejlb;)Q_F~{fW-cKwY8>8+HTrR!>H_;(QcD_pE=FbX=yDof0-im)RYU+LD)rJ0{leF)cGoe2-}v_L!F83jQ*CTG6sRyl3MV zj$dR(^2f9a^zSYGl27JgM!g^T8>LqaY{I#y2fin(XWIzAS%CXc@TE$g{_tmyT1r9_ zVUf#x6=c>{xsGzPwyI`1#-gjvysX6o32f}2vL-Wuo%^$c=E;2a_n+}Wy|E7P-HjFd zuyKD4Fh+q}q@PUbiIAm*=A888)pqvJzdAbY=|!vaGTf`P@e9Wf}8GpB*6o8I{t+_-HD>lM&#%l$?btyMfDpo#J! z|G_xs6Q_J`bq&Lcr#S+M#>G z$`roHILfE(>dyew&kOuT^(>VYv_)HRA_r$6pv&o|;k$f$$^9;wv;YO68CzoWcp(;$@BIM5(hV3?OLugIr6+u z28jv7Qu%%k7M|gfjPZH@Ue34$iVw?OtR)+b!J$Tq;rsR#-m^hs=YIr?rXF_e8%XZd zZ2Z709EkF)p-S!bHFt|q`P-?u-JY!jT1i3M=ww$ssjwH-!E!Vxz#Hp?(brL z2{v#oS0lN_8Y2{aBq@40f$1VF|GWeGzNFN9Em-W)A}}*xUzgmF>$-WnYQ;>=$6dY4 zwPK;BPgk!`E6yB{KlG6jkc7|S?c`r1!`$LV1g(-BVfjOcsEGsL^?$DHSmNR8Q*<;9rEP@ejfPa=ItmblX%T>T+nqSETH5^Gvo9p)`Yn1aa(`DpV49whok z2&95O=~eyid2eu2v9o4>S8se%G0vOWRBZ1IM`z=sV_42$`5Xj*JCezhLOaQ@j3UTg z^dbhzmJ+I^t{O)PAnDrlVwJwp%6xot2|Z$gvF5;*$5CbQ_o|_Z{R#Tm0*rcf)de!h zr7efudx2(;BVSgpUy-LR7tr2Z#?&s(yEe1 zG&K(6i8d6}&*PbZzbWu%(DoJDiIvD<$3SS=fFJQJ_alZWm&&PXL*Zf0)3DM_RL2?R zmG6j#s%k8fxV%21+#3gz3q*FN4O+M`%#CGr+V3jK+C>OcsvPmWzi2VQ&XUyBIKjp_ zz)eTkX&w2svfg_*MC=;-5z_rGqXM11-kvr-a`hL~-ZM}w2Z~$T*A1Zccqlbq) z8tB8JpFdBeHg>u`$tkqgJ6#{{=}nhZw8~o;oGMi$ zbwfIN`!*BXXgYQB?hF-&q<)XxD)<^bCU%`tgHs4xs5&bb zO1Y>+C!WK}3p64yWE)M`q%hunj@oxdDX0o?+kO(#LCb;)MQXI;#9nO@>y(Gi;Q1T( zco;t003}u5+u&HPvub>2=u8kieuG@QQ0&5%mwc*~64S5Av1-C!R~DPcDXi z?@>wq_?rO94uj8l5`N`|Hqvsaex9v<`fKmy=3e9ft;ZbH$}lr0qzt|?Nq zG`Dd3fs{i6j!0Kf5%LR=bHIGp$-M)fr=TSoZvkKxqg3coszVebZc8uXJS7;Npclq zFJJo>GN6zDpunwlF4#>V{}Pxs7jfm-#|=b3cS0#qgslCG}Cu^^IM7$$+`W&li_4>xeg^^@RAfT@EP}U zxBMq{Lp1mg0bv6+B%%EokObvU$QJas{fz$MEExR6G%1G%5Cf zN*1^1lG}QRwh{+uLfU%mt;D4fA=sS=a$Tsk1y$G*kKkj~Q>tVC5h1p2aqL*5ub!lY z{d2vybA)Ko{SAd)qg76N7e)Lmxw53HFeE z@U;rckJvgZ*V+(8{iF;6A`G@Clv`NUqfZ8fBJu;|RGvgeL@Y(1yhaiEJi^$S8s!OV zjX?3h$F>$nqPi;wP$lq~aOvXLNS>h#f${`0lxu%LCy}_C`}x*mhY&tZGkvU#Y&QkF z_UPj($(1BvMTrUEGu{{+Ai(EWp}KE_E|`}4sXR7{d}n;xXMs-rECip#W$$()geVKK ziRVB~Fny-aSK;O(N;!;z=Jj=8Mv`kNzO^c70-X4q8uc~kcE`jaUikyB=Jh9)Pe4H8 zY4iFM%2(cQt;K;(9GREtBQ%)v4avr0NT!om{Shegr262IU)DpRjS{&EORog7N-^q) zX!#r3+Ikz}6-ct<7@9x&9Vk~d+T{}+@h}m(B8~pN#R=tEq}2l{vw)x;8Vl4gFtsjU zkfTREGIQfPTGdB)@W!_hJCK)tc&|1wF(ti-hjsETNv`+#EUl zj8_{ec8wqtLg|D4Lk^fn)h|J|ygegDkNAprf27z^Gj*r;e5BZ>^9*c&kUCYKL6_9D zRYn1ZBrBG0G`gyht>8tqCvZM<1Pa5Pps{60D=pF{0#;HX@yZTl^HUz7YyqGHqz9sZ zd2Q{)?ny_{cCmExj!9CrL_p1_H;doJ&`c49wG#t!er zc4F(+>Bw@+5S~$MXrZ<6_ZDH+9p11gu}8e8@^7DGxim{#j28^lRXk`GUXYxbj@9;z zy`dN@Imwnt$3*XAQDS4#lo;Uzqtr&O|5jOo_9UJLVWIdR0ZpZK#*y1O z%V7VgdGd$OM~txkTYGTfX-9Jm`dYLOK{bNFZfX5l2jjXmBuL-NN2Ek!5DIc(IwIk- zhz|JIVX!w94E$5#a6N}z{t!&a^^S`cBNK+Apbg)~p@OFn->4wICs!bJve^B6Jt z@o9vB+Z4Z5V)B_pAjSq(!=5k^6~SmoMNx>BC+y}2sQ4_#6OI@Eig#5!YaXL1M;EMM ztBYPVT(Xc~dy(?EI-mN$yER7aFmfnLk_5;{k9T)<-i$;b%BZDHx=N^SWdg^Xfm0CE zplT)gH3gC~t1->Jt=fyjH7%QaC$<+8!~@>7?V%N#H}}5NUW|>}7Dgqo zvhx{V#w&z9wT$-%?@O}I{qJrBN zhkZ_Z=(qBjw9s!0ZjE|;p(F9ITsJ5!^faGn3~#y9Yt!VzY3__Vxxzi|j{D(1(=i>4 zmt0{xR>5$zxGI7>*ADj?(%jluo&L}tq4Xg zEmHSFJO%f|7l8IkN}c!l4r0f)r``iWhW!^KmMkpS{<%_ZUb*(}O7F1_V#3S{#JDPS z<=Q=X!GtB;O;=2A?G8ZpR;~(Dx%PFuLMU(z^Hsc&m?qJRfR2}P89jE4Hwmgbu{c@# zEb`ECf`i0pIm{F4eW;_@!8saA#@E@#pJVwmlRwAv=S2RT#GhIG`6z!*<D{5g+57x3po{>1z#Gh&lcJacy z`ExIS?&r?~{P`Jw7W1dt0JX&`hg6Odo@2*w+P?A6`%5PgC&)ePyP+eix19Z(`>_M? z3xM&SL}^9-G^l524>iC2f&8-{fG0ixr}<$s#ush|iiw8{k|06e?Qx>sn-nLuZ2$LN z%=t*BF)RP9bp6%mTc3fI4Rl`hrMuoaabir1csR!JS;2*D{&259JmwD-f7ryWR@BZP_V$OP{o!nXxWXU4;1A#Phq%{{WC zy7g)WE&X8+f7st22J&Bc0M2~?e!&ly$tu3>{_rgdQNOU>A5rNKfA$x+>kotd@vZ$~ zfQI46jo^s4x{P=9|`$NQD-p!Py3P`-Vo+2(G#EUIL_9P{V zx?peJ5b;qqASlwAKa9>K2AbD%X#<_qyd=OTA`*X;63F+?vW9%rp6!552xnlBkz0! zew9e8d>{?exUdq1uORJ;3CKKi~D?EmvQ6X@MaAc+e?FHBn+I9 z(0^jTzB2|S&*+~xV@5*ajD&>Vvj;vlD5qcYz}Y$d`uASA(4ISc$?O6BdL<+#P3_w| zVd`U!xeI1bZ4~d_KV0lGsU7O2AN>(+{4X5lI$nC)AJ4-#Kj%`M8F4~4(I5BZLLQf- z@+|WkYrC21uQHO zZ=V%swO9!6ocrP)eU##I8^=vl^X1(ar{>E?oVg?L<;|YND-QgZ%-)ZygwTJ>gr`sF zJ(u7(csKB!{k5WiwRj*dk>a``&V&x}=YwYmrUEqVFz-!^*b1VnO%-D`;qAO#QpJwO zY^3&HykzmLIQnNTXqG8hxZs_ZD)#YiOcnF`ei+sCZ`wG{dvdJU z!#i_?I4+tN9xL%HoUWE^4105@i*3DEM~L&SEuwWo^u*>uoBm;fezEpKP_8C>=^#8^evucsHktMsG&C7~8S3lOTK<2Zm--G1$0Q@SELCXo&YdmoD~5-HhRW z6u$*LAO6$meK5w(9mvTQ*aBa|x;TV|@w<$pcw9V&@!+U7nk2siON;7_iHy-!M_scpU> ze2m{Uf9mFX*xP=z*go1^gw+XtakEt9jbU%qD6#v@2%QiyJ5-367$QXU*9#Hj!*j)u zU?HTxP6!#_Bv)*r5t@wGB#50tgieR_LQMZwLhDT}Yr`v>=Z0lB%j8mYMJMF0#JU~} zg023F8es4F(PC^-dI@IuEuc8G=t20tGDs)9O;p6h zpJDA1mO*^+yWmIA0DA|H5y$B3yTrSC47Nre=&;ZrAyjNF1m_Au2dp>4W=9FZ{o4xk zZzGoD_fih13J(^-4;cmB#CAOHFygla;;*z4bYDgY6!#r|2PmFed#5FbyHA94Qyd7V z^zH*1Mch{i8K}Z~1VK@7u$os@}HO1_V@$K~eBLs3jg75E0Mg8I^1lR4NaHf?$D6 zh)HJ7gqB!ZqoRYRIh?To$3uasHJS%3&CxWeH0Nigl$2v>k(s{tn*A&o=Y6}r_qx76 zzmMy>y`S~$d$04}d#%0p8vUIoG-ZNkD##S_l%)3IZ5e^8GTjo!DE9bpaYggf3x|@i{3}Z-A#5h{9-%m&!F9 zplrdEi2-;RC|GcWKl9t*>+rUF>G;DSevJGu(9y$SIoN8H9{`iEy379_f+g^k4bC9D z4t72uoYz0D{kZ0)o71E&RmD@JD?a+No)S|*AJWU4^}5rawY}C4J*O{IoMCJ{Q2nBu z#Ye+bEi-L71HE>6pw3M!;hSY<2o z@{*X>XsV0|FQ&mSK|c>@7E6iF!nin?yVwfhIbgXnVxB=Pqdnq7Ww?YJTY=y4P?$F1 z{-!IVrFNz@@lr>=Qt-gqH*7C3>sfoal=#BB`Sn>xcxs!##A;))s8*H6OMq4w0je`bQvv@Rp``rb!{u z&J;3{do+F|kn2o=|BvoX;l{S24kESnWov>;?Uh^A%@D0c#y=&N{o-92c)V>94kI`)V@V1UN z_5ho|wUy3K+frk~^l6nQAfyEg$!x_sVEYEu7;sN}!P&9t|qWHWB+&2;k&- zpCxr0srZ?(8NhvhoOi%DZ)Z3OKHrz+jPT>GVV84Ex8`AHF>to@bO+^a#zq4B=&Yu& z>Al%fw-Ks#5=#K;`Ely%Jp49rpU!a)H=Sd8Fk5QZ!FU~24vbwU=d3Ag>OTiv-~1O! z3)q*L&drg!>6^l`-Zkuc7YzvX!YH%_^Um;aKG}lfoB&$qarw^d>cgFtWus5?V!a!LTOD9SAq#^{y|q&Bt_qy11dh6# z@8UE0KPz?C8ygsV4`8qIOz<08whyaNN%wwjO3DPK&CP4~rEsAn06c3|b_^(HzOv@6aE{*{0tp&j#7RUhjP|t&T;u%;Ko+ush)bqC<;_uoT*lLMIz0u^0dlMxZC9xbA-zB{K z)WVnL;(Gv}20pgB>D(@BB~}YxsEcm|d~CGDQsi?nF~*-3PW33XO8fu+Zv6l4cjJ2A z9sW=6#_YSOr@QMjpduc^%oQrm#J+>A+BET4pT?WVym zNFCdUN#n3knlUD0Vdld538}G3^D`Hw@CgWQWsMp-sLt`iHlH438@R0CB?=pT$~xrn`x=%#KmKi<}FE1PRh`rE>KVG438!@GXbrq zo49B}`b_qcX;hjN68IRKJ9kW0*7%HsG-{=c0VZvl)ZcV2O}g4Xn9ZG^zG%V1WR!aD zq69SV(zyv4$uF_0y^Ex?9(wC0hFdCbXPad<6WfWECfTngHWS;4m3efW*i39ER&9}w z>xeDH4w;8A^;QxPTZkRRs(0n%24X9*!jzvOb#1QLE+5vI4ricmDc++Xv6iH*dHV%cw_ zu!h1$Vkp5F8gi7$`f+fK&-5x z;}lj=n2)m2_RKs(P6=ar=U*9xy(nyv!+Pf$8~0U{KtTd4g_RVpp|G05HVPXke4fIL zcRl>sMVN9>C&H8ihci49N?)g*H3)&o!A!XXOer5%h_G4?cj93T(1+-#=vHEOQmz^` zaVVYGMLv(IDLg{CKBS%AmzsnQGR=57+0a~>Mc)w2D0?ZSQ<2U}eMhj+8AzuVI_gW* zw{XXx2+btakWh3s!9r&xomOO!`kd&DSW9*O*+{1&on3TNVp)gu?Ig@1q3FDVMVDzH zT@L9Sjh$PrZ=q96pc>pHv)QeS3tcGJA$_JIp~LMOXhtPbQ-o^LiEBcz(8ZHZLppJ- z2o^dW>EfYt-Z90+Bv@QTIV4P>5{v7c@`d@4{Fg^MB_*t;f(V_83=8R^Nr#JCzGJ!z zYed2%6j!&q&Q7|l&2m*YUIHW(2{(`~hjil7kUw&PSO`^g>(=g~2}mJ#s3^(C_Ph*q%*kb#N9$ox;zozsYl}zI(<9| z%SfpE7h#rom>K1o5d%g!`}kKWTcQSoNhb!9LPs)DgL)Q9LNUU07m6y35)snK(_JTO zFj~Y%BT#o;9u*|sspHqbo6taKSV)*c5sD$Kh*0QiNS8%A8rljO6FNKT@E@}~hY319 z!WHe$)k4@n!aNZn4TZUe{~4VBG8Q~Zj;M@uVu(zK8+B2nt0tXdTT@?X%f$vdBc6mc zCTS%G)54ua?pkp^jk)Qp#?$jiS4TSIzv!w-*C67f!MR&}dR9w9-}Q1q#c1A5$Q+~# zCY>1NyX$->%khMgPK^HDbxNlWO%o*|q~X825U=B%O&KjB{1;t3>EcCvG;MH?FN<_3 zT*teHm|wUHjU>#X2*tF+U1uSkfplV8;;yri&PX~wU2#4d+=UJjnn@_;G449w7`bLF zB0`$Kxa*Xpvx@kdbn>NPpfl7YtPv3wH+5nz5jrjDYDuU07oCB0b);*YNKtwQ=l72Y zm`T_`LNUQ2U1P%4q*H95l9xQ1K{3v&C7qIVVj?Eu6S@XH2~{K%GcXLLeH1JP*G>ElT#rhGyta)?!aXYWrTotO%`>kOpJ67kVY&|POHU5>2N zGck2^7uJx_C=&jc2{57ItA&(WZPZWK)PVkiOIOTPVuxP4-G>}C}!#I!qBJXj75=7%--E~ zYSKlMPR#1vb@8OrZPd#VV_NU*0~BOTMz z?A={hO+rSaaxu$y*VT|tA#^nRch}iTrzD+tD=^Vr*g(Q)5{lOX?mC4=t~rCynWVR* zpa2!Qqr@!1G!<@rG`Y3pw$Y4U#L5@?_#ZxDkcUk)h8NRb`6y#TmnBjsotO^0>x{Ba z&*FDccHPGMB0{rBm~_l-3?D`@SCcM>boPJI*+^%0>Ts1=-Nx`D!a5Q%qnttUu2z&p z=-5>GxPo-z9j?1hNjfFzlzb$eDpX(*p_+s$5uw|VTj;c;Q;P`QM$$rOAf3jvdo5aA zq9pUkt)`L3;P> z79nHPS`CZo_Uy#m*s}f^_2DxhRd$nMtQ4oo>gY%||*tt0tj}gpU7N z$ZVujiwNCD(<0$I(rH9|ZaR7hGZxDWiVI9DB6J&e3t_NRhGHUaKSsq{e|KRt3Cl!;7{I-H%=D#l29y9G)76f zP|^jHPApqA>geejO}bFhiRFwYU9fDXkT8mb+A`DgYo#t>(ISDJk5+x-W0}s=3Y{rr z6)q|Zxpm}rE`Ky83WM@jLplTL#HvW6lyr8|<&jRTlDO;GbZ7nPnT3R6*~DF_l!dH@ zbYdCBU8g2pE$J97r?~61q;oiR=+u0@#kH@B66;9lyHRdwvHap5p^ zHR)8Ob1u{Hi>mQYR3Qn~LP+a2?mFKYa>g{I6YDzeIwk39NGFzIxK2)=5>}JYPQu1@ z84)At;z{Qqo#tN#cqyc75b?R`@GA-h=W0x%ItBg=iTCzyV&rpU99-@jI5;4#;bb~a< zD`LRl0jBL6q$yqz;bAJ%tqsz1jaCO!%0}rIQ(UgJrplfxg-UuW_7ACAGgbf?VOzjn zZSa9UY%BOa5I+x}&tNatR=@(k8Egd-;pf~5FT?mYDJ}Re5DY*6-Ly48=p2a|!9_v% zkRP@MY{jjm0XA6AV(?8=trj2mfY)?FM04>$5H`JtjW3*&yE2xWAUQb`b~S9yuL3o& zU3d2I9Y5cN;G=!S$@w~9hRylOZYTikrj0nb$p?1F?@Ub0KPbvbMwK_!RG7_s9@_AFkS}wA`=Gi9zY4(3Z6Fvek7m+2Mk5&kucxx^&_@; zsiDyfXYAYv>|#Si>XD2s0{oyifNKFY{AOHA(WCIWA~L4|F97%+FwQGSq5b*hFBt51 zzz&=96Ql77IBd>S0WX}a1*eU{?Gt_rxO6OP3mMXkYue7nx3z5^kG=vw=Y2pqY}d_k zeAC<|z<~~XX@VX*G!XEDh;#F3BlkjaOB~$U$C^Vcyr=jX# zb4~(I!R9I!<1Ih``kVLqweK0t(oi zPtQOpVROC?s9?KpJK@_=ev4;p8%oUiPoNsM>n0Yyxy9o-3@=kK$m50&upA-<*a&zf zqI$vOX5nKhbSUL)^o=?ACKX$hIG@$x(wdLXm4Iy}Ks+*S2lL%p_i=91t}V&An@f|3 z#Ng-rDv$}=0M;d;{Sy(9E~#m&+iloA7N8B0Fy~0%5^O8DQ!?IdBQYh|4D^6)PQf>- zfC`yo3sF!Y4{>+!hfG*r#1)i*cwlQ6;}QirAwv#uZYKQ5kQqF039c+8tOK`t z3GMI4a{=QVFbg6(xW`g72NG`D35M$%K3f+02O{Ns7Vtx2cJTd|QH!u$x2(BtJ9FKV zws9F_-IwDwk9fd()(3%H1UOFsiePh22KK>j+RlehfL}!|tUy0NMmcW=YI(`P{%Fc* zWTI(Dp5)xAr!$~Nd5OW>fpXYp@P|PCJUu>rg`v)7XdsjloCXBKHmqXoOJEo>VFP!3 z9hrk)3H}7=gv4C8_wj9ikFQ28Apy>Lz%`y2I4lRZVZ@^bi%pT7SL)ZGLm|?Y;IDuf z*mm%XZ=zjcyKdd$TezM97&d8fUIqlhcHOMSH*qyvivq##WZ3brZQ$eUkRkLN<=go3 z`yF&}*m?_$Lq@bYM11F#*G4?SVC%p=a`CK&tpcY3cVHX99{~5c9vrX<&vn>Ja1v0* z{osL{QLsfQF?btbejYUez6iv?ZwCjN(Ej^y054S7Odt*iu$;+Ez(IZj_#!Zip8yWZ zL)&vbcqWj@^AtIv@*v&KBSr{FW`~G!6t-;Q(j6`Ctwl z;G7N^`3YcrT*uf8I01YE$m4o&&v$VZz>kmZ*vo(!eyk?4Dj*PkywG6Hx1rO)kJUql z_ZF-Z{G8VS)p{H-!Z-nh;(!g@d^@V0p8(bXDt-cZHBiI#U>h)u>%l(nA+~X~uYsp8!q< zQn?;%0T})_M9w#WOs)s_%15ohkB|PC4p`3h;GIAq*Mn~WIWOS;?|?D10M&v6SdC*? zX=6s5z_|+82HOg5S%?~f1}kj*wE!!EpYv)U0)8X-5MbeYaLXdp5Z8l;1J&?j`p@11 zqPZS?qDYUb#sSRtnNKmQh@SwS0MzgVz^efpY$NznU=}o3^kR2`TKF-wXM=!5__4;t z(f~XBn98$KAQgUmM9BUD>bSlXdLWbQ^)S`}%MrkW7P}1Gfe6!a)~XCu1V7fV7``q< zOz7?43xE-RtXDC7WylopbN&!0f*rrK;j;H5)6;Jd&o__4a9X9IWPo{j+K*=!RK3=x)d*j*r(i!At^G@u9kSiNBv z05kkpp<({Jkzd%DQnUAfD1I)u-yS?W;Kvl26#_Bv%o{dv-7FA|8rwM zpoIvlDmW7*hKMuf%&Zix_h1wB_-7anU~z+C`pd?`=KLFQ5F&h{$S~by8mCE=3+r7(4pYRcTo%>utDk!O!_BP!F4P9dMuP&q6aF{{&-~u?2hu$i)HIUCFLHmR)x< zyY6)6JD&TW$G8FUaIOXnusL4_jIcRN7tpk@ImZB&4BY=+_Le#KoxN}oCB@z|&PxG1 zY}fs3d~e&AKnnbvzXg`VZrUe@4Mw&2@hiZNJ#?Js0(W4$?z`jr@d|3u{`+vC0D%gi z2Da`S{ws>8uBB){a2;SpuGzQfq<|L^^ztYvAYXa|0a{wgS8e(3c@#sKe6)UYynZcs=@Q`V4w)w0RG@Engq5Ld>OE!+Swn71jt2VoCp4i8bc}7 z;6fl3dJFh0poVP+k7z*VP+~QB6>ti+bAO~B0ltZnZ>GEk_`>GQ{zCP_<{Sv9U@O6S zKpfiJbsH<+?rOV-T1KRtgZ{xK4GrfIU@UAEcoJ|288U(o0BcbIJ$nEFa1bTXfU|*p zyvKr%Kg8V-3ERQGOk!m?f$vtl4=m?3;eiryK*L#VS?4_56B&kv^H?APHs|F)G;F@p zala?7|9AxWmd7W(un7>h>rQmOL;W3K8~mKB01IrsEpnAX&pa53zJYW2D1#E*a+P`~qR5=1F@M1uRj$;Hr)&ezxlht7S#tF+r^>Tg% zxCFlu{0rcK-T@A4g_7}p0R9rV#xn|jtu?f~y}@^ZXfy$9gWqJ}&?BIRQ4A!{)pj(7``c3f8T-s?!!Vr4GrgVAPzR) zD*Hoc6bgF2Wp+vziRHmB|GEVq|KR}t-HRPSJZ#Q;fK=G7KViXt?t*ni4ZzPi63Bzi zc_L5_+w}(@=EJuN*oVY8-v?@7b52bKi~T+egK5?cimBo@N>Qg=+y|^hoS0$ z=QXZl&eG#38Eh|b5MYEI4BiVEVDAGTc>?VR`zSc9CvHfvBf!N#Ic)wjF2{fx*frpg zP}C-DH8=sV!A`{b1KWo{)CxojzS0XNzyUjWUT>5L{zULIebAP$XMrt%8g@1KF0cyr zu)e4bV3-~og24g(Bz6k^KyWk=2tVi9fFEovI0xvfM}QmKfe6@Uu+$&bi<7;;5kM#S zIY$FMU~^s%T!JPSJo`yhF>EdPFQ5qaeXvr6!ocP{8Mp>J2K+9t4fc8PO+Eg}MW7y> z7lvCT5;zFH2xwr}f%^@>oeQ=KoC?Il)`5=#TG;2oei7(9usP2F`08~$xBxK1E(d2s zqJXe9Q4*U5SYQw3TmS2T^5rr=gw2p4&U|mY3N~lH7k)Wx&I^H~E2OHBNa?n;*&=y0 zn}8?Qq^jl?X^cl(yC(u}e|A&C9_dMcjOKl2dHlzR*tBDh)LBxS4(*Y;<7Za>vqw7M z8O;JsJN8PQ9}magf-p9S^<_#}{NG1Ck?=;CF7K5lOM|LKG8ZQ?;{Ur{ewK_mOcUn#0tuTAHiZj!W4a> zt}v_6P?%F_EX*r37nT)T3abmPg*An?!rDT6VO^o4u%VC@`4%aPf{T8n#j4_{Vs&wJv8Fh_SX-P@oK>7toL5{{TwPpK zTw7dM+)(UW5?m5m5>*mi5?`X%m1LC|N^(k!CFT-qiLIoz#9mTY(on)meM=Rk%F@tM zRcTadbg8B^zEoSPE6pl3l;)J?m6}V-N-d?<(wb6RX>Dm;siU-^l$9yUg3FX;p=D8J z>ayrEO_{bVrA$|rRhCm`EXyl1ms!fH%dBNJWwmAYvbr+1)3<8>e#u{wQmRgVES;6~ zit^xcWqDM&x;(mETb@#`E6*u6mgkjQ%B#z*<+bJZ^15s~79NsJT@~HYLp(f~D!bbQ@8-SVh<@YGR+5j0IlJ2} zxNe%dej+Uz-)4=iZ9}szXSSV)9rU&3%LUK(>NfE2k-OjiZ2y&ayBIq@YtHU6P?g>6 zsw&&_bF-(1&nRmg&Wd(o?PcR4u$cr+c+*;~5(}!F23XX_|gtxGsO+v%-J{D zWNH2B?33YV&P)xQ>bdFm^@`A;OUkche$nO4_g3HVs=6C<{GBs>XFSs(dT8(a%H#*; zcYpl)_&1)3<7cLS)49bz>stQSEMxJ*O&uJ4QxAQY-q8Krj)Us0+Vasy`}dmpQ9$RP z$Gr1-VDFdz?)~kQv^1suNM^TAGj@Nw)Z??`)|?*uul26qGB;hzF%w?S{WWHd;g+OpGxnfI+Tw;+I_Nah ze_L~MqhpoorwOY@#PtpQ;<=6$wXOSZ(pFgS|RE;@|o#&Fm zH1~+qOTYPQLsG{6+Uvhp|M9%(0-N2>E_x+w(_iKIRwfdtk z58dCz|B`l+srzPa+~&yb1Hb(B&iha6Ti@Fg_vE!re|J4RGBC|C;K}8!a?fS9{XJz~ zVz;Qf6N1+ItcdQmN_%p{kmyerMQhtvk1F1L_vDpZV-_@vt>3(`{~n+5-4d7Ho0sMt zI(O``jXjp08K3&jCe8TbR(Tto)^S-|F^x{_F3a+!JxEXVJs%Cl*AS^Y@Gi`g=^D zpI)0XZbiR~gA3NTsMZ}B>>v5!%)=)h|KiY=IsaTpwKm)EbJY*Kc22JNka@1(|Lp8% z$9m@P?4nFOy~!-?YV}~r^}tS9oBp`)Q+Y~3b!zG9j8UKTQN4C&R!^^1A?3TOa*j%q zTZedi;2Ql|zD5H>^Sfl;Z@D@y-e0pRX2QuS$xEINHQo7Inv1JBA{<{^L_~&1I4{!1 z;DBdUuYK&iNS}K`)kD5WJIAFYq$Vv^#>K`e$Hh(=GA?Rxc)zi#fdl)6MTUO8{h;c_(aRrv@&3*&))QK*civl9HJ=1e>D%nfG1Uc$+PVSX zMwJ}6GjPtx!yQMhy5aFw3uT}0ckKREcWKK0poXVTBn-Ca9sS0d)+Y8uR>&rgm-G+3 z$|5db@~=ZsuMGV>Cgi)oAAj`Pk^M^Afyc&0ZhHOelNbmU%9#^$$yjx2xn=#L94-Aqf+__!xZF;Yaut_U7y}B~!=kl~0$67!9 z+IxGCh!^5ZOy-QkJ7uJYHJueOo#1PibDZVrlwN{glI##`L?;*}TxVI=MD;N#5&+KK5Sf`SmkP9En$&MZ|va z^TT(>pVGJbbeVqXi)~{AzkMQf{J4NglgBNYvA_EH6=_N7X|sJQrXFcs82QzP{MUV> zC#`vA@?T?y9ZR1SdVAP`wLa@Re)3Yz)E&xezrJ4n^}&7K)9qK!DtBd;bZxeM=KZNR z^lO$+j+r=nMSNB9$Q_Hc^_l7SJFWb&<^Gmof36+h-S*Y-&kyBVHUy1K+c0rNk>cH3 z^Y%?W{Z;gI(_>ZV7d?!!@$Tb|< z5P0&7S_YGUM!tmgfG_S~jSzWVvX zu^GMNx6UjMYx85~g}-~a_9>|u^UB6LZrH5Vf6bfKdhAa(b0?g2y!d*UPrsh3jlUO8 z+4qThwL@p@61Z&I;L0vB6W<)Zcj5OJ3QqT&^Q-lbajAXQ&G(7XRzCIVpo&iZO5Yy_ zp4g!u+H2p{t50V>UieSqlYK5+{WBfG)SG4~L%bIuVJO`+TNA)(e=zijz zVGCwwZp~VC;7l*u`M>_G+VRuLodXDKhEV(AGo$jdNKhF$w_&+$ceN4xC+nyFj z%D#J;UNwAFRjRu0u@&v#thcCs{pN|?-<9^?wCsiGnM2wffAHHJuMKUN9WvE_FQxs@ zx5~6D(qR1{Rir8+Y_Mw3K-IIV?u{2^bFVNwo3$@~yX?KI2mE46#~X7rKMhC>I{%n! zEjN>E`S9q18}(Nc-nvmTbIyr@iSMM|a-5s+TE)PeGm$mB+qG9@?VS8$PUx}s`=42{ z!T-&dH-9#B|K{IAzSyx;^NIfW1y+@?c%t9kD(mF_rZ2;+x^)v4bpP|gzDbMw+@HK_ z@YcFbueYCf;``{KEg!GnoA>tCjuX#6ozQGshuq^EJZ1&m8Fu4f-1_xz`knE6*_=3C zaV1;RqVwj--!1X&uyXOnp-+AA&&`lNlkAmGR&H#ua@y|WNpD4e!^Xd+IJh~mzT1}R zAH?*U^U>@t9b0N%v!$NK{~)(|Sjqy;sdobgycM_gOvc}H=l)RDc2M6@!>9Mrw$9J} ken^|vkH>$}Z^E`I!=|0h4QkhFM11o3i1-zJgvi)`0c}Kb9RL6T delta 50553 zcmb5X30zZ0*FS!5Adr9Db2ZK5d_FPZwLPOSLVC0xnh5wr*Y2w)P@wajARF|9j>pfPJ6${rvuXKKIT&vz|F~ z=A1KUX2RN&fejUbYYQCTA0N?v-S&i0zGp+lj!~}y_MGiDnjy4~_;u6^JiXhfk9d3{ zkN2GIIeG(!dyJ<1!_Ov;UdzLtquo4A@WRJNsqx)8JpR#HbEz#s{acsNiiL{0*tzXL zc+eXqGzhUV!J3wW5Gx8om4-*Z-Cina?z zkiw<~7%E7!YNYhTi$W}NMT5ogS!=6YW8YPI;6T~){;zA2d!dR~t9ccYEdFm*Y_O)6 zFY?$u_o#(HuCy%3HKE zoREsPshycwur0#K&b8>R2{p2IAsrk_m_{&r)=_HR&(xl*wO9BFQc1a?_yxdLxpm4B zNe;0vL7JT1YPA zcL}1PtZ4!4N<8)qN%kX@T3Y3`p+H-bD=aszaICC}M=XB(B&RhlNs{anoQS%tj zbpclLO{%n|BxfLxGav$ORSeITcElnmJ#m!Bo?wh%k)S4uj7vXUg5ms;dnsi-1Ja`h4pp|-*7V5`oK z_7=lesZi$>pMg@=-;K#~1~jF1c3J%`CodhlE~Jjy55PWHN+ofyg7#$3-4H(C#$U?Z@F&As>Wrf?#}(DnGG; z_C3UW_Hp}_j;u(Mp|w!9>8RghoCvu1ls$4grW(Lrjmdp^a(}?yq&D6p`H;sL-4uN{ z!dGDsN)R$h92v>e-!PNR+l zNE7X~&zeYAi*IOPFX?u1(!E3JPVF89KGIoaXfXeFD)pMx#?gTIN}!B7mB>H0Wv8QN z7!rwnWIxErjMM_?*X$0lBOX{PrC(Xx&zh#axe1!B71FI~1vK9GsS`3QE-%6;a=u># znO|$KlH>=%iM#vdm2K-VLe#u5`GshcX6Gd~Ec$WrTec}WO3Y>7M%QWXwPxF57WcX; zx%^Gmw5b&)$u+3LPz*UQWEi%56t@u{X4gCsz&mjyUhuJ#P3_c2jApAlEgPL`k@Zsg zw@WTroS{`CvxO}As#N4K35Jq^U=oWAOkU%n5%f$lPd869KWv^lecHp7D71J#p}04* z_&2*Pv)IG3V~2z{Nb(+12O?q(#qXm*q!^0dWbeif6pynrvBP5Htnw9W;`J=QhAd~t zEax1UGRwS1(0%mZQ2F-kI89u3NE5F?b%w*TYy9&S zWlOvMCH5{`5I;fmKN%zn?4^Vrnh%56wS<&MvRe4qI2|=%UJzVz%HG~JTH`VHZcOdR zQwIR{PK&U{q$~LH7^9k!ZUy`54CJLmwyImNnO`=>zRwHn0_?5p&BmmE^Q8Bhl8PIX z#`C0AO-YY7CN1GfPqL`)-NigMvb!x*rF07~rIlT5fA^l6^$P196CT-&%pg_4c9N-r zy+y%x$kc}urv&W=i6D<_>XxxxiARIt|DYiXR-&`mn?1U;QQm@;Vn77yHqC&Qb1aD+ z>(NcqV<6M?OxD~?WBq$B6+dC0_M9eu!&>(GR5Y-!dwu1oxPfX4E6TwZbzk6{50q&V z=4Ff|-@?$%m5Od^48{GqK>*PP!2xT)^c5*w`KJbxVbi1ewr)jtLLFh!tjdy8HhtdO zt81miJ@#9Er|JVd#y|Z;uo`82BHw-t(_t>EJ3(v+Q``Zg@rk*Td`PN>0f}XhpcMQ_ z9Xrl#zW*Sbl}t-+^8q76qs>PK14&N#kkavj$5U4TxY`thH*6GBC>bx3GUC(4Yo4d62J@oG?vI;ZjkZX#W#M zxt--K)2a1^szJCK#Hc}n8YCfbphT()7O3@>ssSgovy7x2vTRfXE=HVXn^XuA09{@d zisgiDE{vNDK}cH?V{dPDjqDAgmRpKWgZ^VfrNT2b0>r0d!;v@#3FQ{Q8cTZ361Fb6 zecQ3&us`^UYrpa?Gt*VM+9-OC&zc4(6U;z&16TIG?UV0dL?3OZf5n@Byq zvh1OeJ4MZsWY*4N*KCR{TW$F-B{n5BFHtvYo_`zV5^?ARFeP*h%(DH;IW}i(46M1* zu~tjYpZBL8Qu2QFcnX%sNrG*RB(JF@wNO}b9D&l~4RuOp!(7|2na0CS$(bp8mCGGj zhwP4;PMyjIXMZMYE}dZw<5D8Kok3O47zEpRn4j$|uGJ)-Xkm0Zm<<`91XJ>f@jb-P z%3d4aS`>S+Pao(jKFWT3pmTDUSE!}Tc4#Q)0p8HsGLbh_4{rvgpiwkWu{24$bYN){ z;>G1`#)L$%yv#KrQxt>Cj!rx&V*Eat)JJ@rou1TQ3}Ck>#fv*wY)+bZxom3AN1~X) z^plq`)6*YoK0VIBll*_j|7iW8E`>i7X00EL}i(6_NE6J|r)El>s4SpudzYPo=_V6v;x!ynj&ZwcKGm>hiqhE_MEPp!Ugu#cHCR`16tl^zL+W;iuvez`Z?%(8 zZ<5G17_izeOzg~5Ybyh&qRMHT5wSTYHss-0c6!<_vQ5)^ikd^URH$7tw>~DevpQF(G_|1jA+@YkZoB^9 zt>i;bbrAPi@H3eN&=6yg}V40bM*t&qQ7aqy( z`lZJs2zhC(V5xHjF3GJVzavuGIGw>wF$AZLV~Zcja>Q7Co-s=yG)JgzQJPeEM}RI| zgkj{=#PAb3%DwB5)omnsotJ|N8^uBf1N3f5xqbZSqU3^aNa@l}5Vol(Kv&xmxr{!j z^xDywH3~kJB*hgj3_zccN~#c0euj%QrM$i+X?W+bY{~f;Bpz07w1QGKDCtynEp;nz znr6>l_RyRzn(O^p!5kZ#J*REJO{=WU>(4^x&htM5u3@!vV#?l}n=FQ!hLd_G*6U}4=<&w3N zlbL*x42tX&1dxg;*SQ-cGvx@m8m%&9^({lRNf;$hIIM#dXmV}rVwMF_k1!F-1~@`8 z5^K$#eP%c|48;z_NzT{!Dq_by=sI)aNki!j#2TXE9j%n+)#P9xNC{i~4oQAbCP;pd zCecE9v88CJ#;}^JXP19}DP39YNZD&)v^$cAQB?PDLMRNa`|;7HRhnp>5xe z%fJ-FwzS;56XWI`wZt4a2^0R0F-yN>c+P?B>X>yK@c%MW)YAXMNPTjS{r=?Oxc_aW zdKcaFUo@QCXBK8&nAYwc8Y;qPB0l&~)Q!g%8`r-B`($B6dhydFqqr)0TY>w`f0B8iy7|w$mJ{F)87 zrD`sJ#h$U95x-JPL1+ArQa|lv>+F%5jZ4@k_VCEOo8%D7gfdv8iu^`Xuc zLKmltotSlTh68gs)#|e7ymKncwLv(IC3!`Ch-Fr#bzW^w2C+Qc-OAasXt-#1YV$QK zM5wPk2A2v81ys1rKMQL~cTr)}11OOMHk9NOQsM1sT*3~vx?WJ5Js)CqIdef!%dA~M z=`_Bq^U8q)wkKc_a|ae9jjT*i(Mg(8iE6mOPEz}^i*S%C&bP^uD_QpA5pC=++R!#~ zHZC>FRxX|k>~8G5qrW4u8%aHRq>dMYf599>ez(E5qXpraHp=V%l!`2BDFU4R>$uSt(L}%W14;oRftvDZQ*t##z+_}cQ zt-*jLdm(qZfqWx%g5XVjW1Q&bJ=rJ!M}*hEak8Mc}=d54w8 zIP$y4@YS-_l@XWvrAn3)ivL?gy_=*Zv4b?#tHs#8f`0A%vDs4bYfJOC@}Z!G-!IrU zFe$g+W}^xhYL>>cuM3x_b6t~}auNEIyO?h0k$c}NU(R$rA~tg#haASnkaF#=uPsCI z-^~7O56!$X_V%;mG^VcX`m^2o7%9^RQY>3X_LUNENJW=SdC+vZhOHTKGiloe^x2)~ zcReq-ArD$^CL2=}*=8olm}_^T(-7?ERqn!-H zrYF1EdaPxqdv|ac)K(C;q?`SF_#Cj|Nc!8>7Sg?{YGgN*14z7Oo;DpbOE%E>nJ|8! z)n~60K^tiBTK|{4v>8H%uM3M{>gt|FF{H9FjO59rQSGGcc@wA=RthEr=|3&}wGqdD zFLnkk`mmpR$2i7fO{ZesZ#H5Iy+X7-uMITq33&P2FEhz^NEkQqeks#x$~_`s|O@{ zjIV-58S+80!eX#i!RF;Hj4i1k3!w-bzJu3W_at)CCa%jE_&Fh8qr@YJH*o?I5#=#X z!H38A{im!`XqJ8mG73Q@DTjoj+kSR~@@xT2VX6{&6Dr9RRL0&H#d}_tj+PG?d{m&_cI~Yg_C@J% z&FoLv!8x%k$~jo$_bHp=e55tkBr);{)ANt=}H1msM!~T{ijcN%}+;3cJg` ze0z?52Uo+|kM6MU@66GUR-ueL?3H&$>u+#zp}l#VU3zD@{y%`MvT^fmHt^ri>m${) z9=F-Pe?O;R1tpKPk8iPu-kqzD(c?D+&h1<4?lcQFJonba(Az>$^TibZ=pgZ*Vu{wnDx8< z;%URLu|=zf>Quo08hh-cq52dR+I^LM{?QzLQxr|ajO1V73zGI&3ZXmKT?Gn zuCO;g9?mtXy;{i{*&kQ^Hr$dW%kskOZD}a z)wBjSxy<2c5U_z{AE|E18!EKlAi`5#bW^mq$NtY31Q{nmZd7Yu$2aj%eFWx~S}fFK z^h27gE#a`O0Y#qWMSAe)$JFS)pvtK~!F>=0*jzI{L3>l_yKGUCD=y>#o?nana3>Hi zPs6UzCzKoN1?sQE$_5toS!c~pZ!q&`?MHvfGxB9Wsy$fEQSulc*hmHDK{^lDIp;w_ z&5Oa4Kt~DmlCwh?8mae}oYT>K$fu~>W1R5@dtyr@EB`FqF&`245n(#zXe7c!p8v+{ zM1;Zk_7S0q(3x_!oVtJ7RJUU2?CL$DF`fo(&;tIKn1ds9G$lr_z4^nO~ z5xW1$mVZ80V|jyp`+57Ma}ZX%m&4KF`+NE}3N`k02(Px`HS{!sC6#s3%ka2?ONuYD z+n=s*%)j{0ej}n;zX>wlc$N1X-;MoNi&4LkhJJHc?KdxSfJX&!az7 zqp6$2@%cY_9K*|a{!HX=*3Gt*+uO|}_3Xzl#|gz_41QVEh|Z6@|!k+Eb6Adhh8RNzNy){%HuNE-Xv9Gr#44m9lp?JEM{ARe!ZG^kHW@nn-sl40TS{Fa06lZJ0PmBqnc-=!m79RiI(om^P)G;L4^zH zK!vs2K1#n#g?9eI9@{=B>XknlJAEFXRApy1!`(mFuI>G!CB!y0`=U3`LB7YPy>X7U z`w~^E&}>xs<$~zB=bD%J0ua@D=^RHQ{v5l360fSz`g0tKFR_j6?N^XD`*1Zw)H(Ln zjv@NHzw^Q&=UCm29Q~^*wD}wxwX?r|stP@GjyZQq`d}66dyaK?C+WDmRO^3^?OL6x ze?f(U&#|{R3v%m1PDJt}q3U%g? zZl(&=v(Hzi>S9%(j00zX=B1W#;4KvxPJn)<3IyMRfiOfLsX_;CvM*N+)gS$dms)j` zXoyv~lVvFQJ! zLc9NBE7$k&1HkUB?#v3;w$~@CDO3Jpe(O_p*vkZAJO9OgT{}eo9~JuT8Wr*;m64$| zM3<;0*;u!=ee_q3^HQU)vEl27>QrDV3b|6fK;LU@-z#P>aP=x{^XgFDF;^-&NN6(C{1Bczxkg2Kl?az;Sbh*<8=LSK8~D~5ou8Uk3{l#V{rPgMvf6T|XgvBWw18{y%o_+2Z)eEW9%HJFE!fq!*Gi>eN0>Imv-WhWGSJkFjnMR|hyrqn-9EtKBuG?GREaDZ3@OsFR>-Q#??_ zlUK67mAwZPfOdU{swNYe#7<8&x=TIg6_iZzcsz1Q@oqM7_qeE5<56?r zZWG#@J`E0%w0=X;mJQqa{ra=_b`NU(%$TNCJRKGXk~~0G z=j^x~k1 zmnQ(jdLj-1h%T}i&vbk3Bm ztqu?GL3PR@uTv3uf&u46GyqqZv-0ZLj*lUBjO-t%RDiQ^OjsVJljLDo-N7*&lJ!DO zq}ZNC)kHq_IF$yWcqLlLNe*rJhN{#$RcM%+R;EH$3b1LcLL*dYs|rafv|WXUA*hd3 zj)EmU#*hWnz2D;3i3dN6I+dDO)(dm*QR}|ecEkRl!&Zkrs-eL>)^)wXT zDmMtilE`fZL4uH8!#3?}AA#d3EpU4Qc6NG&VMIkGPEvb4T&!W=@M!%YaFtH3fJ5wk z5yyyRKjMRqQhMd0_R8`v*tY!%II9}Gzhjhax%t0jYtOT>pY~hQ%sQ#stV2IJJH^q$ zB}P3|BTE?8oFwJiR+_by@nqAoY~oxRc4!*QqC@TI<{7Qu@<=jeolVv;uafyC{{CV4twHI zVuw~BDEztD87;T_mj>47Nb)3|Ve7Dkk~}$^Z9UZ4fuli)lANPVI2nWxF!JO4RaGF) zkx z;0N?ur<4=r)N0t|+O+gXBX9(cPoqLlMYJF+!am*|(-L6DZ-tDaWUSP{Z(-5ciQ!rL zVUejMMX-alea7^_c|F<|PVyKB<{=w8i!)9mQ2qz(ol&ZC9s-Bx8(3A4fvs0zy9qD& zGNtqrL~6q@1USL5UpZ`G=EKpgh*f=K(%GERA|zk4{*Kfly$W8WVh zrkjzMk+v+~KAA-y8PZiJkDjmG{tU<0w{gd=e3VX5yqxXvY{IF{Y8(-}B-&j}4(`y0 z?{?D-4;}pKzD@5W+$i{lW}5s>qT~*Ja)cP zyNM=0vrO10Y>SwPs2VIin$c&)h3GtE{kT`U(K9{zuV~DfhbVnE9{N8P@ z8mXgYG#%Ha!@A`EjpH&zcG94t6P_;SSx|<=f8bpkG2!yKaJJ@$4vy2esZH)?=q5Rr zf*EQh=O&Jq+|pybJQE#ot)U~=*lSbHCQyGc4Y@mxj@<$&laIfBf~$00d$il+V(0Cu zEbk=(Hbv|>&G@p3B_0dTey|tSx?lO4!s_Sg6c_!;Yobt%$M^(rfHr)wQY!j}4t)!> z^8Q9Wsj4+>sjSC#+#$uB;qk;)qB!n3J$Gzij}~_|f~`9p`)sWq`wXN*pH;p?pAXOQ zZS(Xydxu>(7C&{{9aJr)x#^0Lt(zo2Pi;v~HxDo;CisNg#!s4rTm2B^NWvL^$@P4a znm+;1c1%wyn~HB@F1F-&&y4(gD2KI|tjDQeG*5jhR|TVwa_SIqQgQZ9DVKjCz8?J7 zZ6KADx0V$Q>EIZe>%)EU9>m*^z!7m9A2_zk=f89CMLALArs$Vl8}H)P=af{DcQNFGz3iA?d{ zO$-MW0t2~17965Vo+sE9l0ewpnLtzn-4>qkxyeU6E2=ytj0e zjSd{KoRb|i?v-rG$=>Gi#Q#Zj76f~^;PyqP`{yR)Qp!h!>DW-;#5}4T9z`)f)5P4% zl#>a}aBASVN~gzT+6qx%N(KdGk^)L^%v1Car$3j+B?VVd|C;S}bNsO*WnRdoULLO0 z$@}vBY7AQ|UN+yj$>dXAqG^*@iZ`=$lflNgs5_veK6Nt#f8b`ebntWD; zHL=Db56iJQMRUQ^HX+M7D#td>QuK7TU<))?4YLXLiKt~5gx=Os3-259a;#Kvj;y%c zTsn+K99#5VcrN8ElqpC0h!^Q5j04-M3^=8gs+q(2rY)3mU=54@d4=Yi$?VOa`{UFx zbljHn$U*GodnI`p%Varc< z)U@_zubuA8%1=*>P*pBYGC^d`h38RKCLZIG9F}-ygaex=8F92%8yADq(oiQ!6p>^q zT^^Te2<5AmT)LH)lP4KgRFRg&0Y=zDhE~YMZzVZJ+`7dX)Ku39O@{o39O)Qvq9u z*;6HXDlO^1EI(N9crdf%`U-4Xy`~~9-@{FZ%y)o>YYH&^69?SU(26*-{3EvBeUb!* z$hXR&VaQcjMKe+=su%5Nan0pLUu#zR29;YVxu(sRiz|h*bP;89j zI;-*?gsS(-Za%yD>omPQHrqK$r}Y0foAFyhuy;A+TPpSNY6NbC=1Q_D)Ms?SC~f?v zOm+MJU~PV%ta5Y2WiF3Uk+hO)9y_6#v zu3(hkZT1U zi85@_4GalIoV}F+N`IhM`zVW0K1rq4GD_DF8j|yQYSe2dS)FeZni-{T!mH|eFADx> z&iQtgy1&Gz9mcsJG|cHE)}ssDzC2=`C|BqyXR-eYKy zX2bSvzOG99>Us8Toki0pn|)iCpy_>{-KdMt_!$Al)k@uJSi9RoWmDlI+*ZC zcyjWb^YTrl^KAIe#e+S)Rb#1@{gQK8u5yRo3OfwPfD!#^PELQi_#+MwZ|BN`iSBhez|uL9a3|?%8w|6>mD}~hlh-y<$qB{ zs51Cvj|cjyEeW9zT^%f?W$-Ux8N?FmQ=*3p$$GC0K%=kPI1E!fLPmp}{2`TEwcp95k7rOtk4t)tP_V>Rfu<&@I2_sv)%B*I1d!!MI;a6<-G_8$8BKqiNNB8lAPb%W`FgT2xj2 zCUykXXq(<#RUF6Ht5V@T>V~0c59vB6x8j~(;0w#?e_h9&1{iE!Yt7YnH#~=iVmDGP za$C^AP+STrH2qREev89#iB{~dU+U+u!6h6Z$=MQ72^Tfn)-44&X??yL6?!d-DN@l= z*ku7#CYWV$hOODK!%eWmYhj1);&ylyH^@qdd+jke?D!i0JPZ}7XjzV6DBcJjkmTVx zFu?OX!}BHQ=$yLoo-Q6wmg}n|&UmfRNT_bQUC+>|jCr=e6{9$Wh7L+J~pZulh! zS5X1cP9B{trPshkaR?P<^9q4~3mn(4`w+HL)o`0wbkDRz=UU;Z_|uQIZFsEJ77*Rr zpJ?#!n_sYX4Q(CKdO?8LK@zRJ57VMe=8F5JMl9$8K`l|_YB1HX-{S13Y@jVca@tnG zuCusar;)F_g{cfJScWLG*O!7meMe@%Hq5KKSCGJ`h-7|vnyR~|)3j)u5gy|@3C5)# zj9PUfsguUA#jJ^IcJLF^tL`i~t>~79->?9D;y##sxa!plw&U{H*w#OCcJC$?{>qJ6 zT#`tIsW4yZ2BT5dDW9)nJ+E|TW3NOy&bH$*^VXqz>Bs+pN8=QhiuS^BgGOE~=iT5I zTwdC^h2B=tNvGL_2O`*<<1~|72w%B)FgMKbMHdPt(9&tn=H+Rfj3IgPOg!}p_d83r z(ulx;kwjH3kBjlTfB5RS_ZbZR=l3LMcZ)#@BhVNbrdL3z9xDkdbZTlB%@p zPh);ztP<4WWK~ytXd*_GUAsC+WTqa0eTtsSMRg}^F&^VSc%9OR&$Syd3w-Ma`cy~S zCpuZeUx^Pr^%F6QS|vZsmnGL`L0aNux!GgE&jNJBY_%J*@Y5(V+yT22>PDgj79jQ( zitC1#$#6lQQbNGsjRVK-{xx%?h&cscI!<~SR{aG!%j2W2?-Fq^xX7WyL_LcrN?QZn zBHY+T?r%fMXEYwN*6(L^fNUL=_t{(5<0c&a$s3_pma3X(IJoiS&++3ECQwpo18h_? z-PWCsqf#VMTTE6xjU?(0Dj!1tLmorqA5_G@Sj3H4tl&mei?w{;{Se(ava|PZ^vIq{ zLTVC8@PpWWg_=w8N$LlO0Y7Mq|DooT^{{NAUz>!xSLjFK_yk*VG0M9hRu?t$2~tHp z{-KJZys9XSRFOfEWttq-cC4)eu{GhHR5X%uPN|4AVHGz6;HKSOy~%avwhZBXBEG4EG?$EgmmWm7zN!TW53 zy5~?#MG}qL{qUnlb)8%CDDQpkqBM}x51?& zz1G8YG%uMXr-2-u?CR|Snj=G5k2_H#6)gMVbQqDJhjH#F6|Kk??4u1^$3PdA-{&8A zViNZcl#Z~exHm4N;XxX)kgdBDqp=C>a!ebx`%ZGd1^-bAqro|+qC28(kSff?N%`0~ zF>D>1FBR25*xkhK5V&ab{PyKJ$L6zvcl)vYyW^(jn@deLi_?^gClpV(#Z^F}4WHTa zN>%2J9YXwoTV|!)cg!s!KS&$+EKJyQ*e@m4c#k}%lv|uqHp=EuwXDP6X^}5s4ya5H zld*9qu%`HSFnjXv`I=t_v0wgv+mIbo-@@t~jic40u}Ss-TX%1YreF@cbgxT4G;x_b zm*DLo4^%T3lkztX{J?0CZ(8KTG~^$*AXK$O-e;0$=){tEFCR8>V58dz>uR2SZ;pyCIzC7xt)wQs} zw*xhm3=s_N1WS6=qOnR@@ry&m-s0vL7l>`!$~e_fpG>p@9o1XgIMedtD`M1R3zPvc z0KGDOnl=48pWiju8@i4S8>L4#8s3Yx3|dPMr9N)M$pFlZ1lgqyk7=OF0RI#n-zqDB zKkYrjGX7R+^^3ceD0ZfsDp{J|Y3?rqDrq2dOUMJzv6YfZj znBk~_nP`z$z|O*LyPqI}GjT^uc1YMLS(0ym$eM<=*#qz^6Zcr1OE3dQ!iTa%!h>r# zOY$>Hm)P)~izgIMcvjjMv>>tTXoF#630WaojZVyC%8)o19Fx(E8NVFm`Z$S9ED5*e z;K`F*eK8Y8E+kF}Hp^A698X2PUwuC2QPEAZnKEerD+kTb6T0E}l?4!1pVT zuih+=nXl|BYL2i){z1u&1;QhJ2!C-OzJn?;S4Q{{uKw=`*XIr=7(YZQV%a#~4h5H-HE?Q`EBz0-j|YfvY2J@@FAo$KXi{U{7XrnndZ@)y zPD#!;Y3svdya!cS0x^5Yu)b2MgHO5S6rbp@rI>iii0c=)uvI~q-4ykV{eEsS)LpvA zHua2iq+G8m>;{CO;_4*lXMA_U`5A3Xz{=uObbdw~6Rt7QYYA5!_|=(InvE^0@=*Tc z40X8R%a^#$FL;2d+*!4nupycxfvqIx!X!KiN^l>VYTjE|F4y~;g$MD|9x!X+b;_Or z4Aa38>co3d3}V(xC4pK5}Jtg!&LQECDaw@ zYnI#7IOf2CZCLAIqLh0<0l+z$tdNrTONdjLjQ=zra|JN*pxc675@wIYgQ_@3Qf z_x>QUi+I4@5G2NQ&xb2oat_PI18U)*g6mmo7N6Of5H?+W{?r~x?t#H#M+Z#>n!BT5 zgi|Y!jy|^`q)nra{VMW4O8}lP+8R|ol}=1gr&zDvn8RI{IGuWHuE}t~SF@$Xlf6M| zKh@gQ@=WfX!D9DTJ|TbL0QXf*>g~P}EM{v;dbuqv#A1!7r~6O~aYh%Yg-2^tW6vH^ zFt{VWVJtql-uoLZ2U7OdeQ?hGNQjs)=_%xmq`Y7^tMXX|*8;sriAZ$j#{|Eu&uXGo zNICcis}Rc)&>cs1WN~0VDCsa@QFHxx)L_fA$RoJl z%7Uus^mNEaJog@~EUofQrI(5ZQ77J#enZt)R>QD+S-3{z7fEV@D?-?pR2&x>T6m04 z_9XuX)H5)zuA9Zz=#x4z+|Ne8|Dcm->PQdMcPM6`hp1XelJvjga54btiK0GX9^7y=_V zy{__4Acv91f)iKn|1t85;TFcodu+&~j(n;e@-AcrYNAD0SBTrDx^Tecy1Jo(4HjPm zl>us}+@YajSnA_IGXt&>Ld~L_{JM$r{%iYna2}%lg*NxYp<;xl|4;6xLd7UYEp?7s zXih-i&L#SS89qNQ9Jjvt9#R%1TTA1wWw`0OC@*(rM{_U2CE zl3RE8o>pR)mUVYdHWNSYF|EaT##7Rj$9y}0F6y%2)W}qf5(o;P0G2fd0`L%rafs_UIqf*I24N_{yW6PFKbeNK_ z`z*9U{3spCT!Mi2e>27bfHxC_ZQm%G%PYDwr)?A2pe;FpmJNB1*Ii!n{55WL?If};M zBXrI;-yv{(8i8bw6Z=ObbT0EF(!BqNFvzq%s8P=TpW7T*T%J1CY)lUv@NEafIR>`d z+vMNv>%%KVIkB7L<)3njer_rx$lLzH#`f(7kMVBT<_I?}YU}VLp3PUYszw3}s4H1_ z@3vygkWbf>=-7o-h|>3K_o%jFe|S%Hj*~Q{1~i*e&<@(^-!x7s|0cvtK&&5XA;P?l z7VG1Q_d=A<;3(j12e&j@;7eF6bwc#WtJvV=Y2xF1*fDD&IeOsWTV9PSlz#fQGLD+S z5z^1`;W6&yV9l3$f1#Y@-4ra$Hc=eE8ICLZ+uM;4{S^*&5|;en#JAnx0vL@>C?}yp zY0D=SCm557+}Kmac5yjQ?Pzx)117OHlH#4(RbL}ORujJ0BB@%NhZt(MTAPb6GJ~qM zk9ogTip?uWjUh9sWVOGDwuGj5Iix!=rPJykLM%ZCFY z{2b!&ODQlo!|;19A(~GIy5DOr#!Z;igonwC$JfZJ{6w7VrQ*M--DXtmr{b}i0;krq zlkoT*ZxxSUcDkb@#Qv?nK}>TDw(fM#i4X^9R_t_dj1a@pHl|?=hr&w15Yx{vkQCy# z>`mZdkMTq&LSV;D!UMk{mkrYeCacG|x0Cx~gxD|r6`np7=g^9Fo46V=J-|2G)#CGb zav2p*@sO>HI&vY(J;sMRxgU-c`)Rs&a<7jR7q@KzN3dVf=>}0RD$y<-IQ%;67|I3Y_U%k}ym*RxY%Kgd= z`0Y&ib;*)3uxXUuR4ZhCQL2E|7UbN!yfgFzP>`_um0!rgCRcq)<>9LL9Q9~FLUroZ zXD&VQyI>u_MN1Kzathe^LrZ3RYMgu`DYTtpT6q)1NG%#Xg%I&k;yvor*TCD^Ap`Ns zulO{rJfyr01X7NeRvuKoa!Vb>{tnmy+zfCH^T1oQq?d96xX8!hC`lq~stiz;T&14g z+(IUAV-i%VP~;Kq*rz_Iya^kxG2g%^eEBH7FC1m@NFzyqQ0a)YM&OaZL8eA1*IS`K zd>;N}KT`fIRE&K>ZIQ>%-o3Gfp3N|^;io&i2zGR*M&p-CLVLFD(BVv9qUlXC4C}~B z(7J|;^{t8Of9l+8qQzM8P50-~VrNr5xCDxb{3QofmDT8atDBC6AygxT!sXR8l!u`J zQg-3Dilw79m{K?>ePXrS7$e5JvtvY;=y3lWBgS?w*Z~j6rDT$=36-0~`WsXQHVc&D z@M@DpRTg7-z~cXQ59uVv_aZ+lSezD@t(A9GAW-=iKI$*fSyNKvRD2C$l$CDQN$lBr z6IhG3-r)SRqgRKNqwXV}#6-t0Xu{Xr9G(Y11>p)Q1&>ihb;ppd1fU`m)+(m}HP(+G zpR4o2b*J&6st}x_TZY0Vdw0;BGGtViYUcq~Mu5|m50K4^d6@DV039GbDtg^r94mH9 ztwcZ3;Y83s9$1`)DpBH*4RO?4{0c+JZxq*t$H8|{KL^Kv`mA#Q9xEpIDnXLfnTf5) zOvMn&!-gw{Rw2(I{)!U@V zT_N45_2ZB?_*sUY_*QxN?YX3obp8r_xb&gn>_3DI1 zrnS*s8!rxs5m6CW#4wf`kL`EC-mpg^L)~+VKEsnwkq67T6w{pCRuv7hZmJ!6TLo`ABAP zjeNB5%E(6+*fZqg8NvIwnlWS26<(fY&dMmfYPQ?vnhUQyvcUGJIrwDo38d{x+1sD$ z-s{Y4fJ-RDnRPQm)^09?u~XxG_?mO#UHpDfQOLOx*p=p@8via0Lp_EJr}l+1_ru-9 z)IK@LnOS_q)*kL}Lj&%G2!>o?c`#)~u7OD12L2SB6HlY+-!jsVyZ3YxW7}(yU^aYt zCT!7yYHboKr#@C|yO+GwT}+yIw-}nIMpvz^#|IRfa6MCracX}DWNTAY6H~1{f=_S( zE+f_A3)TsEmLF;4-h`C$G%ejKqK)8PL|ZxJ+cxfX-NjChl`z*lT~_h;YW`l!-!Jg@ zdj5Wizc=vrEByT$f4{-s8~OV!{(gtQ-{tT3`TIlu{)oRn;qOiS{W*VccJN>ee{bXO zFZp{Xe}B#2<@~*izjyO@6@S<8_dfpqj=z84@8kS^lD~iC@1Oa5F3fvRmn-~xKL1|P z+CfnbJnAtXHI=`g2i<11)ftybTf}pDWOu1dVJsj z4oEkD+`W58l)%u)xkZt@Lxcu%oIs~zyw z;P=b&<%x48IV)E=fw;M9r7r4O6}01aCOs z8y0)RSG?gz-f){Ytnr55si8wS>y2pehPS<8%jdiedc#59FvlA%_J%9H;TzuYOKMDdmai9O zp6iXUdBbVVGElnIODrIqLzCRylf*pyZ-hR6(eC3(Vy@enF|E1?!-Xe=1;Qf1Cd@!+ zb3fT%9O|y=FDAHkDC*A66es%^45^4-*D1n1cZ8Tq63zYU2=Rk4zJG^A(hqA~A>$!Y z$QY_p*p~+TSO~-OBhr5SM;f+kh2<#RfV768?iWUi?}pxfHrf4UQ2DTek+)MH*sw3# zElFa>jQ-P;`bzCp#m#<{qD_d~ z8ZCO`9$&z-;>Iq7Mq^xDQj!pZxR(WYcZ+zg)#kQHTR3}$ZH7vV1b3%VVjD;PR8fGb zizM5uIE&d#RV}?QZt`S`D`*}!LCsfsU!0n6E#h8_L48ZrrhNZrs@EebO#g3c73%Bt zD8X?fl6mFuEYLW3BU31D1L9&pe{URCB=BZH=8T7K^2YV2IAJZyx^Iobrr*x??ugN1 ztT6|%y%sK7I4h2RS6mQsWBi5V?s22V-s_V5-36n?rAZq{3c^V|*MM#(WVs(kvwZ{a zi*x5s5F^~ZazulBoK+kfQIIJJAK_X5uv)$ec7JIVpL3^95<{{l=mah5DNh%KV|cQs zA+J^=XlLs={49nwhvLvar8kG0ml3T&g7vo+!f>}UOB`(~z!<%R=d`ann~uX}h->gx zN9oPs=4IS#M~g;xw=rULY)qUW#C3s5Je{!c7lhyN%x)nx#k(IHBX*Byz@}Ve3`ouM zp_xY5{mB@yV^A~rhcV*7UiqoWizhCZ>IF4z0mA)pLNnMsWUScBQ4ou!J7doAGGMr7 zu&DDBbi4e^HQD%SJECA;;Mf6|N%4F{`J;n`=xc#O#BVsx^qpP^vIT+4!93l8Jlni= zQvT*}vpUj%D8vCO5m1SMO5hm*MsR!lvoQ=;vx0(q(`d1iJ0x4ocRxH1g6WxTv9l!? zbJG6_tm$T|(rE-;-&VrfM+Bi&9%i;TeSK1nq83i20%`s#$B@d5dwzbN?6gsIylSm?4_ zCq(ycBZNO2*3kNNXl={+l)5u4@~f7B+Fc=}oZvd^XZU3k0DH9>ts91iQaP`KXQPc;`8w>TI?C<}kZxv0jJ7R)3+C6wOZBPnfnEPRv`(eqU`C_o2 z5G=M8{PV%RA^yNHQt-#MoC0j{zl`VoM}T3dzYx0HDCj0c@VGj}Z}!Fi)<)2M7bZ~L zT|5UUo_chxHHR$|z_Szw#-wyhzh)8l6+#ATu(5K$O-Q(hOvE&7z=3ow+3>3A~19y|+wrSd4BVM1zIeO$ZU% z^$ixDk?x@o{7KnZ+uQM^&Q+0W4vTN- zgf}MWg^6fHpR7IYm#<0Mib<-|jVXmnhsG8UF#(nf9nZ`=pn2@2WBPMR0{^8IAT&RLiIfE zI^sj0RNJOJ&EfmXVJxYw#<~R|SZG4P{dKO`D`sPRQ8Fk99_QZqm>BNJ z#lLHM8c(ga+2$}G)?q$P;4jo7-&s6&8*BV$oN!+rF+d{(Bx{nyHvU4J**c+3vLRp9 zD$x01q7Y&fjY7skwZGm74!dh-h)Is@HlpCbQ_6EdVO}F$p%dDioz>+j(b~b4vQfHLdb+5AtYIUIxs&VS4B@RtZj{dlvUXpCfgzvJw!CZKDziq zUdZMz|nQY<8f~0#q0NnMM`>;%G$fE5kLouO7_9j79F2v&0A~A7?Kv z<9VMWgQ1)aHGf|m_@NmrM*0hps2s%4=M=#=QN(@vAy_0K4~c>9*Jg>ji2QqkuozF2 zP3>e8?EZR|7_QX`#@T`HQ?tZAgT%H0Lfi4J8=$+&TjU2Pbut7923Rpcv$fCyErrvk zVBP$PsqU?+IjkB&?H>`J2p1!Qgb15nh`<;{On@N)%p#K8o~Ak7#r^jbG0dGdNo*5U z?h%ATc;2zAm^Fvh>VBFnhPwYAi`Tl*D8)h81})rQO%p>qydEOF4tCk_Tad8&yI{e& zyM@qtm#TGxliVNX!Pd$?F9;vtu`O1cXoB6B^2FF7n|{Lt#IudkX+lp3;IQ_0LD=mr zL+Q=orZQw}MXLBcH3xQV=mkOOjVFJJ+FBFrK0618`b-8Uv5lA0+`a2lOcuwH}t9?bi`Ba%VdLUye|%7yBW+o`7A6yQl-NnKgkZo zeAj~6lWyVU2%ZDHE~wOIu)AO$7U)=4ADkyfwDzHWC`J^fb`piuB=_xkV#mh#>xc`B z6@{_z3CtJ&zxKYwzp0`PcTN|mp9O+!WlvcoY??xWvWO{bfC2#u1PhWvD=oGqlmcZ< z*rX!x1t_L!E1_$^rj3HOY!Vis>_rfZEJmnWR*S+%RhIiq^A5yFfA`OqZC?lT!8mD=d2qZm z*}xw}7)90TRtv)k*YYf9{wL<}lb5=hu^D_E+9eWm01EgWf8!JYO5B9_jmZ8Orv>0Q z6o$)K2G{|97v;BWezWJdVOe9Oo8UIjA3OZa2&X{ ztmvx*>9n_jPmRT2_-fcHT%aqS`+kQ{7K-%B=RO_Qj$+`ebki+|PYa*kO_vE@8GLDO zzJq+-X#kGcmDj(z?s7QQq0)xHrvHDb@c-?lLIdv)|F@;WcYVjrk4>5$6Fw_ECNVlP zim}gpC&VTu&5eu;jf0*^MJEkTOq`WCa#j>3$M1R#jZT6&H!fNo znGh8hJvccOk1p;tXU&xw)t|u4u*f;COc;KdkIj{uH|;15#@n34fr+t6vC|{t#zjw0 zik*eYd5-z^n|Slt`B((;OP0C} zRIsU2@%}72J~}CJ!PNN3*o3LE3G-&X8$C5CF_ss@I{sUc7@agXF+nKI-IJy3Mal(I zDPI>}Y*1}txKZMfNbDq5rMmnMV)6X;~9s#DCL zr#A#P=%c4Yw-Ym)t4UPE0hFl9j+^eZ`J!2A9kWfJdicTk3RO~m%wPPV-2dNW^PRZZE@V@}k zsY&PRq^Mu?Rv}c7P(woM#Z0j1LMqbfNGCeCV4>5Jj%{@9sOaL=%%4?4s3)Nx3B@%a z*thyPu(U5Ozy3!RdTszH*W`aUWb71LGiDU=O%HJyszC$Ld;c~6~!bQ;o$OTkm8BAsQE z!BwE>^`1g42}AN-I#%GiwuFxQD$|P{B%P%OU5eO2(m4$^2rVSklF(TA;);t&7ehLS zhmOfzyIM**y(rJ_DzEzdS4&7(K|&)5?Id&+gMUfqH^kK6Bmm zLuU}WXH94q75`KCOedPqAqw2_j{=|RL<^RR@?NOJ@hj*^oT9*;|18i*hpr-BCFvYB z=(MC`HdhO&zI<_cdamQ`FC(F&24M;nC>I5O_2L4pq*Icvv<6)X=~U2RE{L`2q8Arf zK|&1`=&V8KH`H~cI@0NiUtFGobb3)_u2)WXb2hMI(BqQG4*E-;34Rivw|L1!eL zUx8~!jk`s8)c-}rX(S9FA=@K_u00bvJLwdnz#4R=qze({?e!>6Tz?fLREq*Vh14>B zYS$5HMS=S~3M8GJbTOne)u1z|NT?@aX$?Xh>5Qb)ef{E!jifV?&RK&l&80Iiizsma ziwm?6C|`>s<9y#SRjxNGSW} zxzN4hGSaC@r>Q|#Njfd*R7d_*o~wS@a95MWhysuPOITgMl61*p2TNY8(~{08Dy~77 zJe;2YCK9q^FD}qR1*VZsS%a>GbXKv0$6s7t1?iZ<ExsnGf+>Rf^-Vf8N?LTQ>Y?gh^UyRuAVwA=~Sc>Q(I4+o^%@0(UjM%|I?AA zkWfoPF(>vc&_cQx(uujUr>>ZE$)uw>G|71VRBjM&*t1hCRncsX z(f_Nz3qvk733VitdyMCWPDi?A(lL)=y3i$)E`@Y5k72q&2u&nRBVnb7Q0VNWvyx8l zF-#Y_QqmQR@?NYnuu2k^hyp#v>7qc{C|A>!i2^-z;t8oBT?Ofk9>a8@Q&sEG{#7Jo z9>Z@T)KY-hOM)*v*IFoX(}c?`crfmYI~NoVoU z@%MH7&p|pZ>EsxuS6~0G&G=WWRgo}86zDOY7rIK)8AX8}!*8Kuqg^dmDaw1UqyA5a z5Nq}7eG3t=kS|!TGA;H4M3b(PbQaR-JjceQ zlZ98er-Av=FhaaNsXjKh<5RkXEP!<4t%|2kLpmkt#9J0mosM+sY8}q9{zLO$W~o(2 z9c2`+TRbybDWl#Tx{1F=5e-9bBV`vaV?480k{q3+dR4$AAA}N)i^E zm!(PpA+$Sc@|K9BsbN^CC0(icY^u~`0HR@^@;%X$+ez7IP9(g1qKi_vQW~1 zKu>HZt|V5{KtK!#o~_@}^IWXciRb&X9MGzbTYA>xa>vDZ(uLn;O5s+!Jaw``NguCc-)HRv1gA}dK!wy zr;*YQuxkK8k2e*uk=Q}Z=&7b67OPQWu}M75#G;aTYKg@o89j7##Nr|3+)oRLI(mqR zr;dfv;^89JZp1@GtkH;vg+|=tiN!r%EWL<(yI5io_i*K5gX`Ry=w2@Nv!$D61S5MEVu^;4;nWGF>kiW1>GnSceh9qiKp--N?u;Or*&au~K9{B;2072ZbP08Eod;9IIk zQ}J~Z_@fpOVuO3sgL^0i52=W6jgQB4QZ*Z4SHk9;1u#_1IUkV0=6nJOf&Dym1Yb_c z8SB^vpZHBhFXu)ua2Pwmc?obHwtHL%j~A)a4sYmC8Rr&2I&3+(U3*tt3+Lgl;%wwSs6!7y_0XH{vWXzuz1Xckh5OEIc!q{H4ga(`roQLfMhvDOE zH8dJ<7bPk~L5RO%{{^)0>$@`+5sVgsU*7|Q{*0R#N&=00(#`- zT;~m(|CLC_G{Arg1~Mi`1}FIYLFkM)g6C0I=tP6@QTz~eO!zsM z1AAe+M{@B9FMl;UApD%00u5nv?hUkqtpfKQh8^Ws%5cU8jzAv644g|C-NW!95uz9z z;ASIX!!HLf1eCCi;3_}`n~lQJ19I5U0vM3jExMsPf*UI09T{XB#N(SGoW@DBITkLtLPa95lNj~AIT9(fTn!nq8P zp&ZVQCg1?x!8DBOn2_i=%KG_74u-9xFIuoFQ z|9P;HR2_t*kHS3ze$E*{8EgyK6pb=b0cR0u#d#1AHVq%OgC_tw*cJnfwiJ=Xc@+?h z9pYRCsQJ#tJde8K(N_aw(E*W}^CqAawiDcMCN5X(v=Kq^eC2ZXs#!dl7RAx-Vm(z1` z8N;@Nd(6X42^Fir<$x3VO7Iu+abPIlF(23elw{lxcxB)=3($;cIwd#>V94-1?g>o_ zpL`MS1E_#=AfSNl9!}*RYQ;mYdM?5906W2XBH)0{c>z!wWk3ZmHlQE)VJ9r$dPdx2 zP^b*t9^k=bob}7llVNkt0Awi00{#-<@p7D1E70j+bB+hnV4J{)fMn=P!E7afayV}= z;GYm)*=okN0+X@94h~Jh<%gDVkNe^AKpo#lW(50i9u72wtpST5AkN2fT!T{p z+X4RS1Dpn25wf+6tzU;{4Qzu2hHX81K16n~(S-70JHe?N@X&y50bc>^uq(mMH{$Yx ztpaZVOk4y08OY}TP1qqo{VrM;{2g#U0cC>u52?&}dX9mZAh^B@gpVzVLfZr_a5O}Z|t;zLZ%=wrJHs?Qq7SP~T1H)?s zmJUB>3t)w9NyGVm=_B-Hi17Y^WdM8m2JovN^I-jA_p&)$p z#3lkN`0;Td!^cgm9GN*w`RH8m<8=Uw08G&1(;;RDs-WTgH;~Sc(uOhspI9_Ics^i- z-v}z|J!iV6+4T@C;xJPz*ok?*TddPH>Y#92soPe;MY&>?AJ~Tm&e2 zncxRN2yCq4v$=qiYrr-@1;5<@!~b&}4HB3jGyZ==xDOE~$?P^T8GcNZS%)vs+vCxs z;2D4(emyu3kil;U{|Y2?J-EXT901pYX8=a72j>BDt_S}L7*co!7??ye13*~Gt*MoZj;am@%50voozryu@ z42j9ufLS-IU4#yT4VZYdNk9zzn0zx#yjdCioG$`N@M99rniQi?z>kSIn*=Q8dN3y9 z>^9efzXw)wJs1;lR>k$;iNM-;-2X9&W|%NDpP9%2z5}Ep118U`!)`P${Fp$qC4dEf zOrlv45CA_W((ECS4?o+3qXgvetHAStom>wt0u)>iW_$4;*MoZ*@Q;#b051Sacm}Wo z2;mvPe*&dE!#-pH25~+31E36kOu88++$;=!&b7bB^$i=7Zx#WRLxTx8!{nRk;OG23 zPzk>QGjUdDKdxP#0UQBT@eJT~Kob0zm9tBL55EnAn>f(a@XNsy0U7){uo+m%D*%5F ztcC3a*E@jLf(DayHW)~S9}{-A`T)+q92+oeXZwJ3Y;b@d0t)!?B?TJ^Wb+K*)qs-g z!B>C~*qF()u7_}iL4(;mn*t1iA2WJ}**rs(XEnD!j241l3C5(JorK?nSw8dq2F-#E znBgAXzv z8-N^stN^fhKmi-80PHc4Z-5BjCa|u65*x4_z@`8pu(2e-UOJAxzzYHo22?yVc-IM> zW8489;AJOqrNDNN*5y&WPfy_#z|VQwY25W-bB+OuxgKn|j(^T0p*({@Frb0`Jdzfb z!6(9O-9vEQ!*h9IPdIVV*|)a`;_2S4Ypfh5@Ok$9Kk^SXfZ zAB+uN7jP8-YS>P&;(PRP?5PU82v`ZfrVImU#4xAF&cQfN4vfnwP5 zOPEaodPE<(M}zVx(FRwbPm)*z1B{M<0|^zl2++bV1y8(+X*nv>fptG(954?ycpjjE z#t8nv2|p@hKjCHt^h0ItVU9!L`v~xdpK~rChiwPHat-G{if6cvClU~c%Ix66a%7kf z8_Xj-c?2kD5$VZU2bA$00!IV4VRP04k6?4|^b49Dr_TWn{uTXrqO4VVh6K>(sf}itDARYGepi!whm~_EyoF?oj=WM_P+X?P{2UigECh&jm z;>LxFW#DtbAlQ}Q=9RdN=i>gagfS9Oqe=B(**!Eb3gVmttVQ$M!3};#p~x%;hXVfm zXu$gb6OP6KuKfpg8n$~hB#)eo1lFP@I4=P#usLrq;GdmHSil|bqjFT{9&pM7QKvn? zwTnVIXFNnR!seU@Furr(<3I}Ep(>04fquM9@L3=jwtJW*55If_oQL1Q4e2kOKP2Q} zH4ufP*Z+-50X1(@aN9>1fS`p$gyUi8-9xTI&^$`IE5kAkj-K-{;4p6q zu)id+cKlR=vw()M9pLF+XdQl#UO4|dkm!QWQVJgBjZTBiMzG2UM~kNBya%X&zZBfT z7nMP;1TU$D8x>B05nQ*n#Nzmlf>U3XSQzqJz`p*d79$=77a0vg%a4t*1zXC>7tgMg9fna3dj9+KR+#W6C_8S2Fw*l?}0XQ9;2R6V#z;^#J z0{-I#P9QDO#fuuEJlLGgKuIF*|L(tgfFDF)eE|(boM!@2u-$*L;A8kofO7abzuZ`2 zRj_#|?XV_@YK86oBM$t>9SVUm+|D^41a8B2{g?yJKmRoc{;LkM07NVEg1|$70N9)- z0bO{ZVDak)oKt}?95LrcO|cy|=Z?T)*qp}zsjzuSZyL}Kw)<~T+%&+cYz8NGg7Y+B zCu|<~dkHYX=CQv65c}H?JHcasF9Id-Uk1xs;503A@lUWD!Y&6t1pHxFfj70pK`z9O zfHPa+AmPsj*KdvU-vWt-FjfHy*!-tKa)3dwtzd6CDuyiwhXNYdgTSdkF>KEJ1F?n# z+W{WX24!#!IIOM2&co(x0UWTc;GY4X#W>J*IRAIrL4ZUhSk@i|!sgr_SPNSL)&Tji zIY$FKVaI@v0m-mWf*%3tusO?K#Sy~hJPDW#dos9v2VA1C72v}_yTt~VQGrA_HgImB zK&OM<5Ih}d0XrSM184|)Cs@}}VtZk)1aARKVB5hDI-#e-t^)V$j7|o-AJ_zx!M1P) zDq(YO^G+9tk!S}_0Q{EVh`_yHLkEN{Q)0yvP{8JK`yoIVoJ-E50VA4}GY@vR!{*F` z+aJN^ybBn#n1|pE{&274<2wwGjIg4Y_DTc28kKn?;qg~yj{I7By`B&A!L8X@o7lYN zYpJCaV&3<))E2)r@zdAR9`6CHzIn@jsbyd=>%!#B^=~((WI?QFwTD~X_9Ewieu!0N_1h-jrr3skHsPF@yB?ON z8cMd7Ze^K%nX=4)OnIgvQ<)i(sm|19#$+aErevmNS~H6?OESwcD>ADx{jvhG6j`b) zb(SVeo2ARrXPL4rS=KCjR&kait0b!|%b8V?Rhh-I{jz1*0ojUdWp+rmDqEAS&DLed zWG81Evs1E7*_Lc;wmrKzyCl2RkX@GT%&yF?%4Ru!IRQEH97T>YN0p<_(d1}zVsi93 z$vMUxQ%+irCC8dmoa4wT$#LdXFD=iKXU%iumE^TA&8x_(%&W?iSp%$c zD{myVRcDQ{>a8hOlQqq1w-#F+MNhwxno3e}QPZQ+S;-KRugX{FYx1@Ey8M`YeSUJj zF+U~Wl%JMw$+za)^NaHx`6cdY$}`Drm<;l zI$MlQZ%eirZ7DXBEzM@JS#5S(vCUyCv6b4&Y))H+t?|JSJ^vUD*a5!pn;(m$$iE>!nWbso#58N2={*S>EOhTqn$} zk4p(dW;H(E{=lq#Hy@90Ilal}ri!EmKO|gTZ)$er?;lsK{H&$jvbZMvnt#r4jNKe#(np{^P>$oBgu{(Z-GKi#X6>*QpH}c4+>>s;17t5g9)| z$WR3AKWX}?P{CfQe7}5R-QUjn#DCx$`g89y<2w7S9)BbE^SdwaY<17u@M_WU*{?Jj ze7)VMj0cgMXZDLf*Jo&N_0zWs>Z=cQyyd4dZ5p$CLQZDRo^9LH(BI+f8*(}xHXSg)vtRh@8`|&tAFob zKjY^i{f~aovQPHapsGH3OK&Qkgxv~XIrwz_*ZPh0@|KvCwOk5UE|)aQmbJXcx2)^a z*r(wu!w=@3fA^QNG2MQ;J)}iy==M8FeT&APLI62_g(cy%)X@-lN1S!*6x2H)>?yq4>M!I|iAR14cA>@Wth_M*bZN|2Fjxxc`c8La#v0 ze`-fw-MMsc$@Iz77DTK1WUUA^cpck);kO5Ggxb7j4)0Xe;*M9dxIw)?U3dG+?B&TD zj-Tq56Is#kK=<1Fvu{ULTs^lqvFh=EB8HwlGf{P6+)qcs$G)z9@0*DcUoQ{u(owQ` zDN+M(Z5;7w#K%YdHjckhFtYR9&(Hm$7`MOer1<`9%E&jDZTM~LQIer?FDb(u|WxBcP%s@Jq7ejPNuGpCvM&noP8q1@V|ZRbflx~#jquG5VU zJD(gIcR1ov`;Du=YIkDtgm#U6k1V(;yYQ%GY(%}EFN6W-Km(Emo; z?8|$a{KP&^4!YH8z{`0{HvH1|(R;_w^uBVpljOH#>g@@;;+?N8yFUB%u77?v=cQXm zkA!ybo7!^bww!?*CXBhX>Uz+GoPI0T^}1_Koo;S7{bXUmfA2>pw(8dC>h3q#lt`&| z-JL7mTzO^YpZ-m~s|Mdc8GrkjJi5hxpBWL+Nk!&TX~ZjmzV~oZUUXfQ4MV1!ygl`& zk-d|SO={NX^Ml820c*ROy{}7CTLlMoQ}*r_)Lq#w_Ub+)D5!<98JBuDXb^5zluO+W zX>(q?x$Mcf+I6ov6Lxg1>NCN*a)IJ$)7A|pjUKyjKvZW_S$eA<+bAc#YI%3~tRcVL zzn&Rzedv=Qg=*x@8GEa~!vCqYbKskQ3=8e~*858$8<&5l`>|Hb4WC`ix^IxAlYWG7*+qSybF6M8)SUzCF-DcZk z;`HU4zC7lz#ym_l?f!k-yzG%_eJ(}J(4B3lR@TZ0y}v&=w*EU$13tU$Z3>>&c=Q^3 z)8Ed0ymJ5Pp_fA5u#6t>Xz#T-z9`~nX}V%N&%)4VgQ`gRrQeOM~25RX1iv zHOP3Jo8dKnn|9s)-#>U#a&F-9;HxL*jt|^WwVE7pO?u1sy@IS%cd427Ml`Gc1ZAe{r&oO3u9jVPBh3r6! z9fMc*IQr_YYh%Z+_nNq)XT4RoBeo4YlvTB|MbnTk-)XgNUwP&GBUJk~sM$&NXH z72In1Yta`=M~~e(^U92m4_!JJv2W+v^jSsQZy2@5OkOvB?*E@UQ&PTt<^9{Idv%#! zc*L^S`oES^&&}oj>aP}=+yAgjXIT2Cv7+ni6AG`$c8>eDqO1CY*u3M@Pha@&Czn@E znf7>rtp5kY_y4vjVPKuRqq47U{V2PScXIzxgWfmJ)<2$puT5e}^m`4PKAF{J=rDCv zQu7&|3TML z4F)D^Pplgh`u#ih!Cfx~92;3{f&Ng5%WqoX#hTEFBgLwL{Qaenu!ii6&}vG=Pr zHy=MTe&3{Q--U@@=|87`I%QH5|8>(#w%WgYZD;vn#m3KqXCAHfAR&5x+RZ&SRlm>1 zzjvwL8=HPV@Ybzue$makznWEd%I5qD>zgl7Ev;Ai-`|G)`9Tkxb;UcWaP^o0bzbr*=`rZ$vSy}*Z-q?ET>kee<4>dh(l(#dEp1@M(FaTK z_naO$xt@H~)^VMW6i-~z;g$a$?=iCV_I1k!nEh`_@h`p$uDgZ*`9n`-P`6$|y}JeX z2zg7{_Sr@Gl1~sGyM6Rqj`di0`@x!h_e^uYxjOIVh&>P8TiMsu%9GzZyMvvJx|Li0 zaPpF_>n$zzG#H&(d3?xw-rp?i-09%Wz`b{Fd^)aK!`j1I-LkX`?EC74(hm;T9dP&9 z+X;pfP3}&Z`0!5C=GKhf&PCcU6YKtPA>fS@Z*4!Z^rOg0fdRW6FJIHNy}b3@mw!YJ zdAiuVXi$$Qoqime8vEwanWrL}=EVM`n^^w#-BYKQj0*bI>-5Hsk=m0W zvoC(C=y_@HuGBd#7HmB&dC&OY!IsB$_nT=u%o+J|yNO|i>fo?%4FfZ_KKyOU=C++; z&UN`)dNjQLqk9jMZ!Pc4t~iQkD@J5QJp7{Z8|Mb@nscMsb~fg(g|p6u>n5uota$j| Tp-&%dKKNDcI3GjxXpj9L`WrM5 diff --git a/lib/3rdParty/tbb/bin/x64/v140/tbbmalloc_proxy.dll b/lib/3rdParty/tbb/bin/x64/v140/tbbmalloc_proxy.dll index 01b0bb990f5861cda12504207c3e20f44839e35c..7e5330959a9c068fdba4232a2dee5a7c61995758 100644 GIT binary patch literal 42768 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�l4Kh&)x)% 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 z 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 delta 82152 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

    d%Ui)ugPb@{+J}Qame$ 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șkcQ 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 azZmdK*A8#SP3vB`>ttR?UmJ7UGyETA{S>PJ diff --git a/lib/3rdParty/tbb/bin/x86/v140/tbb_debug.dll b/lib/3rdParty/tbb/bin/x86/v140/tbb_debug.dll index 7a29cba4c445f070af9aa8df1e1119b018223f74..96c5011acfb716d329f9ced4df6b4987c20dd82e 100644 GIT binary patch literal 375568 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 literal 379120 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](4)t8e z=RuSLlocp1p^Qfvh(e+Gq3CEs7|L@f<58xgEJj&_Qh@Rq%2||KD1V{&MtYbylz}Mm zC{s~pp{zjJfKrI^3CdBF^C+GpJWTCT6qNobV^ORqIVh`9HlXZ6IgD}^r3|GG+C_f6 zalO(A57UPzi&0Wh`lAG(kUcuw@p;|eCjq!$4n;?aKpBr>MVW`P0i_V-D9SmMt0=#s zG)2F1D3K`SXF5LfP&T0yqI`&Q80Bk}b0}9)enokJ;x!u2&7nMrLZS3Wi9m@$nTV2& zG7n`H%0`qzlwy>xQSP94WBj_K1fdK=Nkqv&c?o4M3i(MP4@pH2#KeM0%e2M^2ErH` zX~6a5ai1FBz$lp3yI7)w$euXSDIj^V;}AF?ClWUSJ_3nynM`lFTB4(a9nT1bSu^_B z(*DL#M(*J4>PG}6*pls)hnU{1eoUV2(}4(za!Kv~96$WnYjbvV+1S`-IUP71V<~zZT^Y z4reJYF(NI(FxnCtj3G-_ zgD0E9T*=cqFyg^vZLZ1mvvCgjeNb9_0(p3zJnl0vX-r0J#uU>Sax}ikN=^t#N=_II zr=pk1lu(J z>KBhUK6oT!en4rX9l7qqj4WG1cmfiuiEu_urc95B6 z4f6;mEYh@*oS&7F;Fx90T`-SQVy%O0@`^g@IrT9aax&ZvoiN9lR)P)2<3JM=!l%F` zOX-(7HVtwF)P7noyYD#&YjR9@7Sz_KMqAOJ(>;c#+B|{y3OU0>#B{*^S)@lE`gN>F zgd^bUXrL*@tzV}7kF<;stRupMK4HWm!-x!U8oBU+VDX_~#insM!_ZaZ5;7b|en?s$ zPU6W~>Ew1sn8p#rCM7m`K+EeB%svb4*TghDWt?mDL>D+}gz26U zmzaSkk)siDaeCwuk*M@3co$0z+`cZz)EeImiy$6#5+tXy{W$VBsLI$hBhF*O6VK$R zpecwnB*pcCM!}QHXlWd&yD#~T1TFCVv+e4YXWOq5OGvK_&j?7oQOX)F%6h|8y%BKr&*J~*P^px_D}y3&Qz zZ}3Sx&VVj6=2CO?Y=$*x%(!6*=~$(Y@f+lU{)1*VnTC?zQps&u-J&POWyWWvn_lq1 zFHj~X$c+8l=uDHZ8#+3Je1G5F7SuDDHn@)^$^y?bM~^{RBGqbW?u5zM57~vN{M0n) z8~23CN$87U+-YoF2A;Y|8-sjpY8;-yHhM29&3;4C6UV}hO|_22n=Qtn>8TS;&9omIOxkF)wm!IXN|9QlhCY+G$u~ z>;`tz70XZ(?GH*u6Pxrp=}(91#>{{vL58AI$7AohDo0>#F77qjN)`i~Oh3B9WwHlr z?B9_4HfXRHxh{DuEFrqeNmtP}^bs;Cq|>fA{)$Et0_$mQJ$VGE?YG`8(PRLk$v$t( zZ7m_UXc_{0kayvqoN&%pht`$Lm= z?hZHa>|&F52{7+Z@Le8`J%Hbr<5+wK9z>m+aSeP10=v0+b7{j{XYh6;+fUse7)O&I zt1~thx_Otx*8aY(Vq62SGw{yE_5ARejq3&CGYrLh3+@qrllM8TLmjTT+QwaO#-7*( z_$2SJE5avU^^l@zQ5khJ23`(lcT>$ zA@zH2aPv+EM*5!=f&~Dx0wZHV3c-SaO#?>8g%pCt0LuYJ#)uR$4#~jg0VCr@3c;oU z%LPWpj}+XdX(_NgU}P*wA=nmR<-m&ZHz@=w24*5-gnlQ*1K0^*p1{bskV3Glz`TJ4 z;%`z2Ru0Su7#TBC$as0b%Wclj8^$3akw< zGWHHE3fMYeWE>n=IqU*wVcfMq*jTY&ikD{#V!fdv3N?}VKO zMgj9)X}boQBc;GNV1Z7UX``FB1}xnPYXd9@Sb-BJ0UHRc%#NWt(?DPm!2DL(u0gOE zU{S!roG>e}cwpI1*gRm#zzXbGHqKoK%nGc`3EKy38Zf^%ZPy^jodA{tEXD~d1vU>@ zt`p|@uABE#V8u?DKd@E6%ABwuVC#VSt**RAJg_am!kn;dV1>Z4ov>BF_5mw!!is<$ z1a{sDD*<*CnD<+i*SHGo1h7CS%(ThP`z)|@C#(&yi@@@oFbv(Y=J$5xb-gybd5;7Z z=7a?RivgDHgarXh1XkdL#Q;kOcHRk_3~U-O?=`k-5FNM_SPrl-C#(S2JYcy_*im3h zft5I67lExJ^{uU}uN+uDus|owdyAX*MqueqSa)CrzzUqOP+&#C%ABxdVEcgit*gAo zJYWZbg*jn`zzze;cEU~rD*;yEgxvvl0@!&c%yTQ|3o!5X_G>_K_yW5KEZqs~4(uwh z5+^JWSQ#+9)W^_632G$)I;RKFzPXOb{aZcD(U>Z4&@C5RMfA0ee1ZHptJLbL3%{vqr;SrAGx&w;< zM)-sS(||>h`oJF?SQxN)V1#ElutZ>!ff1hJz_NiY1xEOV1Iq{I4n0mdfCDQ8<_nB) z0D{#+ISecx7_r9=>@2X2-VNMtYOahkc zgoOeN1a{sDivbo2jM`RN-!x!hz+#-RJYXY9eNI>*uoz&)PFM-BL||ohj1a7gz|w*F zZMR*6VE2Jd1{UUoc@==`0Lym5+5npatiTED4lEZ~nG+TWEDsn}Pg@J#S153AKgd4^K^M_m(IAN24bq7}FgyjH}fKfYb*C6Mv0~QD@ z-3coM7E0=K!VUuqBlS69XMshL`U)%Sy8|qq)Mv*C2lajrwi{T!6V@G=6Tuv}pIPFMl3JW}5-dwn?fAh317Vw|wkz_tJ@ zbHd7i6#~oNU3sqiPK+L+@WTig2wMv*1{m?l2t=^jeu(ZO z9F}laqO%B3CA^gAD#Aqx_ar)s@J*tZ2*)J4i113He+ZW(I*0H_qGt$aB)Wz0M50d! zHzYcQ@Ij(C2nQs(g77|~9|+eYI)U&zq6Y}4BeG9;9Fcdz-H416zDDGla5N&zgqIQd zHMkgLjPNfar-XAA!Dl*wauvm|2>pseduAkO{(rhzt?#L*$0= z9U?0R$HBZOyoT@?A{T_a5LqC6h0K4#Q3xj?^Pcb!!aK-(CtQPY3o_3MpCEIaa0tQ~ zj5!VaUp57@_7$#$avp{H8s}poP+>0K*(j!AF5WRH#VGN&A;Ty{|0hSdd(TC>pmJ-@7QRN!RY2%WxFvoc9j{WN@-=}3+$wDbCHgKd}tIiAK zi$|Pab7@7@^Brw`=u!>bl=E2CviPIQ_cc?aRnLFe8k6dMM^;W%j*YSCqsnzsVlyUS znc5@g3aKM5If?WTPj6-Wp#`#*7MyFx%f;QvE#R(O%m*wj00!&V6aD zPOBE6g2U-8B^yww9Mp~(t}>i6b+EYTU0pz%n$DmfX;bTU(5Y>e|C zb>47`e>xT-VGa5}T+N^A*DJ6_O{5p9%&&_2Y&Pg|D)py&*HW|dypk25l2r$i&og{P!b$5|5{I@Naf|MTyEy9b(~LII^8 z%0LvdZ^dAgXHl>m25+!NoE(MhLr2R0{QSS%11^SRh;1XXtKOxH!P%)=aB^HIN=yOX zaqmddIh}mpjm(}%ycs3ZY)(7J=1!t2VQiB!0C!73?qcU(*8mt~ zEUrO%BpvmWyC83=x8kUpm>=GiPx_R{+w&bY`#naV^}yBr@Fx9aqhE(rT!Y--Fr)v- zJxs)J@pvmg`3XRAZeN7a1LQ6GDQIto(KqC{AnXF*g1KaCH|bMyH;%C(f7wRXias2J zxkqXkgB~A;>%<%FA>-K-b%ddgG+`XH5N2m+d~1(3fP!COFM56RvHOn{?oDXa(u1%GpQyl6)TtJforqi9FaO z3VXUi7LjGZw?u9-akjHm;47?!A^-l*&;JEIfJja@n(0pYP~9k=ilD4i4z-k8M};tv z%oL_CJCKcJr?IcFud%z?ee7rKuk1b6g*(Mv;{N0;d=NjF-^G8%KPB`KHVGdHniwLU zlFm!PN`ECnnV|fp)KMp>Q&nHBv$j&(qejS7Qc+Y$=~BA3A2QS!dl@|;aj1TD2q3xd(r|q zU74zUrkqr+E4LIz)zks%x7s=Fs@BQOo1v(%j|Z;7gfl;Lb@*m{FyEga%1`8H@`BI@ z^(_(l$kB2L&Kj=HROhNo)sf~g<`;FG6le>RZlK<$hSHIA3_YJdMW3fXV@@)+nfr_@ z`wq8*8_Q?$tN0E4L}8wgDovK2l|NR$P(L*vGeez_|4oOeqtq$tb!I(tgL}Y*@Wc7l z{6_vazK$?h2p66e8jGF8apFtjL}{kVK0%+MgP8tI2s@mu!!_pw+}|nw5+5RliyOq9VjZcav_@*JozgC8^~|mH zv3i#Nt{!3;Zh6%LWskj1u+JOo!}4qpo4{JxNG^d}#l6jK<{I)%`8H^!hoA|)gaN`X z%cqtfEM;WevQ4H{_-H|OpvF>J)Me@})t#nkm7YZ}qrahlqwBEE+1J_iY&V|b1zzU| z@L_xuAJ0$WU*c!*ukv5;C1~Y2{sv#hm-FsIE8$6@gV06zOgJgr6?{ZiOcTEq&xsc? z!sSvMxtlD=!E$$1P)De->O1NVb(j{by`tr6opeU;X$i9IwtR2-$x>>;W+*0X8)Xuy z@2CsZuhd^uOS&CR(HcFDo=MN8m(uI$ZS+ohKm8xH^bYOIh)iE*5Ho_Az+^B>ndQt` z#*6LF(yYoxu~XUe>}~YxV6L&~BR(mbrQuSn^diRTHEEHwLRu?rl(tE`q`lH7Qi=4V zbVIr$J&;<<9puh(Pr1JwE{~AYU8SYcRbdrT>7$HN z;*@bprZQJqqP(H3RrV+cltapK%;($6J;hCJt#(j5tE}2z4afaQL!xG=v(>lMJ?a7V zkotrAKy}mVYR$B+8moy~A8nKtr;XDxwYl07?G0_Mwnsal9n!wj9%ydny5^SVu4dLO zng^K2n={Rm%(Kla%xlf>n0K0wn2(#kF<&r0FuUn>^_F^9oz+FXk3LF|)5qzP^tt*H z{SEyceUE-XKcs)7U)OKz_jET)YfA@9XA5iTZwa@Iu*6xWT4q>gTb5WhS$1Mv4p`1u zE?BNu?paLv$f03u>Ql|AmY6#V)raa!jiAO;nbag|2DO4(OT9zwrjAg@sc)zss0WlA zU6*c5ccoccr2EjL=s1jGCPr}y{RX|3-a{Xt57Ecz>-25<9{o4nn(4rF#(0im;+S#F zBxVJ(mU)NS%bZ~@FjttrnbvFvwlgcT{n>DK1Un9+JA<9gzQyig53q;W3+w~djjPKw z=DKn$Cvp~U6c@*ho8QZy z;VYTCE!-38imk;CVrNkl`$INIh?B&*;u7%<@t#;; zY6dBtB+ZqUNN+%+)t8&eEis1_xsTizGibb=DNlk{*d*_icgwfs`bsm*p3%^HGnCnw zDQA=m$`z%vs;GU`zUs^B3Uw`Hq^{Ol>j2Fw+ULV0Z3X7SJK9d|jCMi0qTSY7n>#?i zSj?l$aprO6m+kZ5komg#w)vj9rLJJ?`|9EPcs&!NKSN)kuf^!^)Q{-LG5Qyv$K5P- zEiElwG4`URuVoa*ew<~JWiH144a-}WJsA5#mgANOL}wIWe@KkI8&wx$uh>U^Dn@-a zwS?M39iR?j)NLc)tlEfAqE}$F-=TLy*Il5mV6^Kq&6t)LZH4Ir=^f2XWo9t5nI+5~ z<^XeuInF#_+}OHoOIBg~uzfMswvk?9AL(!GBi)iyxISE8E}Wan&ERHp3%O0)PHs0w z`3!e~yMj@!4|~xPqpa|K_`duI`$#Y3H}O09-LOZtkscw87cw#47la3bn^;%Ow2$m| z@rZa_{6-X|{!+L!LOLLwkuFGAq$lhnJ6m2Mua)1Cf3}aP2)h}sjHu8AJC!5Q0^cZ4 z*hhA!dPF_0exqJd>qFXGYTdN{TDUd>(mqw2q0QD7!p82@c5C0*CA~Aob%Oat^9=K= z=4Iy9=Jn>y<{joe<^$$K=Kq*an9pIHJL|n*6W-T9)xW@KHn6mXEO)W+7TpqT8DJS| zAJbHe)$$TX^^oNv8OvhqUx~47MvbHrsZ>bqW@$ zn?Sz+iM>SMrT?H=Muol&XP#jam{cZ|d-GtXwOu9oK~mhF*?>y-MP;xS8An*sb;4yWIQSr`&(Q8!mCz zxL>$Tei|PujuoefIbxA`Q2bInBVHAoOA1D0j`XF}Pku%oC%+`WFMleZl&{JzimD7y z5|q`-Mx{vkL@8Iip?@VcSRDk-n*csDNzI1#ov$uY^VO~Dd+G)CzWOILaAPf6%fKis z((<%5+79io_Ob9HpfEdQp{HK6mzzDF~;U&^B3lm z=5NhELjKCkUV0noUrjHBrahzopkLD)SiGTW<1KlXH!bg2KDYdAF_nP38TwSBG%AFO zq@t-fY66u;O$CozOyyAp)Glb!v#`*2Fe2mWRC)?M12%dSY~Tmbo+qI@Z_&TgZcHo4 zlFszQxFj&Mm{ZJm%q6BS+mLO`wud#;*^#h@)Flh4sgP~?8g|J6YTfw zWwtKog>iTpdh%UJ&rPlc)`qWehCi^UABr0wqsrVGc0=X778^+57h_hBXn#o z1|P&^dX-v$`z@qCz&!kpI!|4vo}m4pN5<1>xaS@W%b1x{>?O7_=8ndNaH0IOyhVr* zXgNfF9ek^`(nT4qjnQ^#pK7IA6Y~?ek{d?gP5p{K){JDiq7T>0br;Cs>z4JF>z3akX)Z)selEY1kC&39OvzhrCl8Rr zvsL-c3#-q8C)Vc)M>ezlm8DULyVgQ+1@I-Nzo3_HD!J_e3@j*eo- zvNIvkOW9+P;{fhywD=kBIWCcVg?o)#4$a$6=q4MC)BsQS4O3SsKQgfhdJ7Hmg$7iQmB%(@Od!)N1O7xLTr5BQ7xExxnRT@Zw$!fD}q z;fl}-+^wS+Cl6UC+Caxq^FkVN~;3z3J*n$iohpQKEN-aVn{u%?65De4^b zz%9tQpap6ZplP?EFD`3kTCjPDIo&+f{I0pk{55#fkMK3HzbM*w3VfplxW+_wIy+h# z4`%p-^twz5Ils(h}TR_dv~(DfEIM783|+3EuI zP4!pRMT>xrU#_i(elOJO>CN@ly1yQb5g4kswmb!WodwR7gN+K&|Ii2fsZZc>bf&x0 z0=*E7cQw40@1T8IM#2o827UV)^AqzM^9MW_9yYQUn+E3p0;GBqr1~IqZ3$b-ma%s* zv&z|~TubgrE`ytdky^>+W2D^qda#S}d=8lW65ds)D>M=Ugr@~gcu&|Ze28BEPPh-g z!@)xf6jQ`$kn(rLZQ?#?-+EGWskP)Uy(_&h?U4>j9&!s=lr=D&k@B;0yj&#jmk-L{ z%IDw#-IKd3v?3`vkpEoe3#A0M@OSu>4b-OK!`;D%Gr@Lp&`U?vZ`E_^Rp?`OHM{6_^oHO#(R#d|s&COh z&_9GNBpUa!-q$kFGR86mp3-tlvE>hoDGdA1Vtf}u&wNOgK+Cw&Eudut+Ds>6rhh`~K;Va%@nzB!^UErZT!^Ycn=t^i&jvLFBa^;*0?+HnLpFakV z=r;PZpAapiLUX())Dc^XZ6O1nik&1@>L)!fCCkstlc6QIp`Q-Omm$Aad;bs*I8u#+ zUCM)Ra7w+T5?wadoMk3HAMxJEY&h~1>T8UQQ+{)a^90hxsX#N1UF;oxJC+lUZ>~EZr@GETb)n zmWl8^7FkwXwpc!Z-+?j9b}=19yV_7)!8!*}qp4(S8a1DKliG$cJO(eL3?b1b@DYRQ zaQGKiItP)6Rdhbab0fWlE}#qPB6=TPOdq5V(?{tNXtUGwSwsOY(p}Mmb!{`K$Vj=qtyOP_*eZhUp6~QaG!TSn9LX_~Luo@n2snA9o2{y7(JS}=cuZ;u` zDUz;AzH*S9DCa>p+?NB;M{|@y#Y=6a=EA2%Y#wsmje3>3N0n2JU~@RMw?7?0$I_Ev z(F@SV&*9OYrhldXqCH^kMl-P(+Z^Ty=HGedI&66pSn|&BYc1?x$od=XJM0$rL-sg( zhV97p zSGBI%M158rqb9?rou}?qPpE&Z?ph47a9(-dXp3z1Olg1cr zx+YDOUzJ_KxYxiQAB8pEq!y}~+EQrSwc1yRnw;0Rn%^_;16%$Up7Bojz9e>%X?c;f zqrk=B9yWb@12gFXHIE(+sfsn?F_*ztiFG0|na|K;k>VKm28H4&@sc=QnvDp;+vt_M z(vxzOyiM7u>{nW-9o0|Z(|@J@sCLqL?Ky3gb_*>1Pct^tHn>0lVswSnmtfd!p>vkf z4VkfsTaYV_;tIL<_&Y)iSh^xZWAwFi4IjA`yh&HY9Gbw|kZ4)3I#NwVv@2iThF(9e zo>jfIcDSAemL^t9)aDs1mT*=xq%Ot03U`0bd==Z_dgzVyE_x4L($jRS{*r!L{~ioU zu&D4ClF%<(E$>+v$3=@)D_&t-xPz`42iA1 zgqX}Bx(?HTX^wl^!5m{wfQ5Eqd$Jt7xKL=%QEW6jp3Ptv{Jf>SPd&nvPCAE z?RCt^-b!C(urf*cNU`xBFL+r4wRd6d?`q@p=k>;xR$ze}ET;1=*lQQLQusfCm~)L7 zU&e)PfQVN<+Xr#W>D)YS1-A||bb>p_{S7@hicjP-_di$;R1gJtR&jZx{2sS5+%i}h1dtrAP@Rt#9 zi-*kSiYvrXQoOVQcG)D?2M0eXM<~x3*Cto4ullHiF>9>qOYlNZsO{i=J_A+))`1^a zWCTnmE46{zN&SYXO*^_1{WRSM+R(-VZB>8up8A*CLhGnS zYB3sRR?HXS<=oa!SuT+}@zmW$e6*)JQ#6=wTe=0~$D|=D-I#3!k3N=t3DKMR@IgKX z11@EMV+F1s^w)IwfSVu*7Z5M@5kjS5l2v+1ij)&D#tY>w&^mj;EiTA6WnZPO(plN2 zeuk)Y9q@zZW(l*suQA^znG4MCn?EvV=`Vu|T+}@+O)Y{Y5SnO|B^Hbz&$14-?-OEQ z{9KKB?nyPGo`MIKK)piEqH@s>m3rwg{WW41_u(OQVS0dr#W9JH*@cKT-iOVo3kDX% zuEgBg#9m`>fpblS7T$_D#9hqVEa4*|0zPUS{L>@y3CxRIun#uhC<3!XRCVajBt!(~ zs_WFv>S6Vm+CcM$E$yX+XoJ9l^0fD~ecF%O4aCDK#Cqb*(-HGqWZr^Uz+Q7#oin^k zH%mjr@Mzf31j`EC-S>#tnJ8BycHR+8@;#=A@nKuDWBEyZF7FNBW;Qtb@6uo3wefNi zB2-T+3_P~y5X($aFmQpkIgv-Lft@`}-J)(&eJ%y1WHIu?9il^p{0Z3oi`Y)Qj^GVmtib+{6_U|w`-D%xkM9V72tndtcsOgt-$XY_ zmx84zDGqG7u^b>X@<2IK&VZNpp0XQqe_6S!{D$qw1#^&j1LoyDbGf+=VzZJSsmJJE zmKK&?mJmyrWsYUBiv>}G?enk&*r+{7wqE zzsU8nv%g`8a>ep5gWE6QyNSFQD^3uPi6;;>A)4W=@}qJ?;ZzyE(FS;j%Mepshg{1g z*lIWPDlq3G`U&VsAIp=72}+jUm`U#<3Vh1)9g*s6S5qna(1&`Gk|`Z;jmrU}Swg*y zR{oAiy(i7n3LQj8)A5K@%%d04E9rOXFX+0A7t;cNl<@WQ3kf~@aOhE+BQ*0_eBR(f4A_MZicoPxUCejnqF)2vyhlu5#ES!dt=);X5#fMv^Zy=d;o! z>1Qy84)W8;S|!1YUj{ot*y3U(L!AcRe_m~(JpoVsPpzZ5r;$DK(p%`XF6e>qY0C7L zmUg6l`L1}h0PpyqiYdY)H-YDNVtB;iE;84U-SUUO!XmnG7;(1?>~&}*SI&oTg_w@b z>l=hNMhPzoGlcm=}E`2ZNb{k74 zT>k*FOurD#k2t8U56#G8Gy^B!0vX#&j{y6-%#<@-!CNxf$%p~G&2EKe`kegx=W*^SCCWMD(yzrt1q~+EmHHl{Fm&BXxIQS zf@H+QUQm9;oOMxKs84_~rh`4tK`hcmYk+9K2EBhk`_h=b#b%O+Y@mB1Vz23 z%K}>tuf%4z>QNFkluDs8;1!u@4`f?jpZ)G2yI90qr>LtD11VPnw5M@*h1!RRs+MXy%)89R(1R{| z1IS_ncSu8jd_+C1Mhqzvjy{} z5SDEp?(#3Dq2U|Ffnnw&7P6fU;lf}^PI5yKCmbaxqDAZ{&KDPptHd3M=M{^-Qd_CB zv>j1Bf4PUuD+=OAhY>^jMu~wBI}6##_qBrb4l+^s+;;9`c$dw2e`K;p zBis8YKLI}a2jXF58?K4>#V%48cv=Gx={t;!;}GQ;w0%&0Ond2A{Mz3c^tG8Ptu>jzhTsHM42aHw#+%6&_k5qB~C|V zV-xJ~Wys`k%=~!itdT<{(Sp|zDI;;Ruc4=#E8U<;WF=6ELF8Z;WU~q4WEM3DIs0+& z9WxQ@$j~MsAG}I?TicA7!5PgJad(TkpAn(kV?Kxo>s@mYjhpc%`}oc=x{E@-r$o3VD{1R??+bVJOS zaM(wi&s4~MfQ;rKctlgVS1|&c5f%Q5dxL+Q?po~hTxC52Hw1ph>zY>KV<0UVD-ZrU=W`m3UZ(R6IR(4Pn^XpLj<5Xe*Mr5}W_cf)^lQY8krxhhBcU}@ zG;&EZskzi5MAi=@HuF8C){|~YCnI}A;+QL8qdq_+<{EMqcM)T20>3L7Ii$B>0X8$A zFkdlOnVazWiMKd}eU?oIS6IL4tURrFO$wgh*|)mZD9E5Ar&svKanHH+Wdt`e*u&dKBW-uR^n2 zCGCxIGg&eIo>VJnzwKDD;ScYTr^jIAv*?$Q*>wYF>cTScloo;Iufu2_WWR*ZSIz|> z@;{B=!w132yf2&*enjrzH^BqB_D-UJJnS-Y9e9bWR1Yy{Mv|onjPO*f+{lNgy9MK1 zBz=e|^byGFDUA6~h{N47)^M2QI*{F_vakH4>@RnfDXc)zV6{T!!EyxjYK%NqPKE`W zjND-kR(Rw>W37_cz<=Kc>E0t3%b&?dp}kJS+q?)_FGEhN95EPArIF&Jv{w9-PD*!p zOp>B2LCE`tDUrwpj8PJii?PD%&Q@kA^T6rykcnKUY=UOkg+BiTJ^ml$CeA45;T4oB zi!s~IAk)udj%A{kcW5V|`JOfp!;D#sxYgItdcMdKOhexO2=cpK5zk%>zx6tN1UHgC zG_|JsV~(t$zDDe-D?JPraxwiL{MBC(MSKG5il#!kSHnhr&HM`c7>~%y7py1Z2;&jq z_=NijYqQ!T&N7By1drzd-xbVjJ~YcI;a9{18F84H0T1Ux@kh}emU0+Y&TN7{cp!B` zCgeqVt9%AM(iVC>84U3~SpH^^uTk)1_o&y^rkVm-*$U6q9jg@jBMOxZ4t~n~yScsI z8yx&CJpkFz+3+sDCb_3tXCR_)f_wFy?G0P$m_ogZ|!H?3onM@URFR7eiFTqH5vsiu|_Jy z+(9Six*2O#4_Ao}U!_aweP9U(VU>@HCGeq41#Tu^9KH%Z%kZB2C4%_H~D5;J{~XqZ10xJq-F`BqF*oh>JL` zI2nwx zm)u77gD&chSrCfa$(>A-mm*_O0Bv&+v7yuQS@}G)O{we-J>#cPU`-NYGC|NRG01Ap zfks)Se}7OD;e>qrJmoP%uAD$Le>$g!2cx4eif zTd7*6-T@=`(fqXlO@hY}sD&bi7mvK#Jh0w%+D7C^_i0DL#7=0Z5ktSPd4i9%K@QFz zIsERhaU5)11Z-QPc`{;|Ik0P65OXUAQ#))fL8SRUxQ-Y679XsG;PfD5`$vMg#UL7# z41T)Q$o_263$Q+7A0iGHkq5eu?77L}Zt=4CTR6lXLg5pHSw>pYE!nU&OA)gp60;GR zyb{X^#FK2Z{XVfj=iN=E7!Pk_j@xE;5N0%)%eGmZOKn6vZy&O%C9tJuv6{l2_N0C3 zHpu=3(1COqJZLhK$;cngGqOjHywO4AipV@OG46~f;uzkH4_J$zF~=g9ctiq|nRI3{ zlZ&;7TMR$sAbhQhU@|6fPaoEw4PYf!t1=T4*=($gSqeM25jmU!_?AU%F?-sOk#e?D zI(#7!fr$7$U}PZ-n=g~Acwel z6d!|_bvC^HRfY~JLeA$rB3gG4sVhfZ%Uy8jkv52LNkSNWq-1dWIamd|PS_|E8`6ET zhFp7z{>TeUVkk245n?iO!`X(;%Y#>ykDORB^yOK^*=uQ-&@ai5OWj zI9j$uWMm$sBoA^@3>|y|GIAEa{8hxRy=5OrNdV+B)R04)%uklHAt@N^GI!HJjI{~6 zjf{67^w&t}E-Q4^Drl&E#`u|j zla(PZY*M@+^%0Qu^I!)Qq&W%^tvT=?PD66t5f`Q)uR)O1bj=TvNI?o?Abq7^ljUZ2 z-OG?Sf2^*FK#XgZUW~|h0Hi4baf58jJlL8d%W2Db$j%)iHzp5L5&F^>{g;jY%Y~+2 zg*8V-kP{*$7pberiMi8WSOrET#UF9xKsprCGLj~`FA?izNVYW}nO2*;6vOj6i_9vK zm^;wR-iE9Yz04ub6UK~$j}s4x$;JreBG0!9%)bb}`(b-@;yl=YIpfZHL3Vr*W8>IB zHU@e-9b-gd6-O~fKClsiP9t=OGr^ndjyXRP zCJTo#uTR5bU4^x}4@>1KdW*gozfjEOT#Vdlv0U`SY)!-rU5Z&r=42Vh%Lm$<=xzy? zAzNMtdvF+f+DmBz7RVVodLYIv3jA*l^5TWydIzDS%iwjyLkkzG#fX1U(6mwTA~g60 ziHIZ=L0guZy`drfp&=8IkDCU~xJqA#bqqu=9@LLQH=ftsF@^)72bW^>&RWXh_j(xd zGf!A@&6xd@?cDpeVmP01<^3)(Z_Aj%K?TQXnY_a3Jqh5!Mo%=2=D*zv5fPWb>)a; z5&i5%dt>GiE$z6IAmd)5psR_dCbMrI{K|ZLuD=jD{>lvhMcgNuhcuy+wKs@;o3T-wL zW0=S%Bic93uoSrl^R%(fB7<=rg(RIY?8a5Q<*-=|8}pGKi&Ab$adRnZK)LNsZN7%!%aRz#U{ zpi}2zr6I8|Tf_p$XtBY`Pe4|QmL;~P9G1pi@`k?kg`Y?)j$|qZPsW5SC`MKZL0h?d&dlLgIZP^8t`~%FYgL%+SUPCxg3X%k$tjE=8nk zosst??C>zW#u7V^E5j2Y_YE%RrT9Wq_(4|?P8SG97Yc1L($E*l$mmalznFu_^-}nY z>%i}}VC^dL(2p8C@4UhE?kM-6O*|1-^~RbT!uKeH@dX)dZzL>5jKTP?UMKANAw137~Uh9YAg1}#O{U^=4vlM(Hh16G)a z*j&E0MJvz>5eYbm)v<&bp2br-rHFf!YbLWh;-fxhUpqsTV3`8V1F=>%0v3w!M61CR z=a}cg4_t*6T6ikJjBwj;t3cIb~Oil<^(j67fV5pTfr_1v98x0o>dUE#XPP6 zI^jM?;W?gcc$KH|+>ReO-$qDb0A#HI{yhhqmrcCk|M~g9qzB5{qoJ;@CTe>7b9L%< zofSIkUPG6vi`_8MfZ-?=~Bg zpBy@R%(q|c)#OX9Oq1pe%J{_V=zqG-nZF@_`jgG6=^n?a>27=T-CSK_Yrhef254?3-GHiB$8ETKoo24X!ySKkHgoOMi}s#@oyBf+@d# znVDo$I=?=>{KVeWlPwz}ddc9KC7NeBeiZ%`@TXw^lX}t7j{i!ddQwl@8r8{YRKTz< ze&K0jt=JoCgkACxqyKe^gesnZ<`St)) z)3R4Dj%f7rarczhJbGP{kA-)0pFRBAh8?#W6h8TjTc_RqpKsbc_=5l7H}A$S8?U7t zSNh7Ke~;SMB=qAhH#`G#mkiw#xqi+1z3+DH@=NxcNrMl)@BewH7m~WX-Ehe9ZkNCL zj(^bM^}!qJta&qEZJL38UJgbK5p@Z{hCKwErg?PE5FbdMNW_ zX-J!;y*Ayns?<~D>kjU|REun%_ln1Dh@9VfinsN^-A~uQI`-5rJp@W52R!9YQ9Y>c z`Can^W_3!mTGN%DJ<}&7^&sy`N$!E|5qidDB=*C@* z3M`#*{7tz&v<_>PI;>RtigR3MwXk1zNT2X9rwdbFq=C&`T>f@<#bf;q$X|`!-Q8U4 zW>e-m_3Xmlye_$eI-MMUdd@m9FDqyHrJ*zad?jG!g15q_FDkA#Zsx1M#m~I9ILy^0 z-qocM)r{2D(cO!x?`VdboAb*#HiOd9(yYH`L;JU z>Wk-Iy`Njq?dyJX_MYuIYIh*z)`>3k8&vNB&F;Q;_H=Wv&fEXU)qU?Y^+*-lh1IVcd#>=MeTUZ4O4C@&>>(ddVKb#)Xy^G6M*MOz%ZY&oc)M_Z?ZIzsTvDH*CX+89%*Mcgf0Mp55_h{Mx+F@_Jr24L@o7NXXh|^&6wPe(zY|FE^g#IbbDrJ_xZQxcfHoR@UPFq4~{PHxOnz1 z|1Y8<{abi^Hs!kasq(f-qZ?m36%o=>o%rX}69*a%i1XF2by#Zt*$PfFGiO}evop$$14|}@A>raCo}8aIP_UBR$bb5{JZP>EQ%cZ z-OLMgI2h~p7)Vg<_mCr5joRM>Q;>*nv-#J%s+j+`(L8rem(@B5! z?M**HwZcSm_iWa*udy#xhTkCUz>}CjHXWtCsYc|>y3Oi_$0lQQo_Hq(-)G36Awffk z(jJ(Ul4MPYr@K*I$kA@i+S|Vy7T(LRPeO(@X>3xQVFUbnWm&OD5jIk_t9go%K(6ou zHP6tLK#L5^V=3pT|9@=Hbk~~7-IXYJS15PL+MZEqzeKlg5aHc)PwuHTHyS;+#r&V< zGgtI)awPuc_H&b3j5y|}_-B8!_k8%-cLy9xer3mpt=G7m4}KxpYwU?33sc+Qyge*$ z%~W2Tn_OB%&+0d>%b~)ZbJ9zeKiTbI(|fm`yuHtVL6cc-OTM1c;L5hMqv&_nT*wyPuAsycB^hv@m%YGU$Xv3!Lov#kv&Ai^H-BYsNDd3ClWExr-r*7ZcY zubz2OE?j$~MaYx@cI`9WTHR@WIbG}j>U*E-^CyL#s6TB>@TH(GQO#~29<-p->avKL zrkiiwxOMEOW*_g_dVJH#psj`0CpVkEubc7Qsttv?7k&$Q+Y~Y4aHp0RLNmY0OZ;ll zmMzM}(g7EQnM+!YDQ*{<*kJCbOFOm=IO%$#?zO+d!e=aMmKw>qx884^D{5(Ik>pw`8$8KiCva5V)T<^pC0e`(r{|;mRF;XJbyE)*@8MV{W3z1 zw)?YDoc9lH`dXTP{d?E|_a}Zx`}*k01tUECmTixVe63wry<^LMeoMI5?S;RypAXyq z;(!&aOYQ~v7R0n(x^^z*x%!5~xE+LXE3RU__HKX4)%;+?FIvumt+%AS(r+2&gp>8F z)wmJaYTKCD4j2rVSq7o9*%D8x4q!|;N+-v3bQdYU(h5}k=3eoeX9bO{@8(r$cRXOj zaK4{Aq#TN%0U>wy2f28-B)L$Yb?S_J#S3JV8c2?L$~_nh&3olr^3AhUyRm~ICFV6P zJ}oZRu(LL~hFDjT>I$JYEbsGEjD|7g z_qts_x-zD9vy!Y~3$m954_^IIYVqFqO$SnUxV8;>uIJUBp+|GP?`>VK{{3KPVwZyB z)99aC7ryZE*q_#`hr0OY@!R5DHU|4Gi~Y`f&<71C9A6&)pXk?$lADF(r;ciIk%l+Ry@k9QSA(qHr)fp$h-u?(v0-$_D+&C528YzDa$) zq;<~8j8+R%vgJF^Z1!t$`uD%nJ9T)W^ivbtewx`&xmg&nZ|W;vR~me5nMQdH4l5eh z_?!5ayAOQoH}lBC|D5d9wQ0l$f49HCv9orh(M-|jmg}XSW1EkOn?3%yV_l9HEt)HNH$)b+G)u~snQ^C_)vgcUY=tJj&KBksWJUwYgUzeYg7I(Y3ZDg0Y ze15^jw!7VbIitMCWbZhtrOwrLr>A`TZTOcf|9UTR^qicT6Y4%+GGs~p zx-o8?=hvAZ`LzDw!Xfu3o?gCsNt=%lKm}3!hrs=-umG&u;HFFUaLjW#o&@u=X1X){j=eNRml&2D42f7=cV62 zJh-9fke8Rg{C@ekJ{kMHOs8JGF`@hMn+x;W_-uaZ(uLIW(;F`?_CM2S!kD7re_sE1 zU-GWkZa130;^NBWq~-S~hf={OxBl2r3yvvgULV?d-?#%udhD8TJ><|Kzx*9fC7cWO z+_P@*yT8r|5p!-_J^D&$pK*gTx~`1cKk$iwxl!$3DBPU)?XB}eXB?;(GB`zF{$N?l zGt<}+y|np5Z#LK!wY_^>>mNoOw(Pt1?7@}WgO~rbc9ehNp8v17vyO{mUE??l3yOfG zl(eMOE}*~?(jC$*DX`SiB}W=5kvxEcQU?K1ly(8>5+q!e^ni3or-a;DP|oW0*5}^O z=l-`dJNwS;%)H;<^ZcH7-YL|V=tUGADI308EjZe&emXC_kF4G#fPI;hm0^e)4C^9a z8>;yfWla%h=EdyQqnsbVHn2Qv9I5Y6%z3W4$ zIm+KZEAP5K}iR{+u6O1vP~^ zD2_M#8GT@)Em?O+D{`+jP3N z{UD=H>(cy%%Gr1JTG(}0aO%ccyL4$WWb~IR`?HJ^qt)OzCBuc_05S?8MXz82p96}P zcz9soBNjvsy^0Ym0TF|UW(j9qi4Z(hCMQ1htlH@LU5_=2|9fZr-e+Z{(LM24>P|Ho zkUB2lQ5!Z4wW7gPs~=kYDIy2#0}z%?edwC`{qVjw)!AGIM03VF{qvIR-e8wCZPywG z@gsF2PlxW{5H?hE)@3ubEo4l#bBiv%SNkN#d9yG-VJUK-t@2{JKCvfMWFJ<9sBd%6 z`=Oo~$P<=u?)8mKUr&jw84EXn|CTtY{n{hAo^E5N+QpU>w~Qf~H!vY3(P&MrCpW=O zEkKb_jDTi4`-M}4q-jwLUr5)NGruF1)Z^EaI|@B=7V&Of%KS5DLtXEYzomQ{wSD^y zDaT7&e*P=56^=1g2!+jCYZ9v9!K5G~<8f(L`qFzBEDRM#R$LSgFKi8&-!B^(te%o8 zdy^{qEWCz3u6Fd!gZ})LH8BM68V7*8K>&B{Pq<3~FYWJMWz?ZG5Gpi1&yka8c_H*IZQvfKdC529iGZ9AedYd9Mgj%G2XqTKhAmWIVpbfjv{6?is@qQxpR7j~}Gx z*mT0oOIoxF4*7R!Oy|=5q4yP%tkh<$OxW^LyQFYPcGAU%KDc#n1hbF6zh-2g|Io(o z4~_=u?zHU=R;j3#?8_#KO!#E0N8NEYua^5k=IvPr2O0V_NG-EkSZgnF(ZcxB0)x%R z4Vt8E)mg2069MdU+!`a()h4REj;O>61G(Yav*Ie`g6_TGVGhKScPFQ|vWR8ZvntnU z-blj&Qfr*xSb-cAQ`6-d3r=^?#U|8l*B*non3t_sR+h$uZ5#&X&$IAOtk~vK$Q*l*GTL=y-TU@!9`ZWYv z8dHABCQNACM*m`tL6lXojA-$h!UOwH2a=R#Yb}VgT-vA-m6(lyAXJTh6nxwGa&sAv zQdiYjObM8tSGrPkz)u?0=1qHDH11AVrbYnjitDsh$wE=P&UH6233+YHqnC{XFq)cE z(~T3zOIUxINBn|;KL_fUG3dpBNiR1qgg3fF**PJsERQpSzp@b^sOS2&?Flmfeq(+& zZ+CS50EF{Dq8jf9^v9?=FQK?z;?aB-6)jv%4Rh#P8H0$Na2g5$eA+DTEUpL+3{L-( zT{&Th#)c3X=~`^tcIo5tbXC{r*B04b@;|}kn87c%$+at}9$!`u^O42R8_BXOw>U4e ziBs2d#A8ex&*$4}-J$ZCV>@7qtFPCBde5F^7+c$$Xq`&8ZTl=kc6Z2BGt4=iC7`9j zr+fyNNij)Ew0BhRX|qBJm%3kujT)1AG@br|LY8?~+Q$Tc(ejcOpLEBE#eX7r{T2cT z$XV00=?>wNOYX(j`pQ8x6id%nyEZbkC@#gekHUWw2>yMFUhy8tJ2_M`@@}FDwP6|@ zr+o{xZmE5JQ7G$>9ReY)ICP!m;1MRE+n8m@=Q$%=sTz4Bm9Y`>n}yBg4MJCYIW23W zM=00yrC^?{*p3>Go#{%rn9UDUJFh!*yu z>Gf0USl*vb+y4@AXxm>1DgY4`fC5D{bYu&V^!wr!V@Plz22TI`V#I}Ge-#MI3DMar z;PAt(fl1skVs%}6OQ)M2Ou9NcO!7J!FzKt(!o0#z83A5lK?Nw34nljP73AnQ9s^T< zJG=hn3Im<+?{SS;BS`b$TL}KDbLRZSxJw!DE=<25%#ZVkhLPMzQ`=w0hC6;RgJFyX zV!)o|sDecq_<&;uiu&dpz#6p&FGhf?KmcD8n^_wN-)O(9DJoMfJ5B>nnQpMX(x0{B26?{ zn7~TF#7}bH9D-MdpfE$oRfy2{HnBmJoZs5?@$upN1#aAdS1fzLJrVAHKcWq<0YZu1 z0UO%f!F2G?{(!t+k_mQ#Jamf3p9Mhgl&@$v<`>7{=KcL&VM1?ZC|7vQbsEo9WyW99 zZ&ESd!PMiY-g|6#Bs(l?JyAN735w(!+n>8L=*#JI7cwluQ~bQ~eO|*sm@sk_tEtgO zw}8zCsoLw~=(otYJgTAg23t!Nxe)Nc%PcYvmYg(x8<}&-@Qc}#p_F&6?&KQm&ikr$ zFtwCs8rmA*=c zh^nIbAj8gh?D=WQb3|s5Z^@!Q_XzV?m$YTY7HrdluBJ>8DplS}WgC8Jar;`(9526q z$w!iMowswmN-^-qudRDN+zPscyPSn?*?58&l2|v?h6p8@qRafM+(0ulO*D@DQrWs@ z=(bcVg+n2s3sl|dP48Xin!bmcyP=ctr)^a-4a|drIq$yiBT0e=U&lQi4~mbrLR5>| zXiZo;93)FJdO}0MOhDjGhYbQjf}{U0uKPbMMPpRXfm%7uX>A%G2TFMA>H&px2pz@} z0rWgjl>4j9P6^@v>xW<{3z#WpU8!`rW+>*0QUl{!`Scg}+Pp5`vvtr?@Jc@gzFaP5 zHvuATa0m#i#68+{@gWtC?w}XL3_t$Hx-H7qnJGQTYX7Y%AL53+mng2oi?g?vm0W@h zRDG=$dCn5OeUz-IhzBods}1B&n39lm=W9BrM??%Ce_5>VOY710LZxl)L8os7%u*=O zYp310iza{FNOS98lP%U_tI;zPJmY7K1lhT)zFQ|pgv>EYtWNIsSgJoTSk7J3l9XKK zV&XqH#*!sAYSj_IBc_%X5DT+6@PZ4LTvQ|>?T?kEh4ONTi1Z$xuh|shYjr}{Oc^-Ll(d(lVw-xY0=*Zd( z;vW-sKFSUO?E$O?{JU?%1Mu;nA)r}c)g=1HvHTwf0@xJ43_S4haJkRpVAJAaWtjnE z3{H;&2TE|da0Ue238&uxPvfG84nUv+!cb8G;MoRaVEn=9w_qqxlitQ%Uj<6BoZddd z-qK21h}g$46z0{(J-PZ~iGnNbBeFslu>=DiR}Zia@QiPx#=A%%;yzk`kiHlpsX*G~ zlzDvxANrH2$8m(FuDZuOTKNNtw=7w)7TxH(FFu0*^ag)(_!75x4mQqqi-zw+^a^xM zJGo@G@@A%rnpFfVBmN$4DlO}j_{$>*xVMa=Z)r&DYx-8?K(BQMxle`}D|qMDz93X< zanm-4X57$4@*2kmTtP%H(_>ep6mNIGBTe>}PU~i}+dcYlh1R!^uy6aalL0)h0+Z-pZJMPWp=BSld#)JYYLmR VRl3Ei1Ig#uGWCthg(m}Y{stjDc_#n> diff --git a/lib/3rdParty/tbb/bin/x86/v140/tbb_preview.dll b/lib/3rdParty/tbb/bin/x86/v140/tbb_preview.dll index f76c8d64b4e8da9fef62ba931453b862c36d2bc0..209030250c32aaa1b457b76725f893ab2286aaa4 100644 GIT binary patch delta 84569 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

    TZ=Hk9w@*03wEG` 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

    BG2u3jC?@L1MJp-9Tn?g`0b>C4-uzcVuF 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 delta 83705 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 diff --git a/lib/3rdParty/tbb/bin/x86/v140/tbbmalloc.dll b/lib/3rdParty/tbb/bin/x86/v140/tbbmalloc.dll index 7e53e1fcde2c175c7103b9ef14d5a63f7073a604..99c6495ba97e74e9a316e21e0cfdf977baca4d4e 100644 GIT binary patch delta 35308 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 D(SG4` diff --git a/lib/3rdParty/tbb/bin/x86/v140/tbbmalloc_proxy.dll b/lib/3rdParty/tbb/bin/x86/v140/tbbmalloc_proxy.dll index e4cfbdc02f49340f1a4edd01f6f07bbbd0f0fe18..cae643fc3fe02166d8fdac3454ec886d8403ad6b 100644 GIT binary patch delta 18286 zcmd_Rd010N7chPU2_RsJ3WCTIG$?L(v+so64H0Emc8CPZCM0Sr8YEc3xS-d))EqnK|2>Idf*_ z%-qnk%C3H$UA>%!tyM(mmQ>&UMf&5)L)OH5*Z&X~>a=64J`+Qpe4NT@$JUT_+OfLN z_$0peGY;f?fKCFr^v6|)-XiODB;B54D?gKw^@>AOzM8DhD#%r%wlL}$i^WA@SPab( zt4rmlT7Xz5W*6W>djrG7012U>O9>8bV&W$_4YR{SX&A;N|NhCTYE~MC!5?-MUJZz` z3By9^s9<^K0^LX`8!?RTh+#d67?!X$V2Iz&Bn_pWvNOq8B5p(TE6Q9`)Cf>IjItFC*e?pl1)b-I&+Dr_hdkTdkFihV{ zUuM+M^{uWgZpp?rI=d_$W2$TCV9ZsKZ2DZcYmscHxVA{P>q3B=3I!NO_|g4!|CMSi zP_?%gVrC87$#gCNHR9A_tsl150ZTV+A#3!O_V#wNUiVMk04*OzR+pW0n{>7=hV9g~ z0I)#W-cCHH2NE2Hzpfc|7javjB*O#f#;Ry~T$@82Xbc^|K#;56NRKmntc=5$pi7$r zQr~bU;}o3|XXS2h2WG=bU<#wRh0#%$+h~Z^*22H#|GNR=62qGoNBqhd4sQnse|V2_ z7@PJ%`}D`qGn&Sw&^5_4fkj%!stbq*-6_>yOaHh3OZ56~uSQcD#^kluMY7%F z4QXsvay%NXTBLd;n^{lhI=1^}3gESe%6-6WnAw8`3K{yAnYBYQxyCt$7`8jF-L!{n z!>c8U_qZ9!Q8z&gaml7oU;;m>F=~7bk%ySk%Z%E48JSHqD_@y~ *8n12!&O$r0 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 delta 17901 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⋙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 oy|`k3$?z%C
      Include files for Intel TBB classes and functions. +
      serial/tbb +
      Include files for a sequential implementation of the parallel_for algorithm.
      Up to parent directory

      -Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +Copyright © 2005-2017 Intel Corporation. All Rights Reserved.

      Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/lib/3rdParty/tbb/include/serial/tbb/parallel_for.h b/lib/3rdParty/tbb/include/serial/tbb/parallel_for.h index 3ef776d..c8f9a79 100644 --- a/lib/3rdParty/tbb/include/serial/tbb/parallel_for.h +++ b/lib/3rdParty/tbb/include/serial/tbb/parallel_for.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_SERIAL_parallel_for_H @@ -121,14 +121,12 @@ void parallel_for( const Range& range, const Body& body, const auto_partitioner& serial::interface9::start_for::run(range,body,partitioner); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over range with static_partitioner. /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner ) { serial::interface9::start_for::run(range,body,partitioner); } -#endif //! Parallel iteration over range with affinity_partitioner. /** @ingroup algorithms **/ @@ -169,13 +167,11 @@ template void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& p) { parallel_for_impl(first, last, step, f, p); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over a range of integers with explicit step and static partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& p) { parallel_for_impl(first, last, step, f, p); } -#endif //! Parallel iteration over a range of integers with explicit step and affinity partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& p) { @@ -197,13 +193,11 @@ template void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& p) { parallel_for_impl(first, last, static_cast(1), f, p); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over a range of integers with default step and static partitioner template void parallel_for(Index first, Index last, const Function& f, const static_partitioner& p) { parallel_for_impl(first, last, static_cast(1), f, p); } -#endif //! Parallel iteration over a range of integers with default step and affinity_partitioner template void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& p) { diff --git a/lib/3rdParty/tbb/include/serial/tbb/tbb_annotate.h b/lib/3rdParty/tbb/include/serial/tbb/tbb_annotate.h index f7de75c..81c8d3a 100644 --- a/lib/3rdParty/tbb/include/serial/tbb/tbb_annotate.h +++ b/lib/3rdParty/tbb/include/serial/tbb/tbb_annotate.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_annotate_H diff --git a/lib/3rdParty/tbb/include/tbb/aggregator.h b/lib/3rdParty/tbb/include/tbb/aggregator.h index fc2ad21..6aecbb7 100644 --- a/lib/3rdParty/tbb/include/tbb/aggregator.h +++ b/lib/3rdParty/tbb/include/tbb/aggregator.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__aggregator_H @@ -62,7 +62,7 @@ public: template class basic_operation : public basic_operation_base, no_assign { const Body& my_body; - /*override*/ void apply_body() { my_body(); } + void apply_body() __TBB_override { my_body(); } public: basic_operation(const Body& b) : basic_operation_base(), my_body(b) {} }; @@ -102,7 +102,7 @@ public: /** Details of user-made operations must be handled by user-provided handler */ void process(aggregator_operation *op) { execute_impl(*op); } - protected: +protected: /** Place operation in mailbox, then either handle mailbox or wait for the operation to be completed by a different thread. */ void execute_impl(aggregator_operation& op) { @@ -114,7 +114,7 @@ public: // thus this tag will be acquired just before the operation is handled in the // handle_operations functor. call_itt_notify(releasing, &(op.status)); - // insert the operation in the queue + // insert the operation into the list do { // ITT may flag the following line as a race; it is a false positive: // This is an atomic read; we don't provide itt_hide_load_word for atomics @@ -135,7 +135,7 @@ public: } - private: +private: //! An atomically updated list (aka mailbox) of aggregator_operations atomic mailbox; diff --git a/lib/3rdParty/tbb/include/tbb/aligned_space.h b/lib/3rdParty/tbb/include/tbb/aligned_space.h index 07d49ab..56fd85f 100644 --- a/lib/3rdParty/tbb/include/tbb/aligned_space.h +++ b/lib/3rdParty/tbb/include/tbb/aligned_space.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_aligned_space_H diff --git a/lib/3rdParty/tbb/include/tbb/atomic.h b/lib/3rdParty/tbb/include/tbb/atomic.h index b269ff2..72ec534 100644 --- a/lib/3rdParty/tbb/include/tbb/atomic.h +++ b/lib/3rdParty/tbb/include/tbb/atomic.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_atomic_H @@ -31,8 +31,8 @@ #include "tbb_machine.h" -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - // Workaround for overzealous compiler warnings +#if _MSC_VER && !__INTEL_COMPILER + // Suppress overzealous compiler warnings till the end of the file #pragma warning (push) #pragma warning (disable: 4244 4267 4512) #endif @@ -54,7 +54,9 @@ enum memory_semantics { //! @cond INTERNAL namespace internal { -#if __TBB_ATTRIBUTE_ALIGNED_PRESENT +#if __TBB_ALIGNAS_PRESENT + #define __TBB_DECL_ATOMIC_FIELD(t,f,a) alignas(a) t f; +#elif __TBB_ATTRIBUTE_ALIGNED_PRESENT #define __TBB_DECL_ATOMIC_FIELD(t,f,a) t f __attribute__ ((aligned(a))); #elif __TBB_DECLSPEC_ALIGN_PRESENT #define __TBB_DECL_ATOMIC_FIELD(t,f,a) __declspec(align(a)) t f; @@ -551,6 +553,6 @@ inline atomic& as_atomic( T& t ) { #if _MSC_VER && !__INTEL_COMPILER #pragma warning (pop) -#endif // warnings 4244, 4267 are back +#endif // warnings are restored #endif /* __TBB_atomic_H */ diff --git a/lib/3rdParty/tbb/include/tbb/blocked_range.h b/lib/3rdParty/tbb/include/tbb/blocked_range.h index 5262669..9f24cd2 100644 --- a/lib/3rdParty/tbb/include/tbb/blocked_range.h +++ b/lib/3rdParty/tbb/include/tbb/blocked_range.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_blocked_range_H diff --git a/lib/3rdParty/tbb/include/tbb/blocked_range2d.h b/lib/3rdParty/tbb/include/tbb/blocked_range2d.h index 00b809c..f1b9f35 100644 --- a/lib/3rdParty/tbb/include/tbb/blocked_range2d.h +++ b/lib/3rdParty/tbb/include/tbb/blocked_range2d.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_blocked_range2d_H diff --git a/lib/3rdParty/tbb/include/tbb/blocked_range3d.h b/lib/3rdParty/tbb/include/tbb/blocked_range3d.h index 9db8b49..c62565e 100644 --- a/lib/3rdParty/tbb/include/tbb/blocked_range3d.h +++ b/lib/3rdParty/tbb/include/tbb/blocked_range3d.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_blocked_range3d_H diff --git a/lib/3rdParty/tbb/include/tbb/cache_aligned_allocator.h b/lib/3rdParty/tbb/include/tbb/cache_aligned_allocator.h index 14640ff..d435e78 100644 --- a/lib/3rdParty/tbb/include/tbb/cache_aligned_allocator.h +++ b/lib/3rdParty/tbb/include/tbb/cache_aligned_allocator.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_cache_aligned_allocator_H diff --git a/lib/3rdParty/tbb/include/tbb/combinable.h b/lib/3rdParty/tbb/include/tbb/combinable.h index 3a95397..0063dbb 100644 --- a/lib/3rdParty/tbb/include/tbb/combinable.h +++ b/lib/3rdParty/tbb/include/tbb/combinable.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_combinable_H @@ -31,10 +31,10 @@ namespace tbb { //! Thread-local storage with optional reduction /** @ingroup containers */ template - class combinable { + class combinable { + private: typedef typename tbb::cache_aligned_allocator my_alloc; - typedef typename tbb::enumerable_thread_specific my_ets_type; my_ets_type my_ets; @@ -43,15 +43,28 @@ namespace tbb { combinable() { } template - combinable( finit _finit) : my_ets(_finit) { } + explicit combinable( finit _finit) : my_ets(_finit) { } //! destructor - ~combinable() { + ~combinable() { } + + combinable( const combinable& other) : my_ets(other.my_ets) { } + +#if __TBB_ETS_USE_CPP11 + combinable( combinable&& other) : my_ets( std::move(other.my_ets)) { } +#endif + + combinable & operator=( const combinable & other) { + my_ets = other.my_ets; + return *this; } - combinable(const combinable& other) : my_ets(other.my_ets) { } - - combinable & operator=( const combinable & other) { my_ets = other.my_ets; return *this; } +#if __TBB_ETS_USE_CPP11 + combinable & operator=( combinable && other) { + my_ets=std::move(other.my_ets); + return *this; + } +#endif void clear() { my_ets.clear(); } diff --git a/lib/3rdParty/tbb/include/tbb/compat/condition_variable b/lib/3rdParty/tbb/include/tbb/compat/condition_variable index 7a79225..43edfc0 100644 --- a/lib/3rdParty/tbb/include/tbb/compat/condition_variable +++ b/lib/3rdParty/tbb/include/tbb/compat/condition_variable @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_condition_variable_H diff --git a/lib/3rdParty/tbb/include/tbb/compat/ppl.h b/lib/3rdParty/tbb/include/tbb/compat/ppl.h index 2cfc537..840dfb2 100644 --- a/lib/3rdParty/tbb/include/tbb/compat/ppl.h +++ b/lib/3rdParty/tbb/include/tbb/compat/ppl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_compat_ppl_H diff --git a/lib/3rdParty/tbb/include/tbb/compat/thread b/lib/3rdParty/tbb/include/tbb/compat/thread index bc22ed5..0edd928 100644 --- a/lib/3rdParty/tbb/include/tbb/compat/thread +++ b/lib/3rdParty/tbb/include/tbb/compat/thread @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_thread_H diff --git a/lib/3rdParty/tbb/include/tbb/compat/tuple b/lib/3rdParty/tbb/include/tbb/compat/tuple index 1eafb7b..5767c49 100644 --- a/lib/3rdParty/tbb/include/tbb/compat/tuple +++ b/lib/3rdParty/tbb/include/tbb/compat/tuple @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tuple_H diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_hash_map.h b/lib/3rdParty/tbb/include/tbb/concurrent_hash_map.h index fb41de7..09b2765 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_hash_map.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_hash_map.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_concurrent_hash_map_H @@ -32,7 +32,7 @@ #include #include // Need std::pair #include // Need std::memset -#include // Need std::swap +#include __TBB_STD_SWAP_HEADER #if !TBB_USE_EXCEPTIONS && _MSC_VER #pragma warning (pop) @@ -333,9 +333,10 @@ namespace interface5 { void advance_to_next_bucket() { // TODO?: refactor to iterator_base class size_t k = my_index+1; - while( my_bucket && k <= my_map->my_mask ) { + __TBB_ASSERT( my_bucket, "advancing an invalid iterator?"); + while( k <= my_map->my_mask ) { // Following test uses 2's-complement wizardry - if( k& (k-2) ) // not the beginning of a segment + if( k&(k-2) ) // not the beginning of a segment ++my_bucket; else my_bucket = my_map->get_bucket( k ); my_node = static_cast( my_bucket->node_list ); @@ -368,7 +369,7 @@ namespace interface5 { public: //! Construct undefined iterator - hash_map_iterator() {} + hash_map_iterator(): my_map(), my_index(), my_bucket(), my_node() {} hash_map_iterator( const hash_map_iterator &other ) : my_map(other.my_map), my_index(other.my_index), @@ -765,7 +766,7 @@ public: }; //! Construct empty table. - concurrent_hash_map( const allocator_type &a = allocator_type() ) + explicit concurrent_hash_map( const allocator_type &a = allocator_type() ) : internal::hash_map_base(), my_allocator(a) {} diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_lru_cache.h b/lib/3rdParty/tbb/include/tbb/concurrent_lru_cache.h index 20fbb7b..8aacf24 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_lru_cache.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_lru_cache.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_concurrent_lru_cache_H @@ -126,8 +126,8 @@ private: } static handle_move_t move(handle_object& h){ __TBB_ASSERT(h.my_cache_pointer,"move from the same object twice ?"); - concurrent_lru_cache * cache_pointer = NULL; - std::swap(cache_pointer,h.my_cache_pointer); + concurrent_lru_cache * cache_pointer = h.my_cache_pointer; + h.my_cache_pointer = NULL; return handle_move_t(*cache_pointer,h.my_map_record_ref); } private: diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_priority_queue.h b/lib/3rdParty/tbb/include/tbb/concurrent_priority_queue.h index d5871e5..89297d8 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_priority_queue.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_priority_queue.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_concurrent_priority_queue_H @@ -30,6 +30,7 @@ #include #include #include +#include __TBB_STD_SWAP_HEADER #if __TBB_INITIALIZER_LISTS_PRESENT #include @@ -373,7 +374,7 @@ class concurrent_priority_queue { compare(data[0], data[data.size()-1])) { // there are newly pushed elems and the last one // is higher than top - *(tmp->elem) = move(data[data.size()-1]); + *(tmp->elem) = tbb::internal::move(data[data.size()-1]); __TBB_store_with_release(my_size, my_size-1); itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); data.pop_back(); @@ -389,7 +390,7 @@ class concurrent_priority_queue { if (tmp->type == PUSH_OP) { push_back_helper(*(tmp->elem), typename internal::use_element_copy_constructor::type()); } else { - data.push_back(move(*(tmp->elem))); + data.push_back(tbb::internal::move(*(tmp->elem))); } __TBB_store_with_release(my_size, my_size + 1); itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); @@ -413,13 +414,13 @@ class concurrent_priority_queue { compare(data[0], data[data.size()-1])) { // there are newly pushed elems and the last one is // higher than top - *(tmp->elem) = move(data[data.size()-1]); + *(tmp->elem) = tbb::internal::move(data[data.size()-1]); __TBB_store_with_release(my_size, my_size-1); itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); data.pop_back(); } else { // extract top and push last element down heap - *(tmp->elem) = move(data[0]); + *(tmp->elem) = tbb::internal::move(data[0]); __TBB_store_with_release(my_size, my_size-1); itt_store_word_with_release(tmp->status, uintptr_t(SUCCEEDED)); reheap(); @@ -439,14 +440,14 @@ class concurrent_priority_queue { for (; mark>1; if (!compare(data[parent], to_place)) break; - data[cur_pos] = move(data[parent]); + data[cur_pos] = tbb::internal::move(data[parent]); cur_pos = parent; } while( cur_pos ); - data[cur_pos] = move(to_place); + data[cur_pos] = tbb::internal::move(to_place); } } @@ -461,12 +462,12 @@ class concurrent_priority_queue { ++target; // target now has the higher priority child if (compare(data[target], data[data.size()-1])) break; - data[cur_pos] = move(data[target]); + data[cur_pos] = tbb::internal::move(data[target]); cur_pos = target; child = (cur_pos<<1)+1; } if (cur_pos != data.size()-1) - data[cur_pos] = move(data[data.size()-1]); + data[cur_pos] = tbb::internal::move(data[data.size()-1]); data.pop_back(); if (mark > data.size()) mark = data.size(); } diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_queue.h b/lib/3rdParty/tbb/include/tbb/concurrent_queue.h index ee1187c..81db58a 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_queue.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_queue.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_concurrent_queue_H @@ -40,7 +40,7 @@ class concurrent_queue: public internal::concurrent_queue_base_v3 { page_allocator_type my_allocator; //! Allocates a block of size n (bytes) - /*override*/ virtual void *allocate_block( size_t n ) { + virtual void *allocate_block( size_t n ) __TBB_override { void *b = reinterpret_cast(my_allocator.allocate( n )); if( !b ) internal::throw_exception(internal::eid_bad_alloc); @@ -48,7 +48,7 @@ class concurrent_queue: public internal::concurrent_queue_base_v3 { } //! Deallocates block created by allocate_block. - /*override*/ virtual void deallocate_block( void *b, size_t n ) { + virtual void deallocate_block( void *b, size_t n ) __TBB_override { my_allocator.deallocate( reinterpret_cast(b), n ); } @@ -185,10 +185,8 @@ concurrent_queue::~concurrent_queue() { template void concurrent_queue::clear() { - while( !empty() ) { - T value; - this->internal_try_pop(&value); - } + T value; + while( !empty() ) try_pop(value); } } // namespace strict_ppl @@ -223,41 +221,41 @@ class concurrent_bounded_queue: public internal::concurrent_queue_base_v8 { return (&static_cast(static_cast(&p))->last)[index]; } - /*override*/ virtual void copy_item( page& dst, size_t index, const void* src ) { + virtual void copy_item( page& dst, size_t index, const void* src ) __TBB_override { new( &get_ref(dst,index) ) T(*static_cast(src)); } #if __TBB_CPP11_RVALUE_REF_PRESENT - /*override*/ virtual void move_item( page& dst, size_t index, const void* src ) { + virtual void move_item( page& dst, size_t index, const void* src ) __TBB_override { new( &get_ref(dst,index) ) T( std::move(*static_cast(const_cast(src))) ); } #else - /*override*/ virtual void move_item( page&, size_t, const void* ) { + virtual void move_item( page&, size_t, const void* ) __TBB_override { __TBB_ASSERT( false, "Unreachable code" ); } #endif - /*override*/ virtual void copy_page_item( page& dst, size_t dindex, const page& src, size_t sindex ) { + virtual void copy_page_item( page& dst, size_t dindex, const page& src, size_t sindex ) __TBB_override { new( &get_ref(dst,dindex) ) T( get_ref( const_cast(src), sindex ) ); } #if __TBB_CPP11_RVALUE_REF_PRESENT - /*override*/ virtual void move_page_item( page& dst, size_t dindex, const page& src, size_t sindex ) { + virtual void move_page_item( page& dst, size_t dindex, const page& src, size_t sindex ) __TBB_override { new( &get_ref(dst,dindex) ) T( std::move(get_ref( const_cast(src), sindex )) ); } #else - /*override*/ virtual void move_page_item( page&, size_t, const page&, size_t ) { + virtual void move_page_item( page&, size_t, const page&, size_t ) __TBB_override { __TBB_ASSERT( false, "Unreachable code" ); } #endif - /*override*/ virtual void assign_and_destroy_item( void* dst, page& src, size_t index ) { + virtual void assign_and_destroy_item( void* dst, page& src, size_t index ) __TBB_override { T& from = get_ref(src,index); destroyer d(from); *static_cast(dst) = tbb::internal::move( from ); } - /*override*/ virtual page *allocate_page() { + virtual page *allocate_page() __TBB_override { size_t n = sizeof(padded_page) + (items_per_page-1)*sizeof(T); page *p = reinterpret_cast(my_allocator.allocate( n )); if( !p ) @@ -265,7 +263,7 @@ class concurrent_bounded_queue: public internal::concurrent_queue_base_v8 { return p; } - /*override*/ virtual void deallocate_page( page *p ) { + virtual void deallocate_page( page *p ) __TBB_override { size_t n = sizeof(padded_page) + (items_per_page-1)*sizeof(T); my_allocator.deallocate( reinterpret_cast(p), n ); } @@ -449,10 +447,8 @@ concurrent_bounded_queue::~concurrent_bounded_queue() { template void concurrent_bounded_queue::clear() { - while( !empty() ) { - T value; - internal_pop_if_present(&value); - } + T value; + while( try_pop(value) ) /*noop*/; } using strict_ppl::concurrent_queue; diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_unordered_map.h b/lib/3rdParty/tbb/include/tbb/concurrent_unordered_map.h index 09a2a28..c959a7e 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_unordered_map.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_unordered_map.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ /* Container implementations in this header are based on PPL implementations @@ -45,22 +45,6 @@ protected: concurrent_unordered_map_traits() : my_hash_compare() {} concurrent_unordered_map_traits(const hash_compare& hc) : my_hash_compare(hc) {} - class value_compare : public std::binary_function - { - friend class concurrent_unordered_map_traits; - - public: - bool operator()(const value_type& left, const value_type& right) const - { - return (my_hash_compare(left.first, right.first)); - } - - value_compare(const hash_compare& comparator) : my_hash_compare(comparator) {} - - protected: - hash_compare my_hash_compare; // the comparator predicate for keys - }; - template static const Key& get_key(const std::pair& value) { return (value.first); @@ -115,12 +99,10 @@ public: const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), const allocator_type& a = allocator_type()) : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - } + {} - concurrent_unordered_map(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) - { - } + explicit concurrent_unordered_map(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) + {} template concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets = base_type::initial_bucket_number, @@ -142,11 +124,11 @@ public: } #endif //# __TBB_INITIALIZER_LISTS_PRESENT -#if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#if __TBB_CPP11_RVALUE_REF_PRESENT +#if !__TBB_IMPLICIT_MOVE_PRESENT concurrent_unordered_map(const concurrent_unordered_map& table) : base_type(table) - { - } + {} concurrent_unordered_map& operator=(const concurrent_unordered_map& table) { @@ -155,25 +137,22 @@ public: concurrent_unordered_map(concurrent_unordered_map&& table) : base_type(std::move(table)) - { - } + {} concurrent_unordered_map& operator=(concurrent_unordered_map&& table) { return static_cast(base_type::operator=(std::move(table))); } -#endif //__TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#endif //!__TBB_IMPLICIT_MOVE_PRESENT + + concurrent_unordered_map(concurrent_unordered_map&& table, const Allocator& a) : base_type(std::move(table), a) + {} +#endif //__TBB_CPP11_RVALUE_REF_PRESENT concurrent_unordered_map(const concurrent_unordered_map& table, const Allocator& a) : base_type(table, a) - { - } + {} -#if __TBB_CPP11_RVALUE_REF_PRESENT - concurrent_unordered_map(concurrent_unordered_map&& table, const Allocator& a) : base_type(std::move(table), a) - { - } -#endif // Observers mapped_type& operator[](const key_type& key) { @@ -256,12 +235,10 @@ public: const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), const allocator_type& a = allocator_type()) : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - } + {} - concurrent_unordered_multimap(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) - { - } + explicit concurrent_unordered_multimap(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) + {} template concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets = base_type::initial_bucket_number, @@ -283,11 +260,11 @@ public: } #endif //# __TBB_INITIALIZER_LISTS_PRESENT -#if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#if __TBB_CPP11_RVALUE_REF_PRESENT +#if !__TBB_IMPLICIT_MOVE_PRESENT concurrent_unordered_multimap(const concurrent_unordered_multimap& table) : base_type(table) - { - } + {} concurrent_unordered_multimap& operator=(const concurrent_unordered_multimap& table) { @@ -296,25 +273,21 @@ public: concurrent_unordered_multimap(concurrent_unordered_multimap&& table) : base_type(std::move(table)) - { - } + {} concurrent_unordered_multimap& operator=(concurrent_unordered_multimap&& table) { return static_cast(base_type::operator=(std::move(table))); } -#endif //__TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#endif //!__TBB_IMPLICIT_MOVE_PRESENT + + concurrent_unordered_multimap(concurrent_unordered_multimap&& table, const Allocator& a) : base_type(std::move(table), a) + {} +#endif //__TBB_CPP11_RVALUE_REF_PRESENT concurrent_unordered_multimap(const concurrent_unordered_multimap& table, const Allocator& a) : base_type(table, a) - { - } - -#if __TBB_CPP11_RVALUE_REF_PRESENT - concurrent_unordered_multimap(concurrent_unordered_multimap&& table, const Allocator& a) : base_type(std::move(table), a) - { - } -#endif + {} }; } // namespace interface5 diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_unordered_set.h b/lib/3rdParty/tbb/include/tbb/concurrent_unordered_set.h index 62d992b..a26fee1 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_unordered_set.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_unordered_set.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ /* Container implementations in this header are based on PPL implementations @@ -45,8 +45,6 @@ protected: concurrent_unordered_set_traits() : my_hash_compare() {} concurrent_unordered_set_traits(const hash_compare& hc) : my_hash_compare(hc) {} - typedef hash_compare value_compare; - static const Key& get_key(const value_type& value) { return value; } @@ -59,8 +57,8 @@ class concurrent_unordered_set : public internal::concurrent_unordered_base< con { // Base type definitions typedef internal::hash_compare hash_compare; - typedef internal::concurrent_unordered_base< concurrent_unordered_set_traits > base_type; - typedef concurrent_unordered_set_traits, Allocator, false> traits_type; + typedef concurrent_unordered_set_traits traits_type; + typedef internal::concurrent_unordered_base< traits_type > base_type; #if __TBB_EXTRA_DEBUG public: #endif @@ -94,12 +92,10 @@ public: explicit concurrent_unordered_set(size_type n_of_buckets = base_type::initial_bucket_number, const hasher& a_hasher = hasher(), const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) - { - } + {} - concurrent_unordered_set(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) - { - } + explicit concurrent_unordered_set(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) + {} template concurrent_unordered_set(Iterator first, Iterator last, size_type n_of_buckets = base_type::initial_bucket_number, const hasher& a_hasher = hasher(), @@ -111,7 +107,7 @@ public: #if __TBB_INITIALIZER_LISTS_PRESENT //! Constructor from initializer_list - concurrent_unordered_set(std::initializer_list il, size_type n_of_buckets = base_type::initial_bucket_number, const hasher& a_hasher = hasher(), + concurrent_unordered_set(std::initializer_list il, size_type n_of_buckets = base_type::initial_bucket_number, const hasher& a_hasher = hasher(), const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) { @@ -119,11 +115,11 @@ public: } #endif //# __TBB_INITIALIZER_LISTS_PRESENT -#if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#if __TBB_CPP11_RVALUE_REF_PRESENT +#if !__TBB_IMPLICIT_MOVE_PRESENT concurrent_unordered_set(const concurrent_unordered_set& table) : base_type(table) - { - } + {} concurrent_unordered_set& operator=(const concurrent_unordered_set& table) { @@ -132,26 +128,22 @@ public: concurrent_unordered_set(concurrent_unordered_set&& table) : base_type(std::move(table)) - { - } + {} concurrent_unordered_set& operator=(concurrent_unordered_set&& table) { return static_cast(base_type::operator=(std::move(table))); } -#endif //__TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#endif //!__TBB_IMPLICIT_MOVE_PRESENT + + concurrent_unordered_set(concurrent_unordered_set&& table, const Allocator& a) + : base_type(std::move(table), a) + {} +#endif //__TBB_CPP11_RVALUE_REF_PRESENT concurrent_unordered_set(const concurrent_unordered_set& table, const Allocator& a) : base_type(table, a) - { - } - -#if __TBB_CPP11_RVALUE_REF_PRESENT - concurrent_unordered_set(concurrent_unordered_set&& table, const Allocator& a) - : base_type(std::move(table), a) - { - } -#endif //__TBB_CPP11_RVALUE_REF_PRESENT + {} }; @@ -199,12 +191,10 @@ public: const hasher& _Hasher = hasher(), const key_equal& _Key_equality = key_equal(), const allocator_type& a = allocator_type()) : base_type(n_of_buckets, key_compare(_Hasher, _Key_equality), a) - { - } + {} - concurrent_unordered_multiset(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) - { - } + explicit concurrent_unordered_multiset(const Allocator& a) : base_type(base_type::initial_bucket_number, key_compare(), a) + {} template concurrent_unordered_multiset(Iterator first, Iterator last, size_type n_of_buckets = base_type::initial_bucket_number, @@ -217,7 +207,7 @@ public: #if __TBB_INITIALIZER_LISTS_PRESENT //! Constructor from initializer_list - concurrent_unordered_multiset(std::initializer_list il, size_type n_of_buckets = base_type::initial_bucket_number, const hasher& a_hasher = hasher(), + concurrent_unordered_multiset(std::initializer_list il, size_type n_of_buckets = base_type::initial_bucket_number, const hasher& a_hasher = hasher(), const key_equal& a_keyeq = key_equal(), const allocator_type& a = allocator_type()) : base_type(n_of_buckets, key_compare(a_hasher, a_keyeq), a) { @@ -225,39 +215,36 @@ public: } #endif //# __TBB_INITIALIZER_LISTS_PRESENT -#if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN - concurrent_unordered_multiset(const concurrent_unordered_multiset& table) +#if __TBB_CPP11_RVALUE_REF_PRESENT +#if !__TBB_IMPLICIT_MOVE_PRESENT + concurrent_unordered_multiset(const concurrent_unordered_multiset& table) : base_type(table) - { - } + {} - concurrent_unordered_multiset& operator=(const concurrent_unordered_multiset& table) + concurrent_unordered_multiset& operator=(const concurrent_unordered_multiset& table) { return static_cast(base_type::operator=(table)); } - concurrent_unordered_multiset(concurrent_unordered_multiset&& table) + concurrent_unordered_multiset(concurrent_unordered_multiset&& table) : base_type(std::move(table)) - { - } + {} - concurrent_unordered_multiset& operator=(concurrent_unordered_multiset&& table) + concurrent_unordered_multiset& operator=(concurrent_unordered_multiset&& table) { return static_cast(base_type::operator=(std::move(table))); } -#endif //__TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN +#endif //!__TBB_IMPLICIT_MOVE_PRESENT - concurrent_unordered_multiset(const concurrent_unordered_multiset& table, const Allocator& a) - : base_type(table, a) - { - } - -#if __TBB_CPP11_RVALUE_REF_PRESENT concurrent_unordered_multiset(concurrent_unordered_multiset&& table, const Allocator& a) : base_type(std::move(table), a) { } #endif //__TBB_CPP11_RVALUE_REF_PRESENT + + concurrent_unordered_multiset(const concurrent_unordered_multiset& table, const Allocator& a) + : base_type(table, a) + {} }; } // namespace interface5 diff --git a/lib/3rdParty/tbb/include/tbb/concurrent_vector.h b/lib/3rdParty/tbb/include/tbb/concurrent_vector.h index aeca317..370129e 100644 --- a/lib/3rdParty/tbb/include/tbb/concurrent_vector.h +++ b/lib/3rdParty/tbb/include/tbb/concurrent_vector.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_concurrent_vector_H @@ -30,6 +30,7 @@ #include "tbb_profiling.h" #include #include // for memset() +#include __TBB_STD_SWAP_HEADER #if !TBB_USE_EXCEPTIONS && _MSC_VER // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers @@ -72,12 +73,12 @@ namespace tbb { template > class concurrent_vector; -template -class vector_iterator; - //! @cond INTERNAL namespace internal { + template + class vector_iterator; + //! Bad allocation marker static void *const vector_allocation_error_flag = reinterpret_cast(size_t(63)); diff --git a/lib/3rdParty/tbb/include/tbb/critical_section.h b/lib/3rdParty/tbb/include/tbb/critical_section.h index 596f7fe..324b3e1 100644 --- a/lib/3rdParty/tbb/include/tbb/critical_section.h +++ b/lib/3rdParty/tbb/include/tbb/critical_section.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef _TBB_CRITICAL_SECTION_H_ diff --git a/lib/3rdParty/tbb/include/tbb/enumerable_thread_specific.h b/lib/3rdParty/tbb/include/tbb/enumerable_thread_specific.h index c457c03..f31f533 100644 --- a/lib/3rdParty/tbb/include/tbb/enumerable_thread_specific.h +++ b/lib/3rdParty/tbb/include/tbb/enumerable_thread_specific.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_enumerable_thread_specific_H @@ -73,7 +73,7 @@ namespace interface6 { slot& at( size_t k ) { return ((slot*)(void*)(this+1))[k]; } - size_t size() const {return (size_t)1<>(8*sizeof(size_t)-lg_size); @@ -102,14 +102,14 @@ namespace interface6 { virtual void* create_array(size_t _size) = 0; // _size in bytes virtual void free_array(void* ptr, size_t _size) = 0; // _size in bytes array* allocate( size_t lg_size ) { - size_t n = 1<(create_array( sizeof(array)+n*sizeof(slot) )); a->lg_size = lg_size; std::memset( a+1, 0, n*sizeof(slot) ); return a; } void free(array* a) { - size_t n = 1<<(a->lg_size); + size_t n = size_t(1)<<(a->lg_size); free_array( (void *)a, size_t(sizeof(array)+n*sizeof(slot)) ); } @@ -266,9 +266,9 @@ namespace interface6 { void* get_tls() const { return pthread_getspecific(my_key); } #endif tls_key_t my_key; - virtual void* create_local() = 0; - virtual void* create_array(size_t _size) = 0; // _size in bytes - virtual void free_array(void* ptr, size_t _size) = 0; // size in bytes + virtual void* create_local() __TBB_override = 0; + virtual void* create_array(size_t _size) __TBB_override = 0; // _size in bytes + virtual void free_array(void* ptr, size_t _size) __TBB_override = 0; // size in bytes protected: ets_base() {create_key();} ~ets_base() {destroy_key();} @@ -663,16 +663,16 @@ namespace interface6 { // TODO: make the construction/destruction consistent (use allocator.construct/destroy) typedef typename tbb::tbb_allocator my_allocator_type; - /*override*/ callback_base* clone() const { + callback_base* clone() const __TBB_override { return make(*this); } - /*override*/ void destroy() { + void destroy() __TBB_override { my_allocator_type().destroy(this); my_allocator_type().deallocate(this,1); } - /*override*/ void construct(void* where) { + void construct(void* where) __TBB_override { Constructor::construct(where); } public: @@ -700,7 +700,6 @@ namespace interface6 { successfully-constructed, set the flag to true or call value_committed(). If the constructor throws, the flag will be false. */ - // TODO: make a constructor for ets_element that takes a callback_base. make is_built private template struct ets_element { tbb::aligned_space my_space; @@ -794,7 +793,7 @@ namespace interface6 { // TODO: consider unifying the callback mechanism for all create_local* methods below // (likely non-compatible and requires interface version increase) - /*override*/ void* create_local() { + void* create_local() __TBB_override { padded_element& lref = *my_locals.grow_by(1); my_construct_callback->construct(lref.value()); return lref.value_committed(); @@ -819,12 +818,12 @@ namespace interface6 { typedef typename Allocator::template rebind< uintptr_t >::other array_allocator_type; // _size is in bytes - /*override*/ void* create_array(size_t _size) { + void* create_array(size_t _size) __TBB_override { size_t nelements = (_size + sizeof(uintptr_t) -1) / sizeof(uintptr_t); return array_allocator_type().allocate(nelements); } - /*override*/ void free_array( void* _ptr, size_t _size) { + void free_array( void* _ptr, size_t _size) __TBB_override { size_t nelements = (_size + sizeof(uintptr_t) -1) / sizeof(uintptr_t); array_allocator_type().deallocate( reinterpret_cast(_ptr),nelements); } @@ -860,17 +859,17 @@ namespace interface6 { , typename = typename internal::enable_if::type>::value>::type #endif > - enumerable_thread_specific( Finit finit ) : my_construct_callback( + explicit enumerable_thread_specific( Finit finit ) : my_construct_callback( internal::callback_leaf >::make( tbb::internal::move(finit) ) ){} //! Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar. - enumerable_thread_specific( const T& exemplar ) : my_construct_callback( + explicit enumerable_thread_specific( const T& exemplar ) : my_construct_callback( internal::callback_leaf >::make( exemplar ) ){} #if __TBB_ETS_USE_CPP11 - enumerable_thread_specific( T&& exemplar ) : my_construct_callback( + explicit enumerable_thread_specific( T&& exemplar ) : my_construct_callback( internal::callback_leaf >::make( std::move(exemplar) ) ){} @@ -1089,7 +1088,7 @@ namespace interface6 { flattened2d( const Container &c, typename Container::const_iterator b, typename Container::const_iterator e ) : my_container(const_cast(&c)), my_begin(b), my_end(e) { } - flattened2d( const Container &c ) : + explicit flattened2d( const Container &c ) : my_container(const_cast(&c)), my_begin(c.begin()), my_end(c.end()) { } iterator begin() { return iterator(*my_container) = my_begin; } diff --git a/lib/3rdParty/tbb/include/tbb/flow_graph.h b/lib/3rdParty/tbb/include/tbb/flow_graph.h index 3c5f305..7b03c0e 100644 --- a/lib/3rdParty/tbb/include/tbb/flow_graph.h +++ b/lib/3rdParty/tbb/include/tbb/flow_graph.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_flow_graph_H @@ -33,11 +33,21 @@ #include "internal/_template_helpers.h" #include "internal/_aggregator_impl.h" #include "tbb_profiling.h" - -#if __TBB_PREVIEW_ASYNC_NODE #include "task_arena.h" +#include "flow_graph_abstractions.h" + +#if __TBB_PREVIEW_ASYNC_MSG +#include // std::vector in internal::async_storage +#include // std::shared_ptr in async_msg #endif +#if __TBB_PREVIEW_STREAMING_NODE +// For streaming_node +#include // std::array +#include // std::unordered_map +#include // std::decay, std::true_type, std::false_type +#endif // __TBB_PREVIEW_STREAMING_NODE + #if TBB_DEPRECATED_FLOW_ENQUEUE #define FLOW_SPAWN(a) tbb::task::enqueue((a)) #else @@ -78,16 +88,20 @@ namespace flow { //! An enumeration the provides the two most common concurrency levels: unlimited and serial enum concurrency { unlimited = 0, serial = 1 }; -namespace interface8 { +namespace internal { +static tbb::task * const SUCCESSFULLY_ENQUEUED = (task *)-1; +} + +namespace interface9 { + +using tbb::flow::internal::SUCCESSFULLY_ENQUEUED; namespace internal { template class successor_cache; template class broadcast_cache; template class round_robin_cache; - -#if TBB_PREVIEW_FLOW_GRAPH_FEATURES - template< typename C> class edge_container; -#endif + template class predecessor_cache; + template class reservable_predecessor_cache; } //A generic null type @@ -100,53 +114,9 @@ template< typename T > class sender; template< typename T > class receiver; class continue_receiver; -//! Pure virtual template class that defines a sender of messages of type T -template< typename T > -class sender { -public: - //! The output type of this sender - typedef T output_type; - - //! The successor type for this node - typedef receiver successor_type; - - virtual ~sender() {} - - //! Add a new successor to this node - virtual bool register_successor( successor_type &r ) = 0; - - //! Removes a successor from this node - virtual bool remove_successor( successor_type &r ) = 0; - - //! Request an item from the sender - virtual bool try_get( T & ) { return false; } - - //! Reserves an item in the sender - virtual bool try_reserve( T & ) { return false; } - - //! Releases the reserved item - virtual bool try_release( ) { return false; } - - //! Consumes the reserved item - virtual bool try_consume( ) { return false; } - -#if TBB_PREVIEW_FLOW_GRAPH_FEATURES - //! interface to record edges for traversal & deletion - typedef typename internal::edge_container built_successors_type; - typedef typename built_successors_type::edge_list_type successor_list_type; - virtual built_successors_type &built_successors() = 0; - virtual void internal_add_built_successor( successor_type & ) = 0; - virtual void internal_delete_built_successor( successor_type & ) = 0; - virtual void copy_successors( successor_list_type &) = 0; - virtual size_t successor_count() = 0; -#endif -}; // class sender - template< typename T > class limiter_node; // needed for resetting decrementer template< typename R, typename B > class run_and_put_task; -static tbb::task * const SUCCESSFULLY_ENQUEUED = (task *)-1; - // flags to modify the behavior of the graph reset(). Can be combined. enum reset_flags { rf_reset_protocol = 0, @@ -154,80 +124,6 @@ enum reset_flags { rf_clear_edges = 1<<1 // delete edges }; -// enqueue left task if necessary. Returns the non-enqueued task if there is one. -static inline tbb::task *combine_tasks( tbb::task * left, tbb::task * right) { - // if no RHS task, don't change left. - if(right == NULL) return left; - // right != NULL - if(left == NULL) return right; - if(left == SUCCESSFULLY_ENQUEUED) return right; - // left contains a task - if(right != SUCCESSFULLY_ENQUEUED) { - // both are valid tasks - FLOW_SPAWN(*left); - return right; - } - return left; -} - -//! Pure virtual template class that defines a receiver of messages of type T -template< typename T > -class receiver { -public: - //! The input type of this receiver - typedef T input_type; - - //! The predecessor type for this node - typedef sender predecessor_type; - - //! Destructor - virtual ~receiver() {} - - //! Put an item to the receiver - bool try_put( const T& t ) { - task *res = try_put_task(t); - if (!res) return false; - if (res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); - return true; - } - - //! put item to successor; return task to run the successor if possible. -protected: - template< typename R, typename B > friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - virtual task *try_put_task(const T& t) = 0; -public: - - //! Add a predecessor to the node - virtual bool register_predecessor( predecessor_type & ) { return false; } - - //! Remove a predecessor from the node - virtual bool remove_predecessor( predecessor_type & ) { return false; } - -#if TBB_PREVIEW_FLOW_GRAPH_FEATURES - typedef typename internal::edge_container built_predecessors_type; - typedef typename built_predecessors_type::edge_list_type predecessor_list_type; - virtual built_predecessors_type &built_predecessors() = 0; - virtual void internal_add_built_predecessor( predecessor_type & ) = 0; - virtual void internal_delete_built_predecessor( predecessor_type & ) = 0; - virtual void copy_predecessors( predecessor_list_type & ) = 0; - virtual size_t predecessor_count() = 0; -#endif - -protected: - //! put receiver back in initial state - template friend class limiter_node; - virtual void reset_receiver(reset_flags f = rf_reset_protocol) = 0; - - template friend class internal::successor_cache; - virtual bool is_continue_receiver() { return false; } - -#if __TBB_PREVIEW_OPENCL_NODE - template< typename, typename > friend class proxy_dependency_receiver; -#endif /* __TBB_PREVIEW_OPENCL_NODE */ -}; // class receiver - #if TBB_PREVIEW_FLOW_GRAPH_FEATURES //* holder of edges both for caches and for those nodes which do not have predecessor caches. // C == receiver< ... > or sender< ... >, depending. @@ -265,15 +161,329 @@ public: // methods remove the statement from all predecessors/successors liste in the edge // container. - template< typename S > void sender_extract( S &s ); - template< typename R > void receiver_extract( R &r ); + template< typename S > void sender_extract( S &s ); + template< typename R > void receiver_extract( R &r ); -private: +private: edge_list_type built_edges; }; // class edge_container } // namespace internal #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ +#if __TBB_PREVIEW_ASYNC_MSG + +#include "internal/_flow_graph_async_msg_impl.h" + +namespace internal { + +class untyped_receiver; + +class untyped_sender { + template< typename, typename > friend class internal::predecessor_cache; + template< typename, typename > friend class internal::reservable_predecessor_cache; +public: + //! The successor type for this node + typedef untyped_receiver successor_type; + + virtual ~untyped_sender() {} + + // NOTE: Following part of PUBLIC section is copy-paste from original sender class + + // TODO: Prevent untyped successor registration + + //! Add a new successor to this node + virtual bool register_successor( successor_type &r ) = 0; + + //! Removes a successor from this node + virtual bool remove_successor( successor_type &r ) = 0; + + //! Releases the reserved item + virtual bool try_release( ) { return false; } + + //! Consumes the reserved item + virtual bool try_consume( ) { return false; } + +#if TBB_PREVIEW_FLOW_GRAPH_FEATURES + //! interface to record edges for traversal & deletion + typedef internal::edge_container built_successors_type; + typedef built_successors_type::edge_list_type successor_list_type; + virtual built_successors_type &built_successors() = 0; + virtual void internal_add_built_successor( successor_type & ) = 0; + virtual void internal_delete_built_successor( successor_type & ) = 0; + virtual void copy_successors( successor_list_type &) = 0; + virtual size_t successor_count() = 0; +#endif +protected: + //! Request an item from the sender + template< typename X > + bool try_get( X &t ) { + return try_get_wrapper( internal::async_helpers::to_void_ptr(t), internal::async_helpers::is_async_type ); + } + + //! Reserves an item in the sender + template< typename X > + bool try_reserve( X &t ) { + return try_reserve_wrapper( internal::async_helpers::to_void_ptr(t), internal::async_helpers::is_async_type ); + } + + virtual bool try_get_wrapper( void* p, bool is_async ) = 0; + virtual bool try_reserve_wrapper( void* p, bool is_async ) = 0; +}; + +class untyped_receiver { + template< typename, typename > friend class run_and_put_task; + template< typename > friend class limiter_node; + + template< typename, typename > friend class internal::broadcast_cache; + template< typename, typename > friend class internal::round_robin_cache; + template< typename, typename > friend class internal::successor_cache; + +#if __TBB_PREVIEW_OPENCL_NODE + template< typename, typename > friend class proxy_dependency_receiver; +#endif /* __TBB_PREVIEW_OPENCL_NODE */ +public: + //! The predecessor type for this node + typedef untyped_sender predecessor_type; + + //! Destructor + virtual ~untyped_receiver() {} + + //! Put an item to the receiver + template + bool try_put(const X& t) { + task *res = try_put_task(t); + if (!res) return false; + if (res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); + return true; + } + + // NOTE: Following part of PUBLIC section is copy-paste from original receiver class + + // TODO: Prevent untyped predecessor registration + + //! Add a predecessor to the node + virtual bool register_predecessor( predecessor_type & ) { return false; } + + //! Remove a predecessor from the node + virtual bool remove_predecessor( predecessor_type & ) { return false; } + +#if TBB_PREVIEW_FLOW_GRAPH_FEATURES + typedef internal::edge_container built_predecessors_type; + typedef built_predecessors_type::edge_list_type predecessor_list_type; + virtual built_predecessors_type &built_predecessors() = 0; + virtual void internal_add_built_predecessor( predecessor_type & ) = 0; + virtual void internal_delete_built_predecessor( predecessor_type & ) = 0; + virtual void copy_predecessors( predecessor_list_type & ) = 0; + virtual size_t predecessor_count() = 0; +#endif +protected: + template + task *try_put_task(const X& t) { + return try_put_task_wrapper( internal::async_helpers::to_void_ptr(t), internal::async_helpers::is_async_type ); + } + + virtual task* try_put_task_wrapper( const void* p, bool is_async ) = 0; + + // NOTE: Following part of PROTECTED and PRIVATE sections is copy-paste from original receiver class + + //! put receiver back in initial state + virtual void reset_receiver(reset_flags f = rf_reset_protocol) = 0; + + virtual bool is_continue_receiver() { return false; } +}; + +} // namespace internal + +//! Pure virtual template class that defines a sender of messages of type T +template< typename T > +class sender : public internal::untyped_sender { +public: + //! The output type of this sender + typedef T output_type; + + typedef typename internal::async_helpers::filtered_type filtered_type; + + //! Request an item from the sender + virtual bool try_get( T & ) { return false; } + + //! Reserves an item in the sender + virtual bool try_reserve( T & ) { return false; } + +protected: + virtual bool try_get_wrapper( void* p, bool is_async ) __TBB_override { + // Both async OR both are NOT async + if ( internal::async_helpers::is_async_type == is_async ) { + return try_get( internal::async_helpers::from_void_ptr(p) ); + } + // Else: this (T) is async OR incoming 't' is async + __TBB_ASSERT(false, "async_msg interface does not support 'pull' protocol in try_get()"); + return false; + } + + virtual bool try_reserve_wrapper( void* p, bool is_async ) __TBB_override { + // Both async OR both are NOT async + if ( internal::async_helpers::is_async_type == is_async ) { + return try_reserve( internal::async_helpers::from_void_ptr(p) ); + } + // Else: this (T) is async OR incoming 't' is async + __TBB_ASSERT(false, "async_msg interface does not support 'pull' protocol in try_reserve()"); + return false; + } +}; // class sender + +//! Pure virtual template class that defines a receiver of messages of type T +template< typename T > +class receiver : public internal::untyped_receiver { + template< typename > friend class internal::async_storage; + template< typename, typename > friend struct internal::async_helpers; +public: + //! The input type of this receiver + typedef T input_type; + + typedef typename internal::async_helpers::filtered_type filtered_type; + + //! Put an item to the receiver + bool try_put( const typename internal::async_helpers::filtered_type& t ) { + return internal::untyped_receiver::try_put(t); + } + + bool try_put( const typename internal::async_helpers::async_type& t ) { + return internal::untyped_receiver::try_put(t); + } + +protected: + virtual task* try_put_task_wrapper( const void *p, bool is_async ) __TBB_override { + return internal::async_helpers::try_put_task_wrapper_impl(this, p, is_async); + } + + //! Put item to successor; return task to run the successor if possible. + virtual task *try_put_task(const T& t) = 0; + +}; // class receiver + +#else // __TBB_PREVIEW_ASYNC_MSG + +//! Pure virtual template class that defines a sender of messages of type T +template< typename T > +class sender { +public: + //! The output type of this sender + typedef T output_type; + + //! The successor type for this node + typedef receiver successor_type; + + virtual ~sender() {} + + // NOTE: Following part of PUBLIC section is partly copy-pasted in sender under #if __TBB_PREVIEW_ASYNC_MSG + + //! Add a new successor to this node + virtual bool register_successor( successor_type &r ) = 0; + + //! Removes a successor from this node + virtual bool remove_successor( successor_type &r ) = 0; + + //! Request an item from the sender + virtual bool try_get( T & ) { return false; } + + //! Reserves an item in the sender + virtual bool try_reserve( T & ) { return false; } + + //! Releases the reserved item + virtual bool try_release( ) { return false; } + + //! Consumes the reserved item + virtual bool try_consume( ) { return false; } + +#if TBB_PREVIEW_FLOW_GRAPH_FEATURES + //! interface to record edges for traversal & deletion + typedef typename internal::edge_container built_successors_type; + typedef typename built_successors_type::edge_list_type successor_list_type; + virtual built_successors_type &built_successors() = 0; + virtual void internal_add_built_successor( successor_type & ) = 0; + virtual void internal_delete_built_successor( successor_type & ) = 0; + virtual void copy_successors( successor_list_type &) = 0; + virtual size_t successor_count() = 0; +#endif +}; // class sender + +//! Pure virtual template class that defines a receiver of messages of type T +template< typename T > +class receiver { +public: + //! The input type of this receiver + typedef T input_type; + + //! The predecessor type for this node + typedef sender predecessor_type; + + //! Destructor + virtual ~receiver() {} + + //! Put an item to the receiver + bool try_put( const T& t ) { + task *res = try_put_task(t); + if (!res) return false; + if (res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); + return true; + } + + //! put item to successor; return task to run the successor if possible. +protected: + template< typename R, typename B > friend class run_and_put_task; + template< typename X, typename Y > friend class internal::broadcast_cache; + template< typename X, typename Y > friend class internal::round_robin_cache; + virtual task *try_put_task(const T& t) = 0; +public: + // NOTE: Following part of PUBLIC and PROTECTED sections is copy-pasted in receiver under #if __TBB_PREVIEW_ASYNC_MSG + + //! Add a predecessor to the node + virtual bool register_predecessor( predecessor_type & ) { return false; } + + //! Remove a predecessor from the node + virtual bool remove_predecessor( predecessor_type & ) { return false; } + +#if TBB_PREVIEW_FLOW_GRAPH_FEATURES + typedef typename internal::edge_container built_predecessors_type; + typedef typename built_predecessors_type::edge_list_type predecessor_list_type; + virtual built_predecessors_type &built_predecessors() = 0; + virtual void internal_add_built_predecessor( predecessor_type & ) = 0; + virtual void internal_delete_built_predecessor( predecessor_type & ) = 0; + virtual void copy_predecessors( predecessor_list_type & ) = 0; + virtual size_t predecessor_count() = 0; +#endif + +protected: + //! put receiver back in initial state + template friend class limiter_node; + virtual void reset_receiver(reset_flags f = rf_reset_protocol) = 0; + + template friend class internal::successor_cache; + virtual bool is_continue_receiver() { return false; } + +#if __TBB_PREVIEW_OPENCL_NODE + template< typename, typename > friend class proxy_dependency_receiver; +#endif /* __TBB_PREVIEW_OPENCL_NODE */ +}; // class receiver + +#endif // __TBB_PREVIEW_ASYNC_MSG + +// enqueue left task if necessary. Returns the non-enqueued task if there is one. +static inline tbb::task *combine_tasks( tbb::task * left, tbb::task * right) { + // if no RHS task, don't change left. + if(right == NULL) return left; + // right != NULL + if(left == NULL) return right; + if(left == SUCCESSFULLY_ENQUEUED) return right; + // left contains a task + if(right != SUCCESSFULLY_ENQUEUED) { + // both are valid tasks + FLOW_SPAWN(*left); + return right; + } + return left; +} + //! Base class for receivers of completion messages /** These receivers automatically reset, but cannot be explicitly waited on */ class continue_receiver : public receiver< continue_msg > { @@ -283,10 +493,10 @@ public: typedef continue_msg input_type; //! The predecessor type for this node - typedef sender< continue_msg > predecessor_type; + typedef receiver::predecessor_type predecessor_type; //! Constructor - continue_receiver( int number_of_predecessors = 0 ) { + explicit continue_receiver( int number_of_predecessors = 0 ) { my_predecessor_count = my_initial_predecessor_count = number_of_predecessors; my_current_count = 0; } @@ -297,11 +507,8 @@ public: my_current_count = 0; } - //! Destructor - virtual ~continue_receiver() { } - //! Increments the trigger threshold - /* override */ bool register_predecessor( predecessor_type & ) { + bool register_predecessor( predecessor_type & ) __TBB_override { spin_mutex::scoped_lock l(my_mutex); ++my_predecessor_count; return true; @@ -311,7 +518,7 @@ public: /** Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results. */ - /* override */ bool remove_predecessor( predecessor_type & ) { + bool remove_predecessor( predecessor_type & ) __TBB_override { spin_mutex::scoped_lock l(my_mutex); --my_predecessor_count; return true; @@ -320,24 +527,24 @@ public: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef internal::edge_container built_predecessors_type; typedef built_predecessors_type::edge_list_type predecessor_list_type; - /*override*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } - /*override*/ void internal_add_built_predecessor( predecessor_type &s) { + void internal_add_built_predecessor( predecessor_type &s) __TBB_override { spin_mutex::scoped_lock l(my_mutex); my_built_predecessors.add_edge( s ); } - /*override*/ void internal_delete_built_predecessor( predecessor_type &s) { + void internal_delete_built_predecessor( predecessor_type &s) __TBB_override { spin_mutex::scoped_lock l(my_mutex); my_built_predecessors.delete_edge(s); } - /*override*/ void copy_predecessors( predecessor_list_type &v) { + void copy_predecessors( predecessor_list_type &v) __TBB_override { spin_mutex::scoped_lock l(my_mutex); my_built_predecessors.copy_edges(v); } - /*override*/ size_t predecessor_count() { + size_t predecessor_count() __TBB_override { spin_mutex::scoped_lock l(my_mutex); return my_built_predecessors.edge_count(); } @@ -349,7 +556,7 @@ protected: template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; // execute body is supposed to be too small to create a task for. - /* override */ task *try_put_task( const input_type & ) { + task *try_put_task( const input_type & ) __TBB_override { { spin_mutex::scoped_lock l(my_mutex); if ( ++my_current_count < my_predecessor_count ) @@ -374,7 +581,7 @@ protected: // error in gcc 4.1.2 template friend class limiter_node; - /*override*/void reset_receiver( reset_flags f ) { + void reset_receiver( reset_flags f ) __TBB_override { my_current_count = 0; if (f & rf_clear_edges) { #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -389,10 +596,10 @@ protected: called while the sender is blocked in the try_put(). */ virtual task * execute() = 0; template friend class internal::successor_cache; - /*override*/ bool is_continue_receiver() { return true; } + bool is_continue_receiver() __TBB_override { return true; } }; // class continue_receiver -} // interface8 +} // interface9 #if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING template @@ -401,9 +608,9 @@ protected: } #endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ - using interface8::sender; - using interface8::receiver; - using interface8::continue_receiver; + using interface9::sender; + using interface9::receiver; + using interface9::continue_receiver; } // flow } // tbb @@ -412,7 +619,7 @@ protected: namespace tbb { namespace flow { -namespace interface8 { +namespace interface9 { #include "internal/_flow_graph_impl.h" #include "internal/_flow_graph_types_impl.h" @@ -490,14 +697,14 @@ private: //! The graph class /** This class serves as a handle to the graph */ -class graph : tbb::internal::no_copy { +class graph : tbb::internal::no_copy, public graph_proxy { friend class graph_node; template< typename Body > class run_task : public task { public: run_task( Body& body ) : my_body(body) {} - task *execute() { + task *execute() __TBB_override { my_body(); return NULL; } @@ -509,7 +716,7 @@ class graph : tbb::internal::no_copy { class run_and_put_task : public task { public: run_and_put_task( Receiver &r, Body& body ) : my_receiver(r), my_body(body) {} - task *execute() { + task *execute() __TBB_override { task *res = my_receiver.try_put_task( my_body() ); if (res == SUCCESSFULLY_ENQUEUED) res = NULL; return res; @@ -520,7 +727,6 @@ class graph : tbb::internal::no_copy { }; typedef std::list task_list_type; -#if __TBB_PREVIEW_ASYNC_NODE class wait_functor { task* graph_root_task; public: @@ -530,24 +736,22 @@ class graph : tbb::internal::no_copy { void prepare_task_arena( bool reinit = false ) { if (reinit) { - __TBB_ASSERT( my_task_arena, NULL ); + __TBB_ASSERT( my_task_arena, "task arena is NULL"); my_task_arena->terminate(); my_task_arena->initialize(tbb::task_arena::attach()); } else { + __TBB_ASSERT(my_task_arena == NULL, "task arena is not NULL"); my_task_arena = new tbb::task_arena(tbb::task_arena::attach()); } if (!my_task_arena->is_active()) // failed to attach my_task_arena->initialize(); // create a new, default-initialized arena - __TBB_ASSERT(my_task_arena->is_active(), NULL); + __TBB_ASSERT(my_task_arena->is_active(), "task arena is not active"); } -#endif public: //! Constructs a graph with isolated task_group_context - graph() : my_nodes(NULL), my_nodes_last(NULL) { -#if __TBB_PREVIEW_ASYNC_NODE + graph() : my_nodes(NULL), my_nodes_last(NULL), my_task_arena(NULL) { prepare_task_arena(); -#endif own_context = true; cancelled = false; caught_exception = false; @@ -560,10 +764,8 @@ public: //! Constructs a graph with use_this_context as context explicit graph(task_group_context& use_this_context) : - my_context(&use_this_context), my_nodes(NULL), my_nodes_last(NULL) { -#if __TBB_PREVIEW_ASYNC_NODE + my_context(&use_this_context), my_nodes(NULL), my_nodes_last(NULL), my_task_arena(NULL) { prepare_task_arena(); -#endif own_context = false; my_root_task = ( new ( task::allocate_root(*my_context) ) empty_task ); my_root_task->set_ref_count(1); @@ -578,9 +780,7 @@ public: my_root_task->set_ref_count(0); task::destroy( *my_root_task ); if (own_context) delete my_context; -#if __TBB_PREVIEW_ASYNC_NODE delete my_task_arena; -#endif } #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -605,6 +805,14 @@ public: my_root_task->decrement_ref_count(); } + void reserve_wait() __TBB_override { + increment_wait_count(); + } + + void release_wait() __TBB_override { + decrement_wait_count(); + } + //! Spawns a task that runs a body and puts its output to a specific receiver /** The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source. */ @@ -635,11 +843,7 @@ public: #if TBB_USE_EXCEPTIONS try { #endif -#if __TBB_PREVIEW_ASYNC_NODE my_task_arena->execute(wait_functor(my_root_task)); -#else - my_root_task->wait_for_all(); -#endif cancelled = my_context->is_group_execution_cancelled(); #if TBB_USE_EXCEPTIONS } @@ -652,7 +856,7 @@ public: } #endif // TODO: the "if" condition below is just a work-around to support the concurrent wait - // mode. The cancelation and exception mechanisms are still broken in this mode. + // mode. The cancellation and exception mechanisms are still broken in this mode. // Consider using task group not to re-implement the same functionality. if ( !(my_context->traits() & task_group_context::concurrent_wait) ) { my_context->reset(); // consistent with behavior in catch() @@ -722,11 +926,9 @@ private: void register_node(graph_node *n); void remove_node(graph_node *n); -#if __TBB_PREVIEW_ASYNC_NODE template < typename Input, typename Output, typename Policy, typename Allocator > friend class async_node; task_arena* my_task_arena; -#endif }; // class graph template @@ -747,14 +949,13 @@ typename graph_iterator::pointer graph_iterator::operator->() const { return current_node; } - template void graph_iterator::internal_forward() { if (current_node) current_node = current_node->next; } //! The base of all graph nodes. -class graph_node : tbb::internal::no_assign { +class graph_node : tbb::internal::no_copy { friend class graph; template friend class graph_iterator; @@ -762,7 +963,7 @@ protected: graph& my_graph; graph_node *next, *prev; public: - graph_node(graph& g) : my_graph(g) { + explicit graph_node(graph& g) : my_graph(g) { my_graph.register_node(this); } virtual ~graph_node() { @@ -805,7 +1006,7 @@ inline void graph::remove_node(graph_node *n) { n->prev = n->next = NULL; } -inline void graph::reset( reset_flags f ) { +inline void graph::reset( reset_flags f ) { // reset context set_active(false); if(my_context) my_context->reset(); @@ -816,11 +1017,9 @@ inline void graph::reset( reset_flags f ) { graph_node *my_p = &(*ii); my_p->reset_node(f); } -#if __TBB_PREVIEW_ASYNC_NODE // Reattach the arena. Might be useful to run the graph in a particular task_arena // while not limiting graph lifetime to a single task_arena::execute() call. prepare_task_arena( /*reinit=*/true ); -#endif set_active(true); // now spawn the tasks necessary to start the graph for(task_list_type::iterator rti = my_reset_task_list.begin(); rti != my_reset_task_list.end(); ++rti) { @@ -829,20 +1028,17 @@ inline void graph::reset( reset_flags f ) { my_reset_task_list.clear(); } - #include "internal/_flow_graph_node_impl.h" //! An executable node that acts as a source, i.e. it has no predecessors template < typename Output > class source_node : public graph_node, public sender< Output > { -protected: - using graph_node::my_graph; public: //! The type of the output message, which is complete typedef Output output_type; //! The type of successors of this node - typedef receiver< Output > successor_type; + typedef typename sender::successor_type successor_type; //Source node has no input type typedef null_type input_type; @@ -881,13 +1077,13 @@ public: ~source_node() { delete my_body; delete my_init_body; } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif //! Add a new successor to this node - /* override */ bool register_successor( successor_type &r ) { + bool register_successor( successor_type &r ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); my_successors.register_successor(r); if ( my_active ) @@ -896,7 +1092,7 @@ public: } //! Removes a successor from this node - /* override */ bool remove_successor( successor_type &r ) { + bool remove_successor( successor_type &r ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); my_successors.remove_successor(r); return true; @@ -904,31 +1100,31 @@ public: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/ built_successors_type &built_successors() { return my_successors.built_successors(); } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } - /*override*/void internal_add_built_successor( successor_type &r) { + void internal_add_built_successor( successor_type &r) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); my_successors.internal_add_built_successor(r); } - /*override*/void internal_delete_built_successor( successor_type &r) { + void internal_delete_built_successor( successor_type &r) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); my_successors.internal_delete_built_successor(r); } - /*override*/size_t successor_count() { + size_t successor_count() __TBB_override { spin_mutex::scoped_lock lock(my_mutex); return my_successors.successor_count(); } - /*override*/void copy_successors(successor_list_type &v) { + void copy_successors(successor_list_type &v) __TBB_override { spin_mutex::scoped_lock l(my_mutex); my_successors.copy_successors(v); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ //! Request an item from the node - /*override */ bool try_get( output_type &v ) { + bool try_get( output_type &v ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); if ( my_reserved ) return false; @@ -945,7 +1141,7 @@ public: } //! Reserves an item. - /* override */ bool try_reserve( output_type &v ) { + bool try_reserve( output_type &v ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); if ( my_reserved ) { return false; @@ -962,7 +1158,7 @@ public: //! Release a reserved item. /** true = item has been released and so remains in sender, dest must request or reserve future items */ - /* override */ bool try_release( ) { + bool try_release( ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); __TBB_ASSERT( my_reserved && my_has_cached_item, "releasing non-existent reservation" ); my_reserved = false; @@ -972,7 +1168,7 @@ public: } //! Consumes a reserved item - /* override */ bool try_consume( ) { + bool try_consume( ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); __TBB_ASSERT( my_reserved && my_has_cached_item, "consuming non-existent reservation" ); my_reserved = false; @@ -998,7 +1194,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract( ) { + void extract( ) __TBB_override { my_successors.built_successors().sender_extract(*this); // removes "my_owner" == this from each successor my_active = init_my_active; my_reserved = false; @@ -1009,7 +1205,7 @@ public: protected: //! resets the source_node to its initial state - /*override*/void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { my_active = init_my_active; my_reserved =false; if(my_has_cached_item) { @@ -1069,7 +1265,7 @@ private: } //! Spawns a task that applies the body - /* override */ void spawn_put( ) { + void spawn_put( ) { if(this->my_graph.is_active()) { FLOW_SPAWN( *create_put_task()); } @@ -1077,7 +1273,7 @@ private: friend class internal::source_task_bypass< source_node< output_type > >; //! Applies the body. Returning SUCCESSFULLY_ENQUEUED okay; forward_task_bypass will handle it. - /* override */ task * apply_body_bypass( ) { + task * apply_body_bypass( ) { output_type v; if ( !try_reserve_apply_body(v) ) return NULL; @@ -1107,11 +1303,11 @@ class function_node : public graph_node, public internal::function_input predecessor_type; - typedef receiver< output_type > successor_type; typedef internal::function_input fInput_type; typedef internal::function_input_queue input_queue_type; typedef internal::function_output fOutput_type; + typedef typename fInput_type::predecessor_type predecessor_type; + typedef typename fOutput_type::successor_type successor_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename fInput_type::predecessor_list_type predecessor_list_type; typedef typename fOutput_type::successor_list_type successor_list_type; @@ -1126,27 +1322,27 @@ public: function_node( graph &g, size_t concurrency, Body body ) : graph_node(g), fInput_type(g, concurrency, body, allocate_buffer::value ? new input_queue_type( ) : NULL ) { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->graph_node::my_graph, + tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->my_graph, static_cast *>(this), static_cast *>(this), this->my_body ); } //! Copy constructor function_node( const function_node& src ) : - graph_node(src.graph_node::my_graph), + graph_node(src.my_graph), fInput_type(src, allocate_buffer::value ? new input_queue_type : NULL), fOutput_type() { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->graph_node::my_graph, + tbb::internal::fgt_node_with_body( tbb::internal::FLOW_FUNCTION_NODE, &this->my_graph, static_cast *>(this), static_cast *>(this), this->my_body ); } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract( ) { + void extract( ) __TBB_override { my_predecessors.built_predecessors().receiver_extract(*this); successors().built_successors().sender_extract(*this); } @@ -1158,10 +1354,9 @@ protected: template friend class internal::round_robin_cache; using fInput_type::try_put_task; - /* override */ internal::broadcast_cache &successors () { return fOutput_type::my_successors; } + internal::broadcast_cache &successors () __TBB_override { return fOutput_type::my_successors; } - // override of graph_node's reset. - /*override*/void reset_node(reset_flags f) { + void reset_node(reset_flags f) __TBB_override { fInput_type::reset_function_input(f); // TODO: use clear() instead. if(f & rf_clear_edges) { @@ -1174,7 +1369,6 @@ protected: }; // class function_node - //! implements a function node that supports Input -> (set of outputs) // Output is a tuple of output types. template < typename Input, typename Output, typename Policy = queueing, typename Allocator=cache_aligned_allocator > @@ -1191,7 +1385,6 @@ class multifunction_node : Allocator > { protected: - using graph_node::my_graph; static const int N = tbb::flow::tuple_size::value; public: typedef Input input_type; @@ -1207,83 +1400,125 @@ public: multifunction_node( graph &g, size_t concurrency, Body body ) : graph_node(g), base_type(g,concurrency, body, allocate_buffer::value ? new input_queue_type : NULL) { tbb::internal::fgt_multioutput_node_with_body( tbb::internal::FLOW_MULTIFUNCTION_NODE, - &this->graph_node::my_graph, static_cast *>(this), + &this->my_graph, static_cast *>(this), this->output_ports(), this->my_body ); } multifunction_node( const multifunction_node &other) : - graph_node(other.graph_node::my_graph), base_type(other, allocate_buffer::value ? new input_queue_type : NULL) { + graph_node(other.my_graph), base_type(other, allocate_buffer::value ? new input_queue_type : NULL) { tbb::internal::fgt_multioutput_node_with_body( tbb::internal::FLOW_MULTIFUNCTION_NODE, - &this->graph_node::my_graph, static_cast *>(this), + &this->my_graph, static_cast *>(this), this->output_ports(), this->my_body ); } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_multioutput_node_desc( this, name ); } #endif #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - void extract( ) { + void extract( ) __TBB_override { my_predecessors.built_predecessors().receiver_extract(*this); base_type::extract(); } #endif // all the guts are in multifunction_input... protected: - /*override*/void reset_node(reset_flags f) { base_type::reset(f); } + void reset_node(reset_flags f) __TBB_override { base_type::reset(f); } }; // multifunction_node //! split_node: accepts a tuple as input, forwards each element of the tuple to its -// successors. The node has unlimited concurrency, so though it is marked as -// "rejecting" it does not reject inputs. +// successors. The node has unlimited concurrency, so it does not reject inputs. template > -class split_node : public multifunction_node { +class split_node : public graph_node, public receiver { static const int N = tbb::flow::tuple_size::value; - typedef multifunction_node base_type; -public: - typedef typename base_type::output_ports_type output_ports_type; - typedef typename base_type::output_type output_type; -private: - struct splitting_body { - void operator()(const TupleType& t, output_ports_type &p) { - internal::emit_element::emit_this(t, p); - } - }; + typedef receiver base_type; public: typedef TupleType input_type; typedef Allocator allocator_type; - split_node(graph &g) : base_type(g, unlimited, splitting_body()) { - tbb::internal::fgt_multioutput_node( tbb::internal::FLOW_SPLIT_NODE, &this->graph_node::my_graph, - static_cast *>(this), this->output_ports() ); - } +#if TBB_PREVIEW_FLOW_GRAPH_FEATURES + typedef typename base_type::predecessor_type predecessor_type; + typedef typename base_type::predecessor_list_type predecessor_list_type; + typedef internal::predecessor_cache predecessor_cache_type; + typedef typename predecessor_cache_type::built_predecessors_type built_predecessors_type; +#endif - split_node( const split_node & other) : base_type(other) { - tbb::internal::fgt_multioutput_node( tbb::internal::FLOW_SPLIT_NODE, &this->graph_node::my_graph, - static_cast *>(this), this->output_ports() ); + typedef typename internal::wrap_tuple_elements< + N, // #elements in tuple + internal::multifunction_output, // wrap this around each element + TupleType // the tuple providing the types + >::type output_ports_type; + + explicit split_node(graph &g) : graph_node(g) + { + tbb::internal::fgt_multioutput_node(tbb::internal::FLOW_SPLIT_NODE, &this->my_graph, + static_cast *>(this), this->output_ports()); + } + split_node( const split_node & other) : graph_node(other.my_graph), base_type(other) + { + tbb::internal::fgt_multioutput_node(tbb::internal::FLOW_SPLIT_NODE, &this->my_graph, + static_cast *>(this), this->output_ports()); } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_multioutput_node_desc( this, name ); } #endif + output_ports_type &output_ports() { return my_output_ports; } + +protected: + task *try_put_task(const TupleType& t) __TBB_override { + // Sending split messages in parallel is not justified, as overheads would prevail + internal::emit_element::emit_this(t, output_ports()); + + //we do not have successors here.So we just tell the task is successful. + return SUCCESSFULLY_ENQUEUED; + } + void reset_node(reset_flags f) __TBB_override { + if (f & rf_clear_edges) + internal::clear_element::clear_this(my_output_ports); + + __TBB_ASSERT(!(f & rf_clear_edges) || internal::clear_element::this_empty(my_output_ports), "split_node reset failed"); + } + void reset_receiver(reset_flags /*f*/) __TBB_override {} + +#if TBB_PREVIEW_FLOW_GRAPH_FEATURES +private: //! split_node doesn't use this "predecessors" functionality; so, we have "dummies" here; + void extract() __TBB_override {} + + //! Adds to list of predecessors added by make_edge + void internal_add_built_predecessor(predecessor_type&) __TBB_override {} + + //! removes from to list of predecessors (used by remove_edge) + void internal_delete_built_predecessor(predecessor_type&) __TBB_override {} + + size_t predecessor_count() __TBB_override { return 0; } + + void copy_predecessors(predecessor_list_type&) __TBB_override {} + + built_predecessors_type &built_predecessors() __TBB_override { return my_predessors; } + + //! dummy member + built_predecessors_type my_predessors; +#endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ + +private: + output_ports_type my_output_ports; }; //! Implements an executable node that supports continue_msg -> Output template class continue_node : public graph_node, public internal::continue_input, public internal::function_output { -protected: - using graph_node::my_graph; public: typedef continue_msg input_type; typedef Output output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; typedef internal::continue_input fInput_type; typedef internal::function_output fOutput_type; + typedef typename fInput_type::predecessor_type predecessor_type; + typedef typename fOutput_type::successor_type successor_type; //! Constructor for executable node with continue_msg -> Output template @@ -1306,7 +1541,7 @@ public: //! Copy constructor continue_node( const continue_node& src ) : - graph_node(src.graph_node::my_graph), internal::continue_input(src), + graph_node(src.my_graph), internal::continue_input(src), internal::function_output() { tbb::internal::fgt_node_with_body( tbb::internal::FLOW_CONTINUE_NODE, &this->my_graph, static_cast *>(this), @@ -1314,13 +1549,13 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override graph_node*/ void extract() { + void extract() __TBB_override { fInput_type::my_built_predecessors.receiver_extract(*this); successors().built_successors().sender_extract(*this); } @@ -1331,25 +1566,22 @@ protected: template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; using fInput_type::try_put_task; - /* override */ internal::broadcast_cache &successors () { return fOutput_type::my_successors; } + internal::broadcast_cache &successors () __TBB_override { return fOutput_type::my_successors; } - /*override*/void reset_node(reset_flags f) { + void reset_node(reset_flags f) __TBB_override { fInput_type::reset_receiver(f); if(f & rf_clear_edges)successors().clear(); __TBB_ASSERT(!(f & rf_clear_edges) || successors().empty(), "continue_node not reset"); } - }; // continue_node template< typename T > class overwrite_node : public graph_node, public receiver, public sender { -protected: - using graph_node::my_graph; public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::built_predecessors_type built_predecessors_type; typedef typename sender::built_successors_type built_successors_type; @@ -1357,7 +1589,7 @@ public: typedef typename sender::successor_list_type successor_list_type; #endif - overwrite_node(graph &g) : graph_node(g), my_buffer_is_valid(false) { + explicit overwrite_node(graph &g) : graph_node(g), my_buffer_is_valid(false) { my_successors.set_owner( this ); tbb::internal::fgt_node( tbb::internal::FLOW_OVERWRITE_NODE, &this->my_graph, static_cast *>(this), static_cast *>(this) ); @@ -1375,12 +1607,12 @@ public: ~overwrite_node() {} #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif - /* override */ bool register_successor( successor_type &s ) { + bool register_successor( successor_type &s ) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); if (my_buffer_is_valid && this->my_graph.is_active()) { // We have a valid value that must be forwarded immediately. @@ -1398,57 +1630,57 @@ public: return true; } - /* override */ bool remove_successor( successor_type &s ) { + bool remove_successor( successor_type &s ) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_successors.remove_successor(s); return true; } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/built_predecessors_type &built_predecessors() { return my_built_predecessors; } - /*override*/built_successors_type &built_successors() { return my_successors.built_successors(); } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } - /*override*/void internal_add_built_successor( successor_type &s) { + void internal_add_built_successor( successor_type &s) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_successors.internal_add_built_successor(s); } - /*override*/void internal_delete_built_successor( successor_type &s) { + void internal_delete_built_successor( successor_type &s) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_successors.internal_delete_built_successor(s); } - /*override*/size_t successor_count() { + size_t successor_count() __TBB_override { spin_mutex::scoped_lock l( my_mutex ); return my_successors.successor_count(); } - /*override*/ void copy_successors(successor_list_type &v) { + void copy_successors(successor_list_type &v) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_successors.copy_successors(v); } - /*override*/ void internal_add_built_predecessor( predecessor_type &p) { + void internal_add_built_predecessor( predecessor_type &p) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_built_predecessors.add_edge(p); } - /*override*/ void internal_delete_built_predecessor( predecessor_type &p) { + void internal_delete_built_predecessor( predecessor_type &p) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_built_predecessors.delete_edge(p); } - /*override*/size_t predecessor_count() { + size_t predecessor_count() __TBB_override { spin_mutex::scoped_lock l( my_mutex ); return my_built_predecessors.edge_count(); } - /*override*/void copy_predecessors(predecessor_list_type &v) { + void copy_predecessors(predecessor_list_type &v) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); my_built_predecessors.copy_edges(v); } - /*override*/ void extract() { + void extract() __TBB_override { my_buffer_is_valid = false; built_successors().sender_extract(*this); built_predecessors().receiver_extract(*this); @@ -1456,7 +1688,7 @@ public: #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ - /* override */ bool try_get( input_type &v ) { + bool try_get( input_type &v ) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); if ( my_buffer_is_valid ) { v = my_buffer; @@ -1479,8 +1711,12 @@ protected: template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; - /* override */ task * try_put_task( const input_type &v ) { + task * try_put_task( const input_type &v ) __TBB_override { spin_mutex::scoped_lock l( my_mutex ); + return try_put_task_impl(v); + } + + task * try_put_task_impl(const input_type &v) { my_buffer = v; my_buffer_is_valid = true; task * rtask = my_successors.try_put_task(v); @@ -1495,9 +1731,9 @@ protected: #endif input_type my_buffer; bool my_buffer_is_valid; - /*override*/void reset_receiver(reset_flags /*f*/) {} + void reset_receiver(reset_flags /*f*/) __TBB_override {} - /*override*/void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { my_buffer_is_valid = false; if (f&rf_clear_edges) { my_successors.clear(); @@ -1510,11 +1746,11 @@ class write_once_node : public overwrite_node { public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; //! Constructor - write_once_node(graph& g) : overwrite_node(g) { + explicit write_once_node(graph& g) : overwrite_node(g) { tbb::internal::fgt_node( tbb::internal::FLOW_WRITE_ONCE_NODE, &(this->my_graph), static_cast *>(this), static_cast *>(this) ); @@ -1528,7 +1764,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -1537,30 +1773,20 @@ protected: template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; - /* override */ task *try_put_task( const T &v ) { + task *try_put_task( const T &v ) __TBB_override { spin_mutex::scoped_lock l( this->my_mutex ); - if ( this->my_buffer_is_valid ) { - return NULL; - } else { - this->my_buffer = v; - this->my_buffer_is_valid = true; - task *res = this->my_successors.try_put_task(v); - if (!res) res = SUCCESSFULLY_ENQUEUED; - return res; - } + return this->my_buffer_is_valid ? NULL : this->try_put_task_impl(v); } }; //! Forwards messages of type T to all successors template class broadcast_node : public graph_node, public receiver, public sender { -protected: - using graph_node::my_graph; public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::predecessor_list_type predecessor_list_type; typedef typename sender::successor_list_type successor_list_type; @@ -1573,7 +1799,7 @@ private: #endif public: - broadcast_node(graph& g) : graph_node(g) { + explicit broadcast_node(graph& g) : graph_node(g) { my_successors.set_owner( this ); tbb::internal::fgt_node( tbb::internal::FLOW_BROADCAST_NODE, &this->my_graph, static_cast *>(this), static_cast *>(this) ); @@ -1589,19 +1815,19 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif //! Adds a successor - virtual bool register_successor( receiver &r ) { + bool register_successor( successor_type &r ) __TBB_override { my_successors.register_successor( r ); return true; } //! Removes s as a successor - virtual bool remove_successor( receiver &r ) { + bool remove_successor( successor_type &r ) __TBB_override { my_successors.remove_successor( r ); return true; } @@ -1609,49 +1835,49 @@ public: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename sender::built_successors_type built_successors_type; - /*override sender*/ built_successors_type &built_successors() { return my_successors.built_successors(); } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } - /*override sender*/ void internal_add_built_successor(successor_type &r) { + void internal_add_built_successor(successor_type &r) __TBB_override { my_successors.internal_add_built_successor(r); } - /*override sender*/ void internal_delete_built_successor(successor_type &r) { + void internal_delete_built_successor(successor_type &r) __TBB_override { my_successors.internal_delete_built_successor(r); } - /*override sender*/ size_t successor_count() { + size_t successor_count() __TBB_override { return my_successors.successor_count(); } - /*override*/ void copy_successors(successor_list_type &v) { + void copy_successors(successor_list_type &v) __TBB_override { my_successors.copy_successors(v); } typedef typename receiver::built_predecessors_type built_predecessors_type; - /*override receiver*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } - /*override*/ void internal_add_built_predecessor( predecessor_type &p) { + void internal_add_built_predecessor( predecessor_type &p) __TBB_override { spin_mutex::scoped_lock l(pred_mutex); my_built_predecessors.add_edge(p); } - /*override*/ void internal_delete_built_predecessor( predecessor_type &p) { + void internal_delete_built_predecessor( predecessor_type &p) __TBB_override { spin_mutex::scoped_lock l(pred_mutex); my_built_predecessors.delete_edge(p); } - /*override*/ size_t predecessor_count() { + size_t predecessor_count() __TBB_override { spin_mutex::scoped_lock l(pred_mutex); return my_built_predecessors.edge_count(); } - /*override*/ void copy_predecessors(predecessor_list_type &v) { + void copy_predecessors(predecessor_list_type &v) __TBB_override { spin_mutex::scoped_lock l(pred_mutex); my_built_predecessors.copy_edges(v); } - /*override graph_node*/ void extract() { + void extract() __TBB_override { my_built_predecessors.receiver_extract(*this); my_successors.built_successors().sender_extract(*this); } @@ -1662,15 +1888,15 @@ protected: template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; //! build a task to run the successor if possible. Default is old behavior. - /*override*/ task *try_put_task(const T& t) { + task *try_put_task(const T& t) __TBB_override { task *new_task = my_successors.try_put_task(t); if (!new_task) new_task = SUCCESSFULLY_ENQUEUED; return new_task; } - /*override*/void reset_receiver(reset_flags /*f*/) {} + void reset_receiver(reset_flags /*f*/) __TBB_override {} - /*override*/void reset_node(reset_flags f) { + void reset_node(reset_flags f) __TBB_override { if (f&rf_clear_edges) { my_successors.clear(); #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -1684,13 +1910,11 @@ protected: //! Forwards messages in arbitrary order template > class buffer_node : public graph_node, public internal::reservable_item_buffer, public receiver, public sender { -protected: - using graph_node::my_graph; public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; typedef buffer_node class_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::predecessor_list_type predecessor_list_type; @@ -1714,7 +1938,6 @@ protected: blt_succ_cpy, blt_pred_cpy // create vector copies of preds and succs #endif }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; // implements the aggregator_operation concept class buffer_operation : public internal::aggregated_operation< buffer_operation > { @@ -1752,19 +1975,26 @@ protected: internal::aggregator< handler_type, buffer_operation> my_aggregator; virtual void handle_operations(buffer_operation *op_list) { + handle_operations_impl(op_list, this); + } + + template + void handle_operations_impl(buffer_operation *op_list, derived_type* derived) { + __TBB_ASSERT(static_cast(derived) == this, "'this' is not a base class for derived"); + buffer_operation *tmp = NULL; - bool try_forwarding=false; + bool try_forwarding = false; while (op_list) { tmp = op_list; op_list = op_list->next; switch (tmp->type) { - case reg_succ: internal_reg_succ(tmp); try_forwarding = true; break; + case reg_succ: internal_reg_succ(tmp); try_forwarding = true; break; case rem_succ: internal_rem_succ(tmp); break; case req_item: internal_pop(tmp); break; case res_item: internal_reserve(tmp); break; - case rel_res: internal_release(tmp); try_forwarding = true; break; - case con_res: internal_consume(tmp); try_forwarding = true; break; - case put_item: internal_push(tmp); try_forwarding = (tmp->status == SUCCEEDED); break; + case rel_res: internal_release(tmp); try_forwarding = true; break; + case con_res: internal_consume(tmp); try_forwarding = true; break; + case put_item: try_forwarding = internal_push(tmp); break; case try_fwd_task: internal_forward_task(tmp); break; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES // edge recording @@ -1779,6 +2009,9 @@ protected: #endif } } + + derived->order(); + if (try_forwarding && !forwarder_busy) { if(this->my_graph.is_active()) { forwarder_busy = true; @@ -1811,144 +2044,161 @@ protected: buffer_operation op_data(try_fwd_task); task *last_task = NULL; do { - op_data.status = WAIT; + op_data.status = internal::WAIT; op_data.ltask = NULL; my_aggregator.execute(&op_data); tbb::task *xtask = op_data.ltask; last_task = combine_tasks(last_task, xtask); - } while (op_data.status == SUCCEEDED); + } while (op_data.status ==internal::SUCCEEDED); return last_task; } //! Register successor virtual void internal_reg_succ(buffer_operation *op) { my_successors.register_successor(*(op->r)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } //! Remove successor virtual void internal_rem_succ(buffer_operation *op) { my_successors.remove_successor(*(op->r)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename sender::built_successors_type built_successors_type; - /*override sender*/ built_successors_type &built_successors() { return my_successors.built_successors(); } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } virtual void internal_add_built_succ(buffer_operation *op) { my_successors.internal_add_built_successor(*(op->r)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_del_built_succ(buffer_operation *op) { my_successors.internal_delete_built_successor(*(op->r)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } typedef typename receiver::built_predecessors_type built_predecessors_type; - /*override receiver*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } virtual void internal_add_built_pred(buffer_operation *op) { my_built_predecessors.add_edge(*(op->p)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_del_built_pred(buffer_operation *op) { my_built_predecessors.delete_edge(*(op->p)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_succ_cnt(buffer_operation *op) { op->cnt_val = my_successors.successor_count(); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_pred_cnt(buffer_operation *op) { op->cnt_val = my_built_predecessors.edge_count(); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_copy_succs(buffer_operation *op) { my_successors.copy_successors(*(op->svec)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_copy_preds(buffer_operation *op) { my_built_predecessors.copy_edges(*(op->pvec)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ +private: + void order() {} + + bool is_item_valid() { + return this->my_item_valid(this->my_tail - 1); + } + + void try_put_and_add_task(task*& last_task) { + task *new_task = my_successors.try_put_task(this->back()); + if (new_task) { + last_task = combine_tasks(last_task, new_task); + this->destroy_back(); + } + } + +protected: //! Tries to forward valid items to successors virtual void internal_forward_task(buffer_operation *op) { - if (this->my_reserved || !this->my_item_valid(this->my_tail-1)) { - __TBB_store_with_release(op->status, FAILED); + internal_forward_task_impl(op, this); + } + + template + void internal_forward_task_impl(buffer_operation *op, derived_type* derived) { + __TBB_ASSERT(static_cast(derived) == this, "'this' is not a base class for derived"); + + if (this->my_reserved || !derived->is_item_valid()) { + __TBB_store_with_release(op->status, internal::FAILED); this->forwarder_busy = false; return; } - T i_copy; + // Try forwarding, giving each successor a chance task * last_task = NULL; size_type counter = my_successors.size(); - // Try forwarding, giving each successor a chance - while (counter>0 && !this->buffer_empty() && this->my_item_valid(this->my_tail-1)) { - this->copy_back(i_copy); - task *new_task = my_successors.try_put_task(i_copy); - if(new_task) { - last_task = combine_tasks(last_task, new_task); - this->destroy_back(); - } - --counter; - } + for (; counter > 0 && derived->is_item_valid(); --counter) + derived->try_put_and_add_task(last_task); + op->ltask = last_task; // return task if (last_task && !counter) { - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } else { - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); forwarder_busy = false; } } - virtual void internal_push(buffer_operation *op) { + virtual bool internal_push(buffer_operation *op) { this->push_back(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); + return true; } virtual void internal_pop(buffer_operation *op) { if(this->pop_back(*(op->elem))) { - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } else { - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); } } virtual void internal_reserve(buffer_operation *op) { if(this->reserve_front(*(op->elem))) { - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } else { - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); } } virtual void internal_consume(buffer_operation *op) { this->consume_front(); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } virtual void internal_release(buffer_operation *op) { this->release_front(); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } public: //! Constructor - buffer_node( graph &g ) : graph_node(g), internal::reservable_item_buffer(), + explicit buffer_node( graph &g ) : graph_node(g), internal::reservable_item_buffer(), forwarder_busy(false) { my_successors.set_owner(this); my_aggregator.initialize_handler(handler_type(this)); @@ -1966,10 +2216,8 @@ public: static_cast *>(this), static_cast *>(this) ); } - virtual ~buffer_node() {} - #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -1980,7 +2228,7 @@ public: //! Adds a new successor. /** Adds successor r to the list of successors; may forward tasks. */ - /* override */ bool register_successor( successor_type &r ) { + bool register_successor( successor_type &r ) __TBB_override { buffer_operation op_data(reg_succ); op_data.r = &r; my_aggregator.execute(&op_data); @@ -1989,49 +2237,49 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/ void internal_add_built_successor( successor_type &r) { + void internal_add_built_successor( successor_type &r) __TBB_override { buffer_operation op_data(add_blt_succ); op_data.r = &r; my_aggregator.execute(&op_data); } - /*override*/ void internal_delete_built_successor( successor_type &r) { + void internal_delete_built_successor( successor_type &r) __TBB_override { buffer_operation op_data(del_blt_succ); op_data.r = &r; my_aggregator.execute(&op_data); } - /*override*/ void internal_add_built_predecessor( predecessor_type &p) { + void internal_add_built_predecessor( predecessor_type &p) __TBB_override { buffer_operation op_data(add_blt_pred); op_data.p = &p; my_aggregator.execute(&op_data); } - /*override*/ void internal_delete_built_predecessor( predecessor_type &p) { + void internal_delete_built_predecessor( predecessor_type &p) __TBB_override { buffer_operation op_data(del_blt_pred); op_data.p = &p; my_aggregator.execute(&op_data); } - /*override*/ size_t predecessor_count() { + size_t predecessor_count() __TBB_override { buffer_operation op_data(blt_pred_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/ size_t successor_count() { + size_t successor_count() __TBB_override { buffer_operation op_data(blt_succ_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/ void copy_predecessors( predecessor_list_type &v ) { + void copy_predecessors( predecessor_list_type &v ) __TBB_override { buffer_operation op_data(blt_pred_cpy); op_data.pvec = &v; my_aggregator.execute(&op_data); } - /*override*/ void copy_successors( successor_list_type &v ) { + void copy_successors( successor_list_type &v ) __TBB_override { buffer_operation op_data(blt_succ_cpy); op_data.svec = &v; my_aggregator.execute(&op_data); @@ -2042,7 +2290,7 @@ public: //! Removes a successor. /** Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor. */ - /* override */ bool remove_successor( successor_type &r ) { + bool remove_successor( successor_type &r ) __TBB_override { r.remove_predecessor(*this); buffer_operation op_data(rem_succ); op_data.r = &r; @@ -2057,28 +2305,28 @@ public: //! Request an item from the buffer_node /** true = v contains the returned item
      false = no item has been returned */ - /* override */ bool try_get( T &v ) { + bool try_get( T &v ) __TBB_override { buffer_operation op_data(req_item); op_data.elem = &v; my_aggregator.execute(&op_data); (void)enqueue_forwarding_task(op_data); - return (op_data.status==SUCCEEDED); + return (op_data.status==internal::SUCCEEDED); } //! Reserves an item. /** false = no item can be reserved
      true = an item is reserved */ - /* override */ bool try_reserve( T &v ) { + bool try_reserve( T &v ) __TBB_override { buffer_operation op_data(res_item); op_data.elem = &v; my_aggregator.execute(&op_data); (void)enqueue_forwarding_task(op_data); - return (op_data.status==SUCCEEDED); + return (op_data.status==internal::SUCCEEDED); } //! Release a reserved item. /** true = item has been released and so remains in sender */ - /* override */ bool try_release() { + bool try_release() __TBB_override { buffer_operation op_data(rel_res); my_aggregator.execute(&op_data); (void)enqueue_forwarding_task(op_data); @@ -2087,7 +2335,7 @@ public: //! Consumes a reserved item. /** true = item is removed from sender and reservation removed */ - /* override */ bool try_consume() { + bool try_consume() __TBB_override { buffer_operation op_data(con_res); my_aggregator.execute(&op_data); (void)enqueue_forwarding_task(op_data); @@ -2100,37 +2348,37 @@ protected: template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; //! receive an item, return a task *if possible - /* override */ task *try_put_task(const T &t) { + task *try_put_task(const T &t) __TBB_override { buffer_operation op_data(t, put_item); my_aggregator.execute(&op_data); task *ft = grab_forwarding_task(op_data); // sequencer_nodes can return failure (if an item has been previously inserted) // We have to spawn the returned task if our own operation fails. - if(ft && op_data.status == FAILED) { + if(ft && op_data.status ==internal::FAILED) { // we haven't succeeded queueing the item, but for some reason the // call returned a task (if another request resulted in a successful // forward this could happen.) Queue the task and reset the pointer. FLOW_SPAWN(*ft); ft = NULL; } - else if(!ft && op_data.status == SUCCEEDED) { + else if(!ft && op_data.status ==internal::SUCCEEDED) { ft = SUCCESSFULLY_ENQUEUED; } return ft; } - /*override*/void reset_receiver(reset_flags /*f*/) { } + void reset_receiver(reset_flags /*f*/) __TBB_override { } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES public: - /* override*/ void extract() { + void extract() __TBB_override { my_built_predecessors.receiver_extract(*this); my_successors.built_successors().sender_extract(*this); } #endif protected: - /*override*/void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { internal::reservable_item_buffer::reset(); // TODO: just clear structures if (f&rf_clear_edges) { @@ -2141,8 +2389,6 @@ protected: } forwarder_busy = false; } - - }; // buffer_node //! Forwards messages in FIFO order @@ -2152,68 +2398,59 @@ protected: typedef buffer_node base_type; typedef typename base_type::size_type size_type; typedef typename base_type::buffer_operation queue_operation; + typedef queue_node class_type; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; +private: + template friend class buffer_node; - /* override */ void internal_forward_task(queue_operation *op) { - if (this->my_reserved || !this->my_item_valid(this->my_head)) { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - return; - } - T i_copy; - task *last_task = NULL; - size_type counter = this->my_successors.size(); - // Keep trying to send items while there is at least one accepting successor - while (counter>0 && this->my_item_valid(this->my_head)) { - this->copy_front(i_copy); - task *new_task = this->my_successors.try_put_task(i_copy); - if(new_task) { - this->destroy_front(); - last_task = combine_tasks(last_task, new_task); - } - --counter; - } - op->ltask = last_task; - if (last_task && !counter) - __TBB_store_with_release(op->status, SUCCEEDED); - else { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; + bool is_item_valid() { + return this->my_item_valid(this->my_head); + } + + void try_put_and_add_task(task*& last_task) { + task *new_task = this->my_successors.try_put_task(this->front()); + if (new_task) { + last_task = combine_tasks(last_task, new_task); + this->destroy_front(); } } - /* override */ void internal_pop(queue_operation *op) { +protected: + void internal_forward_task(queue_operation *op) __TBB_override { + this->internal_forward_task_impl(op, this); + } + + void internal_pop(queue_operation *op) __TBB_override { if ( this->my_reserved || !this->my_item_valid(this->my_head)){ - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); } else { this->pop_front(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } } - /* override */ void internal_reserve(queue_operation *op) { + void internal_reserve(queue_operation *op) __TBB_override { if (this->my_reserved || !this->my_item_valid(this->my_head)) { - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); } else { this->reserve_front(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } } - /* override */ void internal_consume(queue_operation *op) { + void internal_consume(queue_operation *op) __TBB_override { this->consume_front(); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); } public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; //! Constructor - queue_node( graph &g ) : base_type(g) { + explicit queue_node( graph &g ) : base_type(g) { tbb::internal::fgt_node( tbb::internal::FLOW_QUEUE_NODE, &(this->my_graph), static_cast *>(this), static_cast *>(this) ); @@ -2227,13 +2464,13 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif protected: - /*override*/void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { base_type::reset_node(f); } }; // queue_node @@ -2247,8 +2484,8 @@ class sequencer_node : public queue_node { public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; //! Constructor template< typename Sequencer > @@ -2271,7 +2508,7 @@ public: ~sequencer_node() { delete my_sequencer; } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -2280,32 +2517,27 @@ protected: typedef typename buffer_node::size_type size_type; typedef typename buffer_node::buffer_operation sequencer_operation; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - private: - /* override */ void internal_push(sequencer_operation *op) { + bool internal_push(sequencer_operation *op) __TBB_override { size_type tag = (*my_sequencer)(*(op->elem)); #if !TBB_DEPRECATED_SEQUENCER_DUPLICATES - if(tag < this->my_head) { + if (tag < this->my_head) { // have already emitted a message with this tag - __TBB_store_with_release(op->status, FAILED); - return; + __TBB_store_with_release(op->status, internal::FAILED); + return false; } #endif // cannot modify this->my_tail now; the buffer would be inconsistent. size_t new_tail = (tag+1 > this->my_tail) ? tag+1 : this->my_tail; - if(this->size(new_tail) > this->capacity()) { + if (this->size(new_tail) > this->capacity()) { this->grow_my_array(this->size(new_tail)); } this->my_tail = new_tail; - if(this->place_item(tag,*(op->elem))) { - __TBB_store_with_release(op->status, SUCCEEDED); - } - else { - // already have a message with this tag - __TBB_store_with_release(op->status, FAILED); - } + + const internal::op_stat res = this->place_item(tag, *(op->elem)) ? internal::SUCCEEDED : internal::FAILED; + __TBB_store_with_release(op->status, res); + return res ==internal::SUCCEEDED; } }; // sequencer_node @@ -2316,11 +2548,12 @@ public: typedef T input_type; typedef T output_type; typedef buffer_node base_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef priority_queue_node class_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; //! Constructor - priority_queue_node( graph &g ) : buffer_node(g), mark(0) { + explicit priority_queue_node( graph &g ) : buffer_node(g), mark(0) { tbb::internal::fgt_node( tbb::internal::FLOW_PRIORITY_QUEUE_NODE, &(this->my_graph), static_cast *>(this), static_cast *>(this) ); @@ -2334,15 +2567,14 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif - protected: - /*override*/void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { mark = 0; base_type::reset_node(f); } @@ -2351,127 +2583,80 @@ protected: typedef typename buffer_node::item_type item_type; typedef typename buffer_node::buffer_operation prio_operation; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; - - /* override */ void handle_operations(prio_operation *op_list) { - prio_operation *tmp = op_list /*, *pop_list*/ ; - bool try_forwarding=false; - while (op_list) { - tmp = op_list; - op_list = op_list->next; - switch (tmp->type) { - case buffer_node::reg_succ: this->internal_reg_succ(tmp); try_forwarding = true; break; - case buffer_node::rem_succ: this->internal_rem_succ(tmp); break; - case buffer_node::put_item: internal_push(tmp); try_forwarding = true; break; - case buffer_node::try_fwd_task: internal_forward_task(tmp); break; - case buffer_node::rel_res: internal_release(tmp); try_forwarding = true; break; - case buffer_node::con_res: internal_consume(tmp); try_forwarding = true; break; - case buffer_node::req_item: internal_pop(tmp); break; - case buffer_node::res_item: internal_reserve(tmp); break; -#if TBB_PREVIEW_FLOW_GRAPH_FEATURES - case buffer_node::add_blt_succ: this->internal_add_built_succ(tmp); break; - case buffer_node::del_blt_succ: this->internal_del_built_succ(tmp); break; - case buffer_node::add_blt_pred: this->internal_add_built_pred(tmp); break; - case buffer_node::del_blt_pred: this->internal_del_built_pred(tmp); break; - case buffer_node::blt_succ_cnt: this->internal_succ_cnt(tmp); break; - case buffer_node::blt_pred_cnt: this->internal_pred_cnt(tmp); break; - case buffer_node::blt_succ_cpy: this->internal_copy_succs(tmp); break; - case buffer_node::blt_pred_cpy: this->internal_copy_preds(tmp); break; -#endif - } - } - // process pops! for now, no special pop processing - // concurrent_priority_queue handles pushes first, then pops. - // that is the genesis of this comment - if (markmy_tail) heapify(); - __TBB_ASSERT(mark == this->my_tail, "mark unequal after heapify"); - if (try_forwarding && !this->forwarder_busy) { // could we also test for this->my_tail (queue non-empty)? - if(this->my_graph.is_active()) { - this->forwarder_busy = true; - task *new_task = new(task::allocate_additional_child_of(*(this->my_graph.root_task()))) internal:: - forward_task_bypass - < buffer_node >(*this); - // tmp should point to the last item handled by the aggregator. This is the operation - // the handling thread enqueued. So modifying that record will be okay. - tbb::task *tmp1 = tmp->ltask; - tmp->ltask = combine_tasks(tmp1, new_task); - } - } - } - //! Tries to forward valid items to successors - /* override */ void internal_forward_task(prio_operation *op) { - T i_copy; - task * last_task = NULL; // flagged when a successor accepts - size_type counter = this->my_successors.size(); - - if (this->my_reserved || this->my_tail == 0) { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - return; - } - // Keep trying to send while there exists an accepting successor - while (counter>0 && this->my_tail > 0) { - prio_copy(i_copy); - task * new_task = this->my_successors.try_put_task(i_copy); - if ( new_task ) { - last_task = combine_tasks(last_task, new_task); - prio_pop(); - } - --counter; - } - op->ltask = last_task; - if (last_task && !counter) - __TBB_store_with_release(op->status, SUCCEEDED); - else { - __TBB_store_with_release(op->status, FAILED); - this->forwarder_busy = false; - } + void internal_forward_task(prio_operation *op) __TBB_override { + this->internal_forward_task_impl(op, this); } - /* override */ void internal_push(prio_operation *op) { + void handle_operations(prio_operation *op_list) __TBB_override { + this->handle_operations_impl(op_list, this); + } + + bool internal_push(prio_operation *op) __TBB_override { prio_push(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); + return true; } - /* override */ void internal_pop(prio_operation *op) { + void internal_pop(prio_operation *op) __TBB_override { // if empty or already reserved, don't pop if ( this->my_reserved == true || this->my_tail == 0 ) { - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); return; } - prio_copy(*(op->elem)); - __TBB_store_with_release(op->status, SUCCEEDED); + *(op->elem) = prio(); + __TBB_store_with_release(op->status, internal::SUCCEEDED); prio_pop(); } // pops the highest-priority item, saves copy - /* override */ void internal_reserve(prio_operation *op) { + void internal_reserve(prio_operation *op) __TBB_override { if (this->my_reserved == true || this->my_tail == 0) { - __TBB_store_with_release(op->status, FAILED); + __TBB_store_with_release(op->status, internal::FAILED); return; } this->my_reserved = true; - prio_copy(*(op->elem)); + *(op->elem) = prio(); reserved_item = *(op->elem); - __TBB_store_with_release(op->status, SUCCEEDED); + __TBB_store_with_release(op->status, internal::SUCCEEDED); prio_pop(); } - /* override */ void internal_consume(prio_operation *op) { - __TBB_store_with_release(op->status, SUCCEEDED); + void internal_consume(prio_operation *op) __TBB_override { + __TBB_store_with_release(op->status, internal::SUCCEEDED); this->my_reserved = false; reserved_item = input_type(); } - /* override */ void internal_release(prio_operation *op) { - __TBB_store_with_release(op->status, SUCCEEDED); + void internal_release(prio_operation *op) __TBB_override { + __TBB_store_with_release(op->status, internal::SUCCEEDED); prio_push(reserved_item); this->my_reserved = false; reserved_item = input_type(); } + +private: + template friend class buffer_node; + + void order() { + if (mark < this->my_tail) heapify(); + __TBB_ASSERT(mark == this->my_tail, "mark unequal after heapify"); + } + + bool is_item_valid() { + return this->my_tail > 0; + } + + void try_put_and_add_task(task*& last_task) { + task * new_task = this->my_successors.try_put_task(this->prio()); + if (new_task) { + last_task = combine_tasks(last_task, new_task); + prio_pop(); + } + } + private: Compare compare; size_type mark; @@ -2498,7 +2683,7 @@ private: // and mark. Assumes the array has already been tested for emptiness; no failure. void prio_pop() { if (prio_use_tail()) { - // there are newly pushed elems; last one higher than top + // there are newly pushed elements; last one higher than top // copy the data this->destroy_item(this->my_tail-1); --(this->my_tail); @@ -2518,13 +2703,8 @@ private: __TBB_ASSERT(mark <= this->my_tail, "mark outside bounds after pop"); } - void prio_copy(T &res) { - if (prio_use_tail()) { - res = this->get_my_item(this->my_tail - 1); - } - else { - res = this->get_my_item(0); - } + const T& prio() { + return this->get_my_item(prio_use_tail() ? this->my_tail-1 : 0); } // turn array into heap @@ -2576,19 +2756,18 @@ private: message is dropped. */ template< typename T > class limiter_node : public graph_node, public receiver< T >, public sender< T > { -protected: - using graph_node::my_graph; public: typedef T input_type; typedef T output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; + typedef typename receiver::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::built_predecessors_type built_predecessors_type; typedef typename sender::built_successors_type built_successors_type; typedef typename receiver::predecessor_list_type predecessor_list_type; typedef typename sender::successor_list_type successor_list_type; #endif + //TODO: There is a lack of predefined types for its controlling "decrementer" port. It should be fixed later. private: size_t my_threshold; @@ -2622,7 +2801,7 @@ private: } //SUCCESS - // if we can reserve and can put, we consume the reservation + // if we can reserve and can put, we consume the reservation // we increment the count and decrement the tries if ( (my_predecessors.try_reserve(v)) == true ){ reserved=true; @@ -2709,13 +2888,13 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif //! Replace the current successor with this new successor - /* override */ bool register_successor( receiver &r ) { + bool register_successor( successor_type &r ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); bool was_empty = my_successors.empty(); my_successors.register_successor(r); @@ -2731,45 +2910,45 @@ public: //! Removes a successor from this node /** r.remove_predecessor(*this) is also called. */ - /* override */ bool remove_successor( receiver &r ) { + bool remove_successor( successor_type &r ) __TBB_override { r.remove_predecessor(*this); my_successors.remove_successor(r); return true; } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/ built_successors_type &built_successors() { return my_successors.built_successors(); } - /*override*/ built_predecessors_type &built_predecessors() { return my_predecessors.built_predecessors(); } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } + built_predecessors_type &built_predecessors() __TBB_override { return my_predecessors.built_predecessors(); } - /*override*/void internal_add_built_successor(receiver &src) { + void internal_add_built_successor(successor_type &src) __TBB_override { my_successors.internal_add_built_successor(src); } - /*override*/void internal_delete_built_successor(receiver &src) { + void internal_delete_built_successor(successor_type &src) __TBB_override { my_successors.internal_delete_built_successor(src); } - /*override*/size_t successor_count() { return my_successors.successor_count(); } + size_t successor_count() __TBB_override { return my_successors.successor_count(); } - /*override*/ void copy_successors(successor_list_type &v) { + void copy_successors(successor_list_type &v) __TBB_override { my_successors.copy_successors(v); } - /*override*/void internal_add_built_predecessor(sender &src) { + void internal_add_built_predecessor(predecessor_type &src) __TBB_override { my_predecessors.internal_add_built_predecessor(src); } - /*override*/void internal_delete_built_predecessor(sender &src) { + void internal_delete_built_predecessor(predecessor_type &src) __TBB_override { my_predecessors.internal_delete_built_predecessor(src); } - /*override*/size_t predecessor_count() { return my_predecessors.predecessor_count(); } + size_t predecessor_count() __TBB_override { return my_predecessors.predecessor_count(); } - /*override*/ void copy_predecessors(predecessor_list_type &v) { + void copy_predecessors(predecessor_list_type &v) __TBB_override { my_predecessors.copy_predecessors(v); } - /*override*/void extract() { + void extract() __TBB_override { my_count = 0; my_successors.built_successors().sender_extract(*this); my_predecessors.built_predecessors().receiver_extract(*this); @@ -2778,7 +2957,7 @@ public: #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ //! Adds src to the list of cached predecessors. - /* override */ bool register_predecessor( predecessor_type &src ) { + bool register_predecessor( predecessor_type &src ) __TBB_override { spin_mutex::scoped_lock lock(my_mutex); my_predecessors.add( src ); if ( my_count + my_tries < my_threshold && !my_successors.empty() && this->my_graph.is_active() ) { @@ -2789,7 +2968,7 @@ public: } //! Removes src from the list of cached predecessors. - /* override */ bool remove_predecessor( predecessor_type &src ) { + bool remove_predecessor( predecessor_type &src ) __TBB_override { my_predecessors.remove( src ); return true; } @@ -2800,7 +2979,7 @@ protected: template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; //! Puts an item to this receiver - /* override */ task *try_put_task( const T &t ) { + task *try_put_task( const T &t ) __TBB_override { { spin_mutex::scoped_lock lock(my_mutex); if ( my_count + my_tries >= my_threshold ) @@ -2827,11 +3006,11 @@ protected: return rtask; } - /*override*/void reset_receiver(reset_flags /*f*/) { + void reset_receiver(reset_flags /*f*/) __TBB_override { __TBB_ASSERT(false,NULL); // should never be called } - /*override*/void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { my_count = 0; if(f & rf_clear_edges) { my_predecessors.clear(); @@ -2863,7 +3042,7 @@ private: public: typedef OutputTuple output_type; typedef typename unfolded_type::input_ports_type input_ports_type; - join_node(graph &g) : unfolded_type(g) { + explicit join_node(graph &g) : unfolded_type(g) { tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_RESERVING, &this->my_graph, this->input_ports(), static_cast< sender< output_type > *>(this) ); } @@ -2873,7 +3052,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -2888,7 +3067,7 @@ private: public: typedef OutputTuple output_type; typedef typename unfolded_type::input_ports_type input_ports_type; - join_node(graph &g) : unfolded_type(g) { + explicit join_node(graph &g) : unfolded_type(g) { tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_QUEUEING, &this->my_graph, this->input_ports(), static_cast< sender< output_type > *>(this) ); } @@ -2898,7 +3077,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -2993,7 +3172,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3003,6 +3182,7 @@ public: // indexer node #include "internal/_flow_graph_indexer_impl.h" +// TODO: Implement interface with variadic template or tuple template class indexer_node; @@ -3102,7 +3282,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3127,7 +3307,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3153,7 +3333,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3181,7 +3361,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3209,7 +3389,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3237,7 +3417,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3265,16 +3445,19 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif }; #endif //variadic max 10 -//! Makes an edge between a single predecessor and a single successor +#if __TBB_PREVIEW_ASYNC_MSG +inline void internal_make_edge( internal::untyped_sender &p, internal::untyped_receiver &s ) { +#else template< typename T > -inline void make_edge( sender &p, receiver &s ) { +inline void internal_make_edge( sender &p, receiver &s ) { +#endif #if TBB_PREVIEW_FLOW_GRAPH_FEATURES s.internal_add_built_predecessor(p); p.internal_add_built_successor(s); @@ -3283,6 +3466,32 @@ inline void make_edge( sender &p, receiver &s ) { tbb::internal::fgt_make_edge( &p, &s ); } +//! Makes an edge between a single predecessor and a single successor +template< typename T > +inline void make_edge( sender &p, receiver &s ) { + internal_make_edge( p, s ); +} + +#if __TBB_PREVIEW_ASYNC_MSG +template< typename TS, typename TR, + typename = typename tbb::internal::enable_if::value + || tbb::internal::is_same_type::value>::type> +inline void make_edge( TS &p, TR &s ) { + internal_make_edge( p, s ); +} + +template< typename T > +inline void make_edge( sender &p, receiver &s ) { + internal_make_edge( p, s ); +} + +template< typename T > +inline void make_edge( sender &p, receiver &s ) { + internal_make_edge( p, s ); +} + +#endif // __TBB_PREVIEW_ASYNC_MSG + #if __TBB_FLOW_GRAPH_CPP11_FEATURES //Makes an edge from port 0 of a multi-output predecessor to port 0 of a multi-input successor. template< typename T, typename V, @@ -3306,9 +3515,12 @@ inline void make_edge( sender& output, V& input) { } #endif -//! Removes an edge between a single predecessor and a single successor +#if __TBB_PREVIEW_ASYNC_MSG +inline void internal_remove_edge( internal::untyped_sender &p, internal::untyped_receiver &s ) { +#else template< typename T > -inline void remove_edge( sender &p, receiver &s ) { +inline void internal_remove_edge( sender &p, receiver &s ) { +#endif p.remove_successor( s ); #if TBB_PREVIEW_FLOW_GRAPH_FEATURES // TODO: should we try to remove p from the predecessor list of s, in case the edge is reversed? @@ -3318,6 +3530,31 @@ inline void remove_edge( sender &p, receiver &s ) { tbb::internal::fgt_remove_edge( &p, &s ); } +//! Removes an edge between a single predecessor and a single successor +template< typename T > +inline void remove_edge( sender &p, receiver &s ) { + internal_remove_edge( p, s ); +} + +#if __TBB_PREVIEW_ASYNC_MSG +template< typename TS, typename TR, + typename = typename tbb::internal::enable_if::value + || tbb::internal::is_same_type::value>::type> +inline void remove_edge( TS &p, TR &s ) { + internal_remove_edge( p, s ); +} + +template< typename T > +inline void remove_edge( sender &p, receiver &s ) { + internal_remove_edge( p, s ); +} + +template< typename T > +inline void remove_edge( sender &p, receiver &s ) { + internal_remove_edge( p, s ); +} +#endif // __TBB_PREVIEW_ASYNC_MSG + #if __TBB_FLOW_GRAPH_CPP11_FEATURES //Removes an edge between port 0 of a multi-output predecessor and port 0 of a multi-input successor. template< typename T, typename V, @@ -3372,7 +3609,7 @@ Body copy_body( Node &n ) { template< typename InputTuple, typename OutputTuple > class composite_node; template< typename... InputTypes, typename... OutputTypes> -class composite_node , tbb::flow::tuple > : public graph_node, tbb::internal::no_copy { +class composite_node , tbb::flow::tuple > : public graph_node{ public: typedef tbb::flow::tuple< receiver&... > input_ports_type; @@ -3389,7 +3626,7 @@ private: static const size_t NUM_OUTPUTS = sizeof...(OutputTypes); protected: - /*override*/void reset_node(reset_flags) {} + void reset_node(reset_flags) __TBB_override {} public: #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -3426,7 +3663,7 @@ public: #endif #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_multiinput_multioutput_node_desc( this, name ); } #endif @@ -3447,7 +3684,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract() { + void extract() __TBB_override { __TBB_ASSERT(false, "Current composite_node implementation does not support extract"); } #endif @@ -3455,7 +3692,7 @@ public: //composite_node with only input ports template< typename... InputTypes> -class composite_node , tbb::flow::tuple<> > : public graph_node, tbb::internal::no_copy { +class composite_node , tbb::flow::tuple<> > : public graph_node { public: typedef tbb::flow::tuple< receiver&... > input_ports_type; @@ -3467,7 +3704,7 @@ private: static const size_t NUM_INPUTS = sizeof...(InputTypes); protected: - /*override*/void reset_node(reset_flags) {} + void reset_node(reset_flags) __TBB_override {} public: #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -3502,7 +3739,7 @@ public: #endif #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_multiinput_multioutput_node_desc( this, name ); } #endif @@ -3517,7 +3754,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract() { + void extract() __TBB_override { __TBB_ASSERT(false, "Current composite_node implementation does not support extract"); } #endif @@ -3526,7 +3763,7 @@ public: //composite_nodes with only output_ports template -class composite_node , tbb::flow::tuple > : public graph_node, tbb::internal::no_copy { +class composite_node , tbb::flow::tuple > : public graph_node { public: typedef tbb::flow::tuple< sender&... > output_ports_type; @@ -3538,7 +3775,7 @@ private: static const size_t NUM_OUTPUTS = sizeof...(OutputTypes); protected: - /*override*/void reset_node(reset_flags) {} + void reset_node(reset_flags) __TBB_override {} public: #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -3573,7 +3810,7 @@ public: #endif #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_multiinput_multioutput_node_desc( this, name ); } #endif @@ -3588,7 +3825,7 @@ public: } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract() { + void extract() __TBB_override { __TBB_ASSERT(false, "Current composite_node implementation does not support extract"); } #endif @@ -3597,68 +3834,59 @@ public: #endif // __TBB_FLOW_GRAPH_CPP11_FEATURES -#if __TBB_PREVIEW_ASYNC_NODE namespace internal { -//! Pure virtual template class that defines interface for async communication -template < typename Output > -class async_gateway { + +template +class async_body_base: tbb::internal::no_assign { public: - typedef Output output_type; + typedef Gateway gateway_type; - //! Submit signal from an asynchronous activity to FG - virtual bool async_try_put( const output_type &i ) = 0; + async_body_base(gateway_type *gateway): my_gateway(gateway) { } + void set_gateway(gateway_type *gateway) { + my_gateway = gateway; + } - //! Increment reference count of graph to prevent premature return from wait_for_all - virtual void async_reserve() = 0; - - //! Decrement reference count of graph to allow return from wait_for_all - virtual void async_commit() = 0; - - virtual ~async_gateway() {} +protected: + gateway_type *my_gateway; }; -template -class async_body { +template +class async_body: public async_body_base { public: - typedef AsyncGateway async_gateway_type; + typedef async_body_base base_type; + typedef Gateway gateway_type; - async_body(const Body &body, async_gateway_type *gateway) : my_body(body), my_async_gateway(gateway) { } - - async_body(const async_body &other) : my_body(other.my_body), my_async_gateway(other.my_async_gateway) { } + async_body(const Body &body, gateway_type *gateway) + : base_type(gateway), my_body(body) { } void operator()( const Input &v, Ports & ) { - my_body(v, *my_async_gateway); + my_body(v, *this->my_gateway); } Body get_body() { return my_body; } - void set_async_gateway(async_gateway_type *gateway) { - my_async_gateway = gateway; - } - private: Body my_body; - async_gateway_type *my_async_gateway; }; } //! Implements async node template < typename Input, typename Output, typename Policy = queueing, typename Allocator=cache_aligned_allocator > -class async_node : public multifunction_node< Input, tuple< Output >, Policy, Allocator >, public internal::async_gateway, public sender< Output > { -protected: +class async_node : public multifunction_node< Input, tuple< Output >, Policy, Allocator >, public sender< Output > { typedef multifunction_node< Input, tuple< Output >, Policy, Allocator > base_type; + typedef typename internal::multifunction_input mfn_input_type; public: typedef Input input_type; typedef Output output_type; - typedef sender< input_type > predecessor_type; - typedef receiver< output_type > successor_type; - typedef internal::async_gateway< output_type > async_gateway_type; - -protected: - typedef typename internal::multifunction_input mfn_input_type; + typedef receiver receiver_type; + typedef typename receiver_type::predecessor_type predecessor_type; + typedef typename sender::successor_type successor_type; + typedef receiver_gateway gateway_type; + typedef internal::async_body_base async_body_base_type; +private: struct try_put_functor { typedef internal::multifunction_output output_port_type; output_port_type *port; @@ -3670,55 +3898,65 @@ protected: } }; + class receiver_gateway_impl: public receiver_gateway { + public: + receiver_gateway_impl(async_node* node): my_node(node) {} + void reserve_wait() __TBB_override { + my_node->my_graph.reserve_wait(); + tbb::internal::fgt_async_reserve(static_cast(my_node), &my_node->my_graph); + } + + void release_wait() __TBB_override { + my_node->my_graph.release_wait(); + tbb::internal::fgt_async_commit(static_cast(my_node), &my_node->my_graph); + } + + //! Implements gateway_type::try_put for an external activity to submit a message to FG + bool try_put(const Output &i) __TBB_override { + return my_node->try_put_impl(i); + } + + private: + async_node* my_node; + } my_gateway; + + //The substitute of 'this' for member construction, to prevent compiler warnings + async_node* self() { return this; } + + //! Implements gateway_type::try_put for an external activity to submit a message to FG + bool try_put_impl(const Output &i) { + internal::multifunction_output &port_0 = internal::output_port<0>(*this); + tbb::internal::fgt_async_try_put_begin(this, &port_0); + __TBB_ASSERT(this->my_graph.my_task_arena && this->my_graph.my_task_arena->is_active(), NULL); + try_put_functor tpf(port_0, i); + this->my_graph.my_task_arena->execute(tpf); + tbb::internal::fgt_async_try_put_end(this, &port_0); + return tpf.result; + } + public: template async_node( graph &g, size_t concurrency, Body body ) : - base_type( g, concurrency, internal::async_body(body, this) ) { + base_type( g, concurrency, internal::async_body(body, &my_gateway) ), my_gateway(self()) { tbb::internal::fgt_multioutput_node<1>( tbb::internal::FLOW_ASYNC_NODE, - &this->graph_node::my_graph, + &this->my_graph, static_cast *>(this), this->output_ports() ); } - async_node( const async_node &other ) : base_type(other) { - typedef internal::multifunction_body mfn_body_type; - mfn_body_type &body_ref = *this->my_body; - body_ref.set_gateway(static_cast(this)); - mfn_body_type &init_body_ref = *this->my_init_body; - init_body_ref.set_gateway(static_cast(this)); - tbb::internal::fgt_multioutput_node<1>( tbb::internal::FLOW_ASYNC_NODE, &this->graph_node::my_graph, static_cast *>(this), this->output_ports() ); + async_node( const async_node &other ) : base_type(other), sender(), my_gateway(self()) { + static_cast(this->my_body->get_body_ptr())->set_gateway(&my_gateway); + static_cast(this->my_init_body->get_body_ptr())->set_gateway(&my_gateway); + + tbb::internal::fgt_multioutput_node<1>( tbb::internal::FLOW_ASYNC_NODE, &this->my_graph, static_cast *>(this), this->output_ports() ); } - virtual ~async_node() {} - - /* override */ async_gateway_type& async_gateway() { - return static_cast< async_gateway_type& >(*this); - } - - //! Implements async_gateway::async_try_put for an external activity to submit a message to FG - /*override*/ bool async_try_put(const output_type &i ) { - internal::multifunction_output &port_0 = internal::output_port<0>(*this); - graph &g = this->graph_node::my_graph; - tbb::internal::fgt_async_try_put_begin(static_cast *>(this), &port_0); - __TBB_ASSERT(g.my_task_arena && g.my_task_arena->is_active(), NULL); - try_put_functor tpf(port_0, i); - g.my_task_arena->execute(tpf); - tbb::internal::fgt_async_try_put_end(static_cast *>(this), &port_0); - return tpf.result; - } - - /*override*/ void async_reserve() { - this->graph_node::my_graph.increment_wait_count(); - tbb::internal::fgt_async_reserve(static_cast *>(this), &this->graph_node::my_graph); - } - - /*override*/ void async_commit() { - this->graph_node::my_graph.decrement_wait_count(); - tbb::internal::fgt_async_commit(static_cast *>(this), &this->graph_node::my_graph); + gateway_type& gateway() { + return my_gateway; } #if TBB_PREVIEW_FLOW_GRAPH_TRACE - /* override */ void set_name( const char *name ) { + void set_name( const char *name ) __TBB_override { tbb::internal::fgt_node_desc( this, name ); } #endif @@ -3726,21 +3964,21 @@ public: // Define sender< Output > //! Add a new successor to this node - /* override */ bool register_successor( successor_type &r ) { + bool register_successor( successor_type &r ) __TBB_override { return internal::output_port<0>(*this).register_successor(r); } //! Removes a successor from this node - /* override */ bool remove_successor( successor_type &r ) { + bool remove_successor( successor_type &r ) __TBB_override { return internal::output_port<0>(*this).remove_successor(r); } template Body copy_function_object() { typedef internal::multifunction_body mfn_body_type; - typedef internal::async_body async_body_type; + typedef internal::async_body async_body_type; mfn_body_type &body_ref = *this->my_body; - async_body_type ab = dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); + async_body_type ab = *static_cast(dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body_ptr()); return ab.get_body(); } @@ -3748,79 +3986,86 @@ public: //! interface to record edges for traversal & deletion typedef typename internal::edge_container built_successors_type; typedef typename built_successors_type::edge_list_type successor_list_type; - /* override */ built_successors_type &built_successors() { + built_successors_type &built_successors() __TBB_override { return internal::output_port<0>(*this).built_successors(); } - /* override */ void internal_add_built_successor( successor_type &r ) { + void internal_add_built_successor( successor_type &r ) __TBB_override { internal::output_port<0>(*this).internal_add_built_successor(r); } - /* override */ void internal_delete_built_successor( successor_type &r ) { + void internal_delete_built_successor( successor_type &r ) __TBB_override { internal::output_port<0>(*this).internal_delete_built_successor(r); } - /* override */ void copy_successors( successor_list_type &l ) { + void copy_successors( successor_list_type &l ) __TBB_override { internal::output_port<0>(*this).copy_successors(l); } - /* override */ size_t successor_count() { + size_t successor_count() __TBB_override { return internal::output_port<0>(*this).successor_count(); } #endif protected: - /*override*/ void reset_node( reset_flags f) { + void reset_node( reset_flags f) __TBB_override { base_type::reset_node(f); } - }; -#endif // __TBB_PREVIEW_ASYNC_NODE +#if __TBB_PREVIEW_STREAMING_NODE +#include "internal/_flow_graph_streaming_node.h" +#endif // __TBB_PREVIEW_STREAMING_NODE -} // interface8 +} // interface9 - using interface8::reset_flags; - using interface8::rf_reset_protocol; - using interface8::rf_reset_bodies; - using interface8::rf_clear_edges; + using interface9::reset_flags; + using interface9::rf_reset_protocol; + using interface9::rf_reset_bodies; + using interface9::rf_clear_edges; - using interface8::graph; - using interface8::graph_node; - using interface8::continue_msg; + using interface9::graph; + using interface9::graph_node; + using interface9::continue_msg; - using interface8::source_node; - using interface8::function_node; - using interface8::multifunction_node; - using interface8::split_node; - using interface8::internal::output_port; - using interface8::indexer_node; - using interface8::internal::tagged_msg; - using interface8::internal::cast_to; - using interface8::internal::is_a; - using interface8::continue_node; - using interface8::overwrite_node; - using interface8::write_once_node; - using interface8::broadcast_node; - using interface8::buffer_node; - using interface8::queue_node; - using interface8::sequencer_node; - using interface8::priority_queue_node; - using interface8::limiter_node; - using namespace interface8::internal::graph_policy_namespace; - using interface8::join_node; - using interface8::input_port; - using interface8::copy_body; - using interface8::make_edge; - using interface8::remove_edge; - using interface8::internal::tag_value; + using interface9::source_node; + using interface9::function_node; + using interface9::multifunction_node; + using interface9::split_node; + using interface9::internal::output_port; + using interface9::indexer_node; + using interface9::internal::tagged_msg; + using interface9::internal::cast_to; + using interface9::internal::is_a; + using interface9::continue_node; + using interface9::overwrite_node; + using interface9::write_once_node; + using interface9::broadcast_node; + using interface9::buffer_node; + using interface9::queue_node; + using interface9::sequencer_node; + using interface9::priority_queue_node; + using interface9::limiter_node; + using namespace interface9::internal::graph_policy_namespace; + using interface9::join_node; + using interface9::input_port; + using interface9::copy_body; + using interface9::make_edge; + using interface9::remove_edge; + using interface9::internal::tag_value; #if __TBB_FLOW_GRAPH_CPP11_FEATURES - using interface8::composite_node; + using interface9::composite_node; #endif -#if __TBB_PREVIEW_ASYNC_NODE - using interface8::async_node; + using interface9::async_node; +#if __TBB_PREVIEW_ASYNC_MSG + using interface9::async_msg; #endif +#if __TBB_PREVIEW_STREAMING_NODE + using interface9::port_ref; + using interface9::streaming_node; +#endif // __TBB_PREVIEW_STREAMING_NODE + } // flow } // tbb diff --git a/lib/3rdParty/tbb/include/tbb/flow_graph_abstractions.h b/lib/3rdParty/tbb/include/tbb/flow_graph_abstractions.h new file mode 100644 index 0000000..f6eb3fb --- /dev/null +++ b/lib/3rdParty/tbb/include/tbb/flow_graph_abstractions.h @@ -0,0 +1,57 @@ +/* + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +*/ + +#ifndef __TBB_flow_graph_abstractions_H +#define __TBB_flow_graph_abstractions_H + +namespace tbb { +namespace flow { +namespace interface9 { + +//! Pure virtual template classes that define interfaces for async communication +class graph_proxy { +public: + //! Inform a graph that messages may come from outside, to prevent premature graph completion + virtual void reserve_wait() = 0; + + //! Inform a graph that a previous call to reserve_wait is no longer in effect + virtual void release_wait() = 0; + + virtual ~graph_proxy() {} +}; + +template +class receiver_gateway : public graph_proxy { +public: + //! Type of inputing data into FG. + typedef Input input_type; + + //! Submit signal from an asynchronous activity to FG. + virtual bool try_put(const input_type&) = 0; +}; + +} //interface9 + +using interface9::graph_proxy; +using interface9::receiver_gateway; + +} //flow +} //tbb +#endif diff --git a/lib/3rdParty/tbb/include/tbb/flow_graph_opencl_node.h b/lib/3rdParty/tbb/include/tbb/flow_graph_opencl_node.h index c82d26f..0a98a77 100644 --- a/lib/3rdParty/tbb/include/tbb/flow_graph_opencl_node.h +++ b/lib/3rdParty/tbb/include/tbb/flow_graph_opencl_node.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_flow_graph_opencl_node_H @@ -32,9 +32,7 @@ #include #include #include -#include #include -#include #ifdef __APPLE__ #include @@ -45,7 +43,7 @@ namespace tbb { namespace flow { -namespace interface8 { +namespace interface9 { class opencl_foundation; class opencl_device_list; @@ -53,6 +51,9 @@ class opencl_device_list; template class opencl_buffer_impl; +template +class opencl_program; + class default_opencl_factory; class opencl_graph : public graph { @@ -80,289 +81,16 @@ protected: friend class opencl_factory; }; +template +class opencl_factory; + template class dependency_msg; -template< typename T, typename Factory > -class proxy_dependency_receiver; - -template< typename T, typename Factory > -class receiver> { -public: - //! The predecessor type for this node - typedef sender> predecessor_type; - typedef proxy_dependency_receiver proxy; - - receiver() : my_ordinary_receiver( *this ) {} - - //! Put an item to the receiver - bool try_put( const T& t ) { - return my_ordinary_receiver.try_put(t); - } - - //! Put an item to the receiver - virtual task *try_put_task( const dependency_msg& ) = 0; - - //! Add a predecessor to the node - virtual bool register_predecessor( predecessor_type & ) { return false; } - - //! Remove a predecessor from the node - virtual bool remove_predecessor( predecessor_type & ) { return false; } - -protected: - //! put receiver back in initial state - virtual void reset_receiver( reset_flags f = rf_reset_protocol ) = 0; - virtual bool is_continue_receiver() { return false; } -private: - class ordinary_receiver : public receiver < T >, tbb::internal::no_assign { - //! The predecessor type for this node - typedef sender predecessor_type; - typedef sender> dependency_predecessor_type; - public: - ordinary_receiver(receiver>& owner) : my_owner(owner) {} - - //! Put an item to the receiver - /* override */ task *try_put_task( const T& t ) { - return my_owner.try_put_task( dependency_msg( t ) ); - } - - //! Add a predecessor to the node - /* override */ bool register_predecessor( predecessor_type &p ) { - tbb::spin_mutex::scoped_lock lock( my_predecessor_map_mutex ); - typename predecessor_map_type::iterator it = my_predecessor_map.emplace( std::piecewise_construct_t(), std::make_tuple( &p ), std::tie( p ) ); - if ( !my_owner.register_predecessor( it->second ) ) { - my_predecessor_map.erase( it ); - return false; - } - return true; - } - - //! Remove a predecessor from the node - /* override */ bool remove_predecessor( predecessor_type &p ) { - tbb::spin_mutex::scoped_lock lock( my_predecessor_map_mutex ); - typename predecessor_map_type::iterator it = my_predecessor_map.find( &p ); - __TBB_ASSERT( it != my_predecessor_map.end(), "Failed to find the predecessor" ); - if ( !my_owner.remove_predecessor( it->second ) ) - return false; - my_predecessor_map.erase( it ); - return true; - } - - protected: - //! put receiver back in initial state - /* override */ void reset_receiver( reset_flags f = rf_reset_protocol ) { - my_owner.reset_receiver( f ); - }; - /* override */ bool is_continue_receiver() { - return my_owner.is_continue_receiver(); - } - - private: - receiver>& my_owner; - - typedef std::multimap predecessor_map_type; - predecessor_map_type my_predecessor_map; - tbb::spin_mutex my_predecessor_map_mutex; - }; - ordinary_receiver my_ordinary_receiver; -public: - ordinary_receiver& ordinary_receiver() { return my_ordinary_receiver; } -}; - -template< typename T, typename Factory > -class proxy_dependency_sender; - -template< typename T, typename Factory > -class proxy_dependency_receiver : public receiver < dependency_msg >, tbb::internal::no_assign { -public: - typedef sender> predecessor_type; - - proxy_dependency_receiver( receiver& r ) : my_r( r ) {} - - //! Put an item to the receiver - /* override */ task *try_put_task( const dependency_msg &d ) { - receive_if_memory_object( d ); - receiver *r = &my_r; - d.register_callback( [r]( const T& t ) { - r->try_put( t ); - } ); - d.clear_event(); - return SUCCESSFULLY_ENQUEUED; - } - - //! Add a predecessor to the node - /* override */ bool register_predecessor( predecessor_type &s ) { - return my_r.register_predecessor( s.ordinary_sender() ); - } - //! Remove a predecessor from the node - /* override */ bool remove_predecessor( predecessor_type &s ) { - return my_r.remove_predecessor( s.ordinary_sender() ); - } -protected: - //! put receiver back in initial state - /* override */ void reset_receiver( reset_flags f = rf_reset_protocol ) { - my_r.reset_receiver( f ); - }; - - /* override */ bool is_continue_receiver() { - return my_r.is_continue_receiver(); - } -private: - receiver &my_r; -}; - -template< typename T, typename Factory > -class sender> { -public: - sender() : my_ordinary_sender( *this ) {} - - //! The successor type for this sender - typedef receiver> successor_type; - typedef proxy_dependency_sender proxy; - - //! Add a new successor to this node - virtual bool register_successor( successor_type &r ) = 0; - - //! Removes a successor from this node - virtual bool remove_successor( successor_type &r ) = 0; - - //! Request an item from the sender - virtual bool try_get( dependency_msg & ) { return false; } - - //! Reserves an item in the sender - virtual bool try_reserve( dependency_msg & ) { return false; } -private: - class ordinary_sender : public sender < T >, tbb::internal::no_assign { - //! The successor type for this sender - typedef receiver successor_type; - typedef receiver> dependency_successor_type; - public: - ordinary_sender(sender>& owner) : my_owner(owner) {} - - //! Add a new successor to this node - /* override */ bool register_successor( successor_type &r ) { - tbb::spin_mutex::scoped_lock lock( my_successor_map_mutex ); - typename successor_map_type::iterator it = my_successor_map.emplace( std::piecewise_construct_t(), std::make_tuple( &r ), std::tie( r ) ); - if ( !my_owner.register_successor( it->second ) ) { - my_successor_map.erase( it ); - return false; - } - return true; - } - - //! Removes a successor from this node - /* override */ bool remove_successor( successor_type &r ) { - tbb::spin_mutex::scoped_lock lock( my_successor_map_mutex ); - typename successor_map_type::iterator it = my_successor_map.find( &r ); - __TBB_ASSERT( it != my_successor_map.end(), "The predecessor has already been registered" ); - if ( !my_owner.remove_successor( it->second ) ) - return false; - my_successor_map.erase( it ); - return true; - } - - //! Request an item from the sender - /* override */ bool try_get( T &t ) { - dependency_msg d; - if ( my_owner.try_get( d ) ) { - t = d.data(); - return true; - } - return false; - } - - /* override */ bool try_reserve( T &t ) { - dependency_msg d; - if ( my_owner.try_reserve( d ) ) { - t = d.data(); - return true; - } - return false; - } - - bool has_host_successors() { - tbb::spin_mutex::scoped_lock lock( my_successor_map_mutex ); - return !my_successor_map.empty(); - } - private: - sender>& my_owner; - - typedef std::multimap successor_map_type; - successor_map_type my_successor_map; - tbb::spin_mutex my_successor_map_mutex; - }; - ordinary_sender my_ordinary_sender; -public: - ordinary_sender& ordinary_sender() { return my_ordinary_sender; } - - bool has_host_successors() { - return my_ordinary_sender.has_host_successors(); - } -}; - -template< typename T, typename Factory > -class proxy_dependency_sender : public sender < dependency_msg >, tbb::internal::no_assign { -public: - typedef receiver> successor_type; - - proxy_dependency_sender( sender& s ) : my_s( s ) {} - - //! Add a new successor to this node - /* override */ bool register_successor( successor_type &r ) { - return my_s.register_successor( r.ordinary_receiver() ); - } - - //! Removes a successor from this node - /* override */ bool remove_successor( successor_type &r ) { - return my_s.remove_successor( r.ordinary_receiver() ); - } - - //! Request an item from the sender - /* override */ bool try_get( dependency_msg &d ) { - return my_s.try_get( d.data() ); - } - - //! Reserves an item in the sender - /* override */ bool try_reserve( dependency_msg &d ) { - return my_s.try_reserve( d.data() ); - } - - //! Releases the reserved item - /* override */ bool try_release() { - return my_s.try_release(); - } - - //! Consumes the reserved item - /* override */ bool try_consume() { - return my_s.try_consume(); - } -private: - sender &my_s; -}; - -template -inline void make_edge( sender &s, receiver> &r ) { - make_edge( s, r.ordinary_receiver() ); -} - -template -inline void make_edge( sender> &s, receiver &r ) { - make_edge( s.ordinary_sender(), r ); -} - -template -inline void remove_edge( sender &s, receiver> &r ) { - remove_edge( s, r.ordinary_receiver() ); -} - -template -inline void remove_edge( sender> &s, receiver &r ) { - remove_edge( s.ordinary_sender(), r ); -} inline void enforce_cl_retcode( cl_int err, std::string msg ) { if ( err != CL_SUCCESS ) { - std::cerr << msg << std::endl; + std::cerr << msg << "; error code: " << err << std::endl; throw msg; } } @@ -568,6 +296,7 @@ public: void add( opencl_device d ) { my_container.push_back( d ); } size_type size() const { return my_container.size(); } + bool empty() const { return my_container.empty(); } iterator begin() { return my_container.begin(); } iterator end() { return my_container.end(); } const_iterator begin() const { return my_container.begin(); } @@ -580,7 +309,7 @@ private: class callback_base : tbb::internal::no_copy { public: - virtual void call() const = 0; + virtual void call() = 0; virtual ~callback_base() {} }; @@ -598,22 +327,33 @@ public: // Release the reference to the graph. my_graph.decrement_wait_count(); } - /* override */ void call() const { + void call() __TBB_override { my_callback( my_data ); } }; template -class dependency_msg { +class dependency_msg : public async_msg { public: typedef T value_type; - dependency_msg() = default; - explicit dependency_msg( const T& data ) : my_data( data ) {} - dependency_msg( opencl_graph &g, const T& data ) : my_data( data ), my_graph( &g ) {} - dependency_msg( const T& data, cl_event event ) : my_data( data ), my_event( event ), my_is_event( true ) { + dependency_msg() : my_callback_flag_ptr( std::make_shared< tbb::atomic>() ) { + my_callback_flag_ptr->store(false); + } + + explicit dependency_msg( const T& data ) : my_data(data), my_callback_flag_ptr( std::make_shared>() ) { + my_callback_flag_ptr->store(false); + } + + dependency_msg( opencl_graph &g, const T& data ) : my_data(data), my_graph(&g), my_callback_flag_ptr( std::make_shared>() ) { + my_callback_flag_ptr->store(false); + } + + dependency_msg( const T& data, cl_event event ) : my_data(data), my_event(event), my_is_event(true), my_callback_flag_ptr( std::make_shared>() ) { + my_callback_flag_ptr->store(false); enforce_cl_retcode( clRetainEvent( my_event ), "Failed to retain an event" ); } + T& data( bool wait = true ) { if ( my_is_event && wait ) { enforce_cl_retcode( clWaitForEvents( 1, &my_event ), "Failed to wait for an event" ); @@ -632,22 +372,38 @@ public: return my_data; } - dependency_msg( const dependency_msg &dmsg ) : my_data( dmsg.my_data ), my_event( dmsg.my_event ), my_is_event( dmsg.my_is_event ), my_graph( dmsg.my_graph ) { + dependency_msg( const dependency_msg &dmsg ) : async_msg(dmsg), + my_data(dmsg.my_data), my_event(dmsg.my_event), my_is_event( dmsg.my_is_event ), my_graph( dmsg.my_graph ), + my_callback_flag_ptr(dmsg.my_callback_flag_ptr) + { if ( my_is_event ) enforce_cl_retcode( clRetainEvent( my_event ), "Failed to retain an event" ); } - dependency_msg( dependency_msg &&dmsg ) : my_data( std::move(dmsg.my_data) ), my_event( dmsg.my_event ), my_is_event( dmsg.my_is_event ), my_graph( dmsg.my_graph ) { + dependency_msg( dependency_msg &&dmsg ) : async_msg(std::move(dmsg)), + my_data(std::move(dmsg.my_data)), my_event(dmsg.my_event), my_is_event(dmsg.my_is_event), my_graph(dmsg.my_graph), + my_callback_flag_ptr( std::move(dmsg.my_callback_flag_ptr) ) + { dmsg.my_is_event = false; } dependency_msg& operator=(const dependency_msg &dmsg) { + async_msg::operator =(dmsg); + + // Release original event + if ( my_is_event ) + enforce_cl_retcode( clReleaseEvent( my_event ), "Failed to retain an event" ); + my_data = dmsg.my_data; my_event = dmsg.my_event; my_is_event = dmsg.my_is_event; my_graph = dmsg.my_graph; + + // Retain copied event if ( my_is_event ) enforce_cl_retcode( clRetainEvent( my_event ), "Failed to retain an event" ); + + my_callback_flag_ptr = dmsg.my_callback_flag_ptr; return *this; } @@ -691,6 +447,25 @@ public: operator T&() { return data(); } operator const T&() const { return data(); } +protected: + // Overridden in this derived class to inform that + // async calculation chain is over + void finalize() const __TBB_override { + receive_if_memory_object(*this); + if (! my_callback_flag_ptr->fetch_and_store(true)) { + dependency_msg a(*this); + if (my_is_event) { + register_callback([a](const T& t) mutable { + a.set(t); + }); + } + else { + a.set(my_data); + } + } + clear_event(); + } + private: static void CL_CALLBACK register_callback_func( cl_event, cl_int event_command_exec_status, void *data ) { tbb::internal::suppress_unused_warning( event_command_exec_status ); @@ -705,6 +480,8 @@ private: mutable cl_event my_event; mutable bool my_is_event = false; graph *my_graph = NULL; + + std::shared_ptr< tbb::atomic > my_callback_flag_ptr; }; template @@ -779,7 +556,7 @@ public: return my_size; } - /* override */ void map_memory( opencl_device device, dependency_msg &dmsg ) { + void map_memory( opencl_device device, dependency_msg &dmsg ) __TBB_override { this->my_factory->enque_map_buffer( device, *this, dmsg ); } @@ -887,14 +664,152 @@ opencl_subbuffer opencl_buffer::subbuffer( size_t index, } +#define is_typedef(type) \ + template \ + struct is_##type { \ + template \ + static std::true_type check( typename C::type* ); \ + template \ + static std::false_type check( ... ); \ + \ + static const bool value = decltype(check(0))::value; \ + } + +is_typedef( native_object_type ); +is_typedef( memory_object_type ); + +template +typename std::enable_if::value, typename T::native_object_type>::type get_native_object( const T &t ) { + return t.native_object(); +} + +template +typename std::enable_if::value, T>::type get_native_object( T t ) { + return t; +} + +// send_if_memory_object checks if the T type has memory_object_type and call the send method for the object. +template +typename std::enable_if::value>::type send_if_memory_object( opencl_device device, dependency_msg &dmsg ) { + const T &t = dmsg.data( false ); + typedef typename T::memory_object_type mem_obj_t; + mem_obj_t mem_obj = t.memory_object(); + dependency_msg d( mem_obj ); + if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() ); + mem_obj.send( device, d ); + if ( d.get_event() ) dmsg.set_event( *d.get_event() ); +} + +template +typename std::enable_if::value>::type send_if_memory_object( opencl_device device, T &t ) { + typedef typename T::memory_object_type mem_obj_t; + mem_obj_t mem_obj = t.memory_object(); + dependency_msg dmsg( mem_obj ); + mem_obj.send( device, dmsg ); +} + +template +typename std::enable_if::value>::type send_if_memory_object( opencl_device, T& ) {}; + +// receive_if_memory_object checks if the T type has memory_object_type and call the receive method for the object. +template +typename std::enable_if::value>::type receive_if_memory_object( const dependency_msg &dmsg ) { + const T &t = dmsg.data( false ); + typedef typename T::memory_object_type mem_obj_t; + mem_obj_t mem_obj = t.memory_object(); + dependency_msg d( mem_obj ); + if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() ); + mem_obj.receive( d ); + if ( d.get_event() ) dmsg.set_event( *d.get_event() ); +} + +template +typename std::enable_if::value>::type receive_if_memory_object( const T& ) {} + +class opencl_range { +public: + typedef size_t range_index_type; + typedef std::array nd_range_type; + + template , typename L = std::initializer_list, + typename = typename std::enable_if::type, opencl_range>::value>::type> + opencl_range(G&& global_work = std::initializer_list({ 0 }), L&& local_work = std::initializer_list({ 0, 0, 0 })) { + auto g_it = global_work.begin(); + auto l_it = local_work.begin(); + my_global_work_size = { size_t(-1), size_t(-1), size_t(-1) }; + // my_local_work_size is still uninitialized + for (int s = 0; s < 3 && g_it != global_work.end(); ++g_it, ++l_it, ++s) { + __TBB_ASSERT(l_it != local_work.end(), "global_work & local_work must have same size"); + my_global_work_size[s] = *g_it; + my_local_work_size[s] = *l_it; + } + } + + const nd_range_type& global_range() const { return my_global_work_size; } + const nd_range_type& local_range() const { return my_local_work_size; } + +private: + nd_range_type my_global_work_size; + nd_range_type my_local_work_size; +}; + template class opencl_factory { public: + template using async_msg_type = dependency_msg>; + typedef opencl_device device_type; + + class kernel : tbb::internal::no_assign { + public: + kernel( const kernel& k ) : my_factory( k.my_factory ) { + // Clone my_cl_kernel via opencl_program + size_t ret_size = 0; + + std::vector kernel_name; + for ( size_t curr_size = 32;; curr_size <<= 1 ) { + kernel_name.resize( curr_size <<= 1 ); + enforce_cl_retcode( clGetKernelInfo( k.my_cl_kernel, CL_KERNEL_FUNCTION_NAME, curr_size, kernel_name.data(), &ret_size ), "Failed to get kernel info" ); + if ( ret_size < curr_size ) break; + } + + cl_program program; + enforce_cl_retcode( clGetKernelInfo( k.my_cl_kernel, CL_KERNEL_PROGRAM, sizeof(program), &program, &ret_size ), "Failed to get kernel info" ); + __TBB_ASSERT( ret_size == sizeof(program), NULL ); + + my_cl_kernel = opencl_program< factory_type >( my_factory, program ).get_cl_kernel( kernel_name.data() ); + } + + ~kernel() { + enforce_cl_retcode( clReleaseKernel( my_cl_kernel ), "Failed to release a kernel" ); + } + + private: + typedef opencl_factory factory_type; + + kernel( const cl_kernel& k, factory_type& f ) : my_cl_kernel( k ), my_factory( f ) {} + + // Data + cl_kernel my_cl_kernel; + factory_type& my_factory; + + template + friend class opencl_factory; + + template + friend class opencl_program; + }; + + typedef kernel kernel_type; + + // 'range_type' enables kernel_executor with range support + // it affects expectations for enqueue_kernel(.....) interface method + typedef opencl_range range_type; + opencl_factory( opencl_graph &g ) : my_graph( g ) {} ~opencl_factory() { if ( my_devices.size() ) { - for ( opencl_device d : my_devices ) { - enforce_cl_retcode( clReleaseCommandQueue( d.my_cl_command_queue ), "Failed to release a command queue" ); + for ( auto d = my_devices.begin(); d != my_devices.end(); ++d ) { + enforce_cl_retcode( clReleaseCommandQueue( (*d).my_cl_command_queue ), "Failed to release a command queue" ); } enforce_cl_retcode( clReleaseContext( my_cl_context ), "Failed to release a context" ); } @@ -936,19 +851,85 @@ private: enforce_cl_retcode( clReleaseEvent( e2 ), "Failed to release an event" ); } - template - cl_event enqueue_kernel( opencl_device device, cl_kernel kernel, - GlbNDRange&& global_work_size, LclNDRange&& local_work_size, cl_uint num_events, cl_event* event_list ) { - auto g_it = global_work_size.begin(); - auto l_it = local_work_size.begin(); - __TBB_ASSERT( g_it != global_work_size.end() , "Empty global work size" ); - __TBB_ASSERT( l_it != local_work_size.end() , "Empty local work size" ); - std::array g_size, l_size, g_offset = { { 0, 0, 0 } }; - cl_uint s; - for ( s = 0; s < 3 && g_it != global_work_size.end() && l_it != local_work_size.end(); ++s ) { - g_size[s] = *g_it++; - l_size[s] = *l_it++; + // --------- Kernel argument & event list helpers --------- // + template + void process_one_arg( const kernel_type& kernel, std::array&, int&, int& place, const T& t ) { + auto p = get_native_object(t); + enforce_cl_retcode( clSetKernelArg(kernel.my_cl_kernel, place++, sizeof(p), &p), "Failed to set a kernel argument" ); + } + + template + void process_one_arg( const kernel_type& kernel, std::array& events, int& num_events, int& place, const dependency_msg& msg ) { + __TBB_ASSERT((static_cast::size_type>(num_events) < events.size()), NULL); + + const cl_event * const e = msg.get_event(); + if (e != NULL) { + events[num_events++] = *e; } + + process_one_arg( kernel, events, num_events, place, msg.data(false) ); + } + + template + void process_arg_list( const kernel_type& kernel, std::array& events, int& num_events, int& place, const T& t, const Rest&... args ) { + process_one_arg( kernel, events, num_events, place, t ); + process_arg_list( kernel, events, num_events, place, args... ); + } + + template + void process_arg_list( const kernel_type&, std::array&, int&, int& ) {} + // ------------------------------------------- // + template + void update_one_arg( cl_event, T& ) {} + + template + void update_one_arg( cl_event e, dependency_msg& msg ) { + msg.set_event( e ); + msg.set_graph( my_graph ); + } + + template + void update_arg_list( cl_event e, T& t, Rest&... args ) { + update_one_arg( e, t ); + update_arg_list( e, args... ); + } + + void update_arg_list( cl_event ) {} + // ------------------------------------------- // +public: + template + void send_kernel( opencl_device device, const kernel_type& kernel, const range_type& work_size, Args&... args ) { + std::array events; + int num_events = 0; + int place = 0; + process_arg_list( kernel, events, num_events, place, args... ); + + const cl_event e = send_kernel_impl( device, kernel.my_cl_kernel, work_size, num_events, events.data() ); + + update_arg_list(e, args...); + + // Release our own reference to cl_event + enforce_cl_retcode( clReleaseEvent(e), "Failed to release an event" ); + } + + // ------------------------------------------- // + template + void send_data(opencl_device device, T& t, Rest&... args) { + send_if_memory_object( device, t ); + send_data( device, args... ); + } + + void send_data(opencl_device) {} + // ------------------------------------------- // + +private: + cl_event send_kernel_impl( opencl_device device, const cl_kernel& kernel, + const range_type& work_size, cl_uint num_events, cl_event* event_list ) { + const typename range_type::nd_range_type g_offset = { { 0, 0, 0 } }; + const typename range_type::nd_range_type& g_size = work_size.global_range(); + const typename range_type::nd_range_type& l_size = work_size.local_range(); + cl_uint s; + for ( s = 1; s < 3 && g_size[s] != size_t(-1); ++s) {} cl_event event; enforce_cl_retcode( clEnqueueNDRangeKernel( device.my_cl_command_queue, kernel, s, @@ -957,7 +938,71 @@ private: return event; } - void flush( opencl_device device ) { + // ------------------------------------------- // + template + bool get_event_from_one_arg( cl_event&, const T& ) { + return false; + } + + template + bool get_event_from_one_arg( cl_event& e, const dependency_msg& msg) { + cl_event const *e_ptr = msg.get_event(); + + if ( e_ptr != NULL ) { + e = *e_ptr; + return true; + } + + return false; + } + + template + bool get_event_from_args( cl_event& e, const T& t, const Rest&... args ) { + if ( get_event_from_one_arg( e, t ) ) { + return true; + } + + return get_event_from_args( e, args... ); + } + + bool get_event_from_args( cl_event& ) { + return false; + } + // ------------------------------------------- // + + struct finalize_fn : tbb::internal::no_assign { + virtual ~finalize_fn() {} + virtual void operator() () {} + }; + + template + struct finalize_fn_leaf : public finalize_fn { + Fn my_fn; + finalize_fn_leaf(Fn fn) : my_fn(fn) {} + void operator() () __TBB_override { my_fn(); } + }; + + static void CL_CALLBACK finalize_callback(cl_event, cl_int event_command_exec_status, void *data) { + tbb::internal::suppress_unused_warning(event_command_exec_status); + __TBB_ASSERT(event_command_exec_status == CL_COMPLETE, NULL); + + finalize_fn * const fn_ptr = static_cast(data); + __TBB_ASSERT(fn_ptr != NULL, "Invalid finalize function pointer"); + (*fn_ptr)(); + + // Function pointer was created by 'new' & this callback must be called once only + delete fn_ptr; + } +public: + template + void finalize( opencl_device device, FinalizeFn fn, Args&... args ) { + cl_event e; + + if ( get_event_from_args( e, args... ) ) { + enforce_cl_retcode( clSetEventCallback( e, CL_COMPLETE, finalize_callback, + new finalize_fn_leaf(fn) ), "Failed to set a callback" ); + } + enforce_cl_retcode( clFlush( device.my_cl_command_queue ), "Failed to flush an OpenCL command queue" ); } @@ -966,6 +1011,7 @@ private: return my_devices; } +private: bool is_same_context( opencl_device::device_id_type d1, opencl_device::device_id_type d2 ) { __TBB_ASSERT( d1 != opencl_device::unknown && d2 != opencl_device::unknown, NULL ); // Currently, factory supports only one context so if the both devices are not host it means the are in the same context. @@ -973,7 +1019,7 @@ private: return true; return d1 == d2; } - +private: opencl_factory( const opencl_factory& ); opencl_factory& operator=(const opencl_factory&); @@ -997,8 +1043,6 @@ private: friend class opencl_buffer_impl; template friend class opencl_memory; - template - friend class opencl_node; }; template @@ -1022,7 +1066,6 @@ template dependency_msg opencl_memory::send( opencl_device device, const cl_event *e ) { opencl_device::device_id_type device_id = device.my_device_id; if ( !my_factory->is_same_context( my_curr_device_id.load(), device_id ) ) { - __TBB_ASSERT( !e, "The buffer has come from another opencl_node but it is not on a device" ); { tbb::spin_mutex::scoped_lock lock( my_sending_lock ); if ( !my_factory->is_same_context( my_curr_device_id.load(), device_id ) ) { @@ -1056,6 +1099,8 @@ struct default_opencl_factory_device_filter { class default_opencl_factory : public opencl_factory < default_opencl_factory_device_filter > { public: + template using async_msg_type = dependency_msg; + default_opencl_factory( opencl_graph &g ) : opencl_factory( g ) {} private: default_opencl_factory( const default_opencl_factory& ); @@ -1064,34 +1109,43 @@ private: class opencl_foundation : tbb::internal::no_assign { struct default_device_selector_type { - opencl_device operator()( const opencl_device_list& devices ) { - return *devices.begin(); + opencl_device operator()( default_opencl_factory& f ) { + __TBB_ASSERT( ! f.devices().empty(), "No available devices" ); + return *( f.devices().begin() ); } }; public: - opencl_foundation( opencl_graph &g ) : my_default_opencl_factory( g ), my_default_device_selector() { + opencl_foundation(opencl_graph &g) : my_default_opencl_factory(g), my_default_device_selector() { cl_uint num_platforms; - enforce_cl_retcode( clGetPlatformIDs( 0, NULL, &num_platforms ), "clGetPlatformIDs failed" ); + enforce_cl_retcode(clGetPlatformIDs(0, NULL, &num_platforms), "clGetPlatformIDs failed"); - std::vector platforms( num_platforms ); - enforce_cl_retcode( clGetPlatformIDs( num_platforms, platforms.data(), NULL ), "clGetPlatformIDs failed" ); + std::vector platforms(num_platforms); + enforce_cl_retcode(clGetPlatformIDs(num_platforms, platforms.data(), NULL), "clGetPlatformIDs failed"); + cl_uint num_devices; + std::vector::iterator platforms_it = platforms.begin(); cl_uint num_all_devices = 0; - for ( cl_platform_id p : platforms ) { - cl_uint num_devices; - enforce_cl_retcode( clGetDeviceIDs( p, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices ), "clGetDeviceIDs failed" ); - num_all_devices += num_devices; + while (platforms_it != platforms.end()) { + cl_int err = clGetDeviceIDs(*platforms_it, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices); + if (err == CL_DEVICE_NOT_FOUND) { + platforms_it = platforms.erase(platforms_it); + } else { + enforce_cl_retcode(err, "clGetDeviceIDs failed"); + num_all_devices += num_devices; + ++platforms_it; + } } - std::vector devices( num_all_devices ); - std::vector::iterator it = devices.begin(); - for ( cl_platform_id p : platforms ) { - cl_uint num_devices; - enforce_cl_retcode( clGetDeviceIDs( p, CL_DEVICE_TYPE_ALL, (cl_uint)std::distance( it, devices.end() ), &*it, &num_devices ), "clGetDeviceIDs failed" ); - it += num_devices; + std::vector devices(num_all_devices); + std::vector::iterator devices_it = devices.begin(); + for (auto p = platforms.begin(); p != platforms.end(); ++p) { + enforce_cl_retcode(clGetDeviceIDs((*p), CL_DEVICE_TYPE_ALL, (cl_uint)std::distance(devices_it, devices.end()), &*devices_it, &num_devices), "clGetDeviceIDs failed"); + devices_it += num_devices; } - for ( cl_device_id d : devices ) my_devices.add( opencl_device( d ) ); + for (auto d = devices.begin(); d != devices.end(); ++d) { + my_devices.add(opencl_device((*d))); + } } default_opencl_factory &get_default_opencl_factory() { @@ -1145,7 +1199,9 @@ void opencl_factory::init_once() { enforce_cl_retcode( it->platform() == platform_id ? CL_SUCCESS : CL_INVALID_PLATFORM, "All devices should be in the same platform" ); std::vector cl_device_ids; - for ( opencl_device d : my_devices ) cl_device_ids.push_back( d.my_cl_device_id ); + for (auto d = my_devices.begin(); d != my_devices.end(); ++d) { + cl_device_ids.push_back((*d).my_cl_device_id); + } cl_context_properties context_properties[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)platform_id, (cl_context_properties)NULL }; cl_int err; @@ -1157,23 +1213,23 @@ void opencl_factory::init_once() { my_cl_context = ctx; size_t device_counter = 0; - for ( opencl_device &d : my_devices ) { - d.my_device_id = device_counter++; + for ( auto d = my_devices.begin(); d != my_devices.end(); d++ ) { + (*d).my_device_id = device_counter++; cl_int err2; cl_command_queue cq; #if CL_VERSION_2_0 - if ( d.major_version() >= 2 ) { - if ( d.out_of_order_exec_mode_on_host_present() ) { + if ( (*d).major_version() >= 2 ) { + if ( (*d).out_of_order_exec_mode_on_host_present() ) { cl_queue_properties props[] = { CL_QUEUE_PROPERTIES, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, 0 }; - cq = clCreateCommandQueueWithProperties( ctx, d.my_cl_device_id, props, &err2 ); + cq = clCreateCommandQueueWithProperties( ctx, (*d).my_cl_device_id, props, &err2 ); } else { cl_queue_properties props[] = { 0 }; - cq = clCreateCommandQueueWithProperties( ctx, d.my_cl_device_id, props, &err2 ); + cq = clCreateCommandQueueWithProperties( ctx, (*d).my_cl_device_id, props, &err2 ); } } else #endif { - cl_command_queue_properties props = d.out_of_order_exec_mode_on_host_present() ? CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE : 0; + cl_command_queue_properties props = (*d).out_of_order_exec_mode_on_host_present() ? CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE : 0; // Suppress "declared deprecated" warning for the next line. #if __TBB_GCC_WARNING_SUPPRESSION_PRESENT #pragma GCC diagnostic push @@ -1187,7 +1243,7 @@ void opencl_factory::init_once() { #pragma warning (disable: 4996) #endif #endif - cq = clCreateCommandQueue( ctx, d.my_cl_device_id, props, &err2 ); + cq = clCreateCommandQueue( ctx, (*d).my_cl_device_id, props, &err2 ); #if _MSC_VER || __INTEL_COMPILER #pragma warning( pop ) #endif @@ -1196,7 +1252,7 @@ void opencl_factory::init_once() { #endif } enforce_cl_retcode( err2, "Failed to create command queue" ); - d.my_cl_command_queue = cq; + (*d).my_cl_command_queue = cq; } } @@ -1221,22 +1277,34 @@ enum class opencl_program_type { template class opencl_program : tbb::internal::no_assign { public: - opencl_program( opencl_program_type type, const std::string& program_name ) : my_type(type) , my_arg_str( program_name) {} - opencl_program( const char* program_name ) : opencl_program( std::string( program_name ) ) {} - opencl_program( const std::string& program_name ) : opencl_program( opencl_program_type::SOURCE, program_name ) {} + typedef typename Factory::kernel_type kernel_type; - opencl_program( const opencl_program &src ) : my_type( src.type ), my_arg_str( src.my_arg_str ), my_cl_program( src.my_cl_program ) { + opencl_program( Factory& factory, opencl_program_type type, const std::string& program_name ) : my_factory( factory ), my_type(type) , my_arg_str( program_name) {} + opencl_program( Factory& factory, const char* program_name ) : opencl_program( factory, std::string( program_name ) ) {} + opencl_program( Factory& factory, const std::string& program_name ) : opencl_program( factory, opencl_program_type::SOURCE, program_name ) {} + + opencl_program( opencl_graph& graph, opencl_program_type type, const std::string& program_name ) : opencl_program( graph.opencl_factory(), type, program_name ) {} + opencl_program( opencl_graph& graph, const char* program_name ) : opencl_program( graph.opencl_factory(), program_name ) {} + opencl_program( opencl_graph& graph, const std::string& program_name ) : opencl_program( graph.opencl_factory(), program_name ) {} + opencl_program( opencl_graph& graph, opencl_program_type type ) : opencl_program( graph.opencl_factory(), type ) {} + + opencl_program( const opencl_program &src ) : my_factory( src.my_factory ), my_type( src.type ), my_arg_str( src.my_arg_str ), my_cl_program( src.my_cl_program ) { // Set my_do_once_flag to the called state. std::call_once( my_do_once_flag, [](){} ); } + + kernel_type get_kernel( const std::string& k ) const { + return kernel_type( get_cl_kernel(k), my_factory ); + } + private: - opencl_program( cl_program program ) : my_cl_program( program ) { + opencl_program( Factory& factory, cl_program program ) : my_factory( factory ), my_cl_program( program ) { // Set my_do_once_flag to the called state. std::call_once( my_do_once_flag, [](){} ); } - cl_kernel get_kernel( const std::string& k, Factory &f ) const { - std::call_once( my_do_once_flag, [this, &k, &f](){ this->init( f, k ); } ); + cl_kernel get_cl_kernel( const std::string& k ) const { + std::call_once( my_do_once_flag, [this, &k](){ this->init( k ); } ); cl_int err; cl_kernel kernel = clCreateKernel( my_cl_program, k.c_str(), &err ); enforce_cl_retcode( err, std::string( "Failed to create kernel: " ) + k ); @@ -1280,18 +1348,18 @@ private: std::string str = std::string( "Failed to build program: " ) + name; if ( err == CL_BUILD_PROGRAM_FAILURE ) { const opencl_device_list &devices = f.devices(); - for ( opencl_device d : devices ) { - std::cerr << "Build log for device: " << d.name() << std::endl; + for ( auto d = devices.begin(); d != devices.end(); ++d ) { + std::cerr << "Build log for device: " << (*d).name() << std::endl; size_t log_size; cl_int query_err = clGetProgramBuildInfo( - program, d.my_cl_device_id, CL_PROGRAM_BUILD_LOG, 0, NULL, + program, (*d).my_cl_device_id, CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size ); enforce_cl_retcode( query_err, "Failed to get build log size" ); if( log_size ) { std::vector output; output.resize( log_size ); query_err = clGetProgramBuildInfo( - program, d.my_cl_device_id, CL_PROGRAM_BUILD_LOG, + program, (*d).my_cl_device_id, CL_PROGRAM_BUILD_LOG, output.size(), output.data(), NULL ); enforce_cl_retcode( query_err, "Failed to get build output" ); std::cerr << output.data() << std::endl; @@ -1318,14 +1386,14 @@ private: } }; - void init( Factory &f, const std::string& ) const { + void init( const std::string& ) const { cl_uint num_devices; - enforce_cl_retcode( clGetContextInfo( f.context(), CL_CONTEXT_NUM_DEVICES, sizeof( num_devices ), &num_devices, NULL ), + enforce_cl_retcode( clGetContextInfo( my_factory.context(), CL_CONTEXT_NUM_DEVICES, sizeof( num_devices ), &num_devices, NULL ), "Failed to get OpenCL context info" ); if ( !num_devices ) enforce_cl_retcode( CL_DEVICE_NOT_FOUND, "No supported devices found" ); cl_device_id *device_list = (cl_device_id *)alloca( num_devices*sizeof( cl_device_id ) ); - enforce_cl_retcode( clGetContextInfo( f.context(), CL_CONTEXT_DEVICES, num_devices*sizeof( cl_device_id ), device_list, NULL ), + enforce_cl_retcode( clGetContextInfo( my_factory.context(), CL_CONTEXT_DEVICES, num_devices*sizeof( cl_device_id ), device_list, NULL ), "Failed to get OpenCL context info" ); const char *options = NULL; switch ( my_type ) { @@ -1334,7 +1402,7 @@ private: const char *s[] = { fr.content() }; const size_t l[] = { fr.length() }; cl_int err; - my_cl_program = clCreateProgramWithSource( f.context(), 1, s, l, &err ); + my_cl_program = clCreateProgramWithSource( my_factory.context(), 1, s, l, &err ); enforce_cl_retcode( err, std::string( "Failed to create program: " ) + my_arg_str ); opencl_device_filter( num_devices, device_list, @@ -1342,7 +1410,7 @@ private: return !d.compiler_available() || !d.linker_available(); }, "No one device supports building program from sources" ); opencl_program_builder( - f, my_arg_str, my_cl_program, num_devices, device_list, + my_factory, my_arg_str, my_cl_program, num_devices, device_list, options, /*callback*/ NULL, /*user data*/NULL ); break; } @@ -1355,18 +1423,20 @@ private: std::vector l( num_devices, fr.length() ); std::vector bin_statuses( num_devices, -1 ); cl_int err; - my_cl_program = clCreateProgramWithBinary( f.context(), num_devices, + my_cl_program = clCreateProgramWithBinary( my_factory.context(), num_devices, device_list, l.data(), s.data(), bin_statuses.data(), &err ); if( err != CL_SUCCESS ) { std::string statuses_str; - for( cl_int st : bin_statuses ) - statuses_str += std::to_string( st ); + for (auto st = bin_statuses.begin(); st != bin_statuses.end(); ++st) { + statuses_str += std::to_string((*st)); + } + enforce_cl_retcode( err, std::string( "Failed to create program, error " + std::to_string( err ) + " : " ) + my_arg_str + std::string( ", binary_statuses = " ) + statuses_str ); } opencl_program_builder( - f, my_arg_str, my_cl_program, num_devices, device_list, + my_factory, my_arg_str, my_cl_program, num_devices, device_list, options, /*callback*/ NULL, /*user data*/NULL ); break; } @@ -1375,720 +1445,55 @@ private: } } + Factory& my_factory; opencl_program_type my_type; std::string my_arg_str; mutable cl_program my_cl_program; mutable std::once_flag my_do_once_flag; - template - friend class opencl_node; -}; + template + friend class opencl_factory; -template -struct port_ref_impl { - // "+1" since the port_ref range is a closed interval (includes its endpoints). - static const int size = N2-N1+1; - -}; - -// The purpose of the port_ref_impl is the pretty syntax: the deduction of a compile-time constant is processed from the return type. -// So it is possible to use this helper without parentheses, e.g. "port_ref<0>". -template -port_ref_impl port_ref() { - return port_ref_impl(); -}; - -template -struct num_arguments { - static const int value = 1; -}; - -template -struct num_arguments(*)()> { - static const int value = port_ref_impl::size; -}; - -template -struct num_arguments> { - static const int value = port_ref_impl::size; + template + friend class opencl_factory::kernel; }; template class opencl_node; -template -void ignore_return_values( Args&&... ) {} - -template -T or_return_values( T&& t ) { return t; } -template -T or_return_values( T&& t, Rest&&... rest ) { - return t | or_return_values( std::forward(rest)... ); -} - - -#define is_typedef(type) \ - template \ - struct is_##type { \ - template \ - static std::true_type check( typename C::type* ); \ - template \ - static std::false_type check( ... ); \ - \ - static const bool value = decltype(check(0))::value; \ - } - -is_typedef( native_object_type ); -is_typedef( memory_object_type ); - -template -typename std::enable_if::value, typename T::native_object_type>::type get_native_object( const T &t ) { - return t.native_object(); -} - -template -typename std::enable_if::value, T>::type get_native_object( T t ) { - return t; -} - -// send_if_memory_object checks if the T type has memory_object_type and call the send method for the object. -template -typename std::enable_if::value>::type send_if_memory_object( opencl_device device, dependency_msg &dmsg ) { - const T &t = dmsg.data( false ); - typedef typename T::memory_object_type mem_obj_t; - mem_obj_t mem_obj = t.memory_object(); - dependency_msg d( mem_obj ); - if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() ); - mem_obj.send( device, d ); - if ( d.get_event() ) dmsg.set_event( *d.get_event() ); -} - -template -typename std::enable_if::value>::type send_if_memory_object( opencl_device device, const T &t ) { - typedef typename T::memory_object_type mem_obj_t; - mem_obj_t mem_obj = t.memory_object(); - dependency_msg dmsg( mem_obj ); - mem_obj.send( device, dmsg ); -} - -template -typename std::enable_if::value>::type send_if_memory_object( opencl_device, const T& ) {}; - -// receive_if_memory_object checks if the T type has memory_object_type and call the receive method for the object. -template -typename std::enable_if::value>::type receive_if_memory_object( const dependency_msg &dmsg ) { - const T &t = dmsg.data( false ); - typedef typename T::memory_object_type mem_obj_t; - mem_obj_t mem_obj = t.memory_object(); - dependency_msg d( mem_obj ); - if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() ); - mem_obj.receive( d ); - if ( d.get_event() ) dmsg.set_event( *d.get_event() ); -} - -template -typename std::enable_if::value>::type receive_if_memory_object( const T& ) {} - -template -struct key_from_policy { - typedef size_t type; - typedef std::false_type is_key_matching; -}; - -template -struct key_from_policy< key_matching > { - typedef Key type; - typedef std::true_type is_key_matching; -}; - -template -struct key_from_policy< key_matching > { - typedef const Key &type; - typedef std::true_type is_key_matching; -}; - -template -class opencl_device_with_key { - opencl_device my_device; - typename std::decay::type my_key; -public: - // TODO: investigate why defaul ctor is required - opencl_device_with_key() {} - opencl_device_with_key( opencl_device d, Key k ) : my_device( d ), my_key( k ) {} - Key key() const { return my_key; } - opencl_device device() const { return my_device; } -}; - -/* - /---------------------------------------- opencl_node ---------------------------------------\ - | | - | /--------------\ /----------------------\ /-----------\ /----------------------\ | - | | | | (device_with_key) O---O | | | | - | | | | | | | | | | - O---O indexer_node O---O device_selector_node O---O join_node O---O kernel_node O---O - | | | | (multifunction_node) | | | | (multifunction_node) | | - O---O | | O---O | | O---O - | \--------------/ \----------------------/ \-----------/ \----------------------/ | - | | - \--------------------------------------------------------------------------------------------/ -*/ - template -class opencl_node< tuple, JP, Factory > : public composite_node < tuple...>, tuple...> >{ - typedef tuple...> input_tuple; - typedef input_tuple output_tuple; - typedef typename key_from_policy::type key_type; - typedef composite_node base_type; - static const size_t NUM_INPUTS = tuple_size::value; - static const size_t NUM_OUTPUTS = tuple_size::value; - - typedef typename internal::make_sequence::type input_sequence; - typedef typename internal::make_sequence::type output_sequence; - - typedef indexer_node...> indexer_node_type; - typedef typename indexer_node_type::output_type indexer_node_output_type; - typedef tuple, dependency_msg...> kernel_input_tuple; - typedef multifunction_node device_selector_node; - typedef multifunction_node kernel_multifunction_node; - - template - typename base_type::input_ports_type get_input_ports( internal::sequence ) { - return std::tie( internal::input_port( my_indexer_node )... ); - } - - template - typename base_type::output_ports_type get_output_ports( internal::sequence ) { - return std::tie( internal::output_port( my_kernel_node )... ); - } - - typename base_type::input_ports_type get_input_ports() { - return get_input_ports( input_sequence() ); - } - - typename base_type::output_ports_type get_output_ports() { - return get_output_ports( output_sequence() ); - } - - template - int make_Nth_edge() { - make_edge( internal::output_port( my_device_selector_node ), internal::input_port( my_join_node ) ); - return 0; - } - - template - void make_edges( internal::sequence ) { - make_edge( my_indexer_node, my_device_selector_node ); - make_edge( my_device_selector_node, my_join_node ); - ignore_return_values( make_Nth_edge()... ); - make_edge( my_join_node, my_kernel_node ); - } - - void make_edges() { - make_edges( input_sequence() ); - } - - class device_selector_base { - public: - virtual void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) = 0; - virtual device_selector_base *clone( opencl_node &n ) const = 0; - virtual ~device_selector_base() {} - }; - - template - class device_selector : public device_selector_base, tbb::internal::no_assign { - public: - device_selector( UserFunctor uf, opencl_node &n, Factory &f ) : my_user_functor( uf ), my_node(n), my_factory( f ) { - my_port_epoches.fill( 0 ); - } - - /* override */ void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { - send_and_put( my_port_epoches[v.tag()], v, op, input_sequence() ); - __TBB_ASSERT( (std::is_same::is_key_matching, std::false_type>::value) || my_port_epoches[v.tag()] == 0, "Epoch is changed when key matching is requested" ); - } - - /* override */ device_selector_base *clone( opencl_node &n ) const { - return new device_selector( my_user_functor, n, my_factory ); - } - private: - template - void send_and_put( size_t &epoch, const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op, internal::sequence ) { - typedef void(device_selector::*send_and_put_fn)(size_t &, const indexer_node_output_type &, typename device_selector_node::output_ports_type &); - static std::array dispatch = { { &device_selector::send_and_put_impl... } }; - (this->*dispatch[v.tag()])( epoch, v, op ); - } - - template - key_type get_key( std::false_type, const T &, size_t &epoch ) { - __TBB_STATIC_ASSERT( (std::is_same::value), "" ); - return epoch++; - } - - template - key_type get_key( std::true_type, const T &t, size_t &/*epoch*/ ) { - using tbb::flow::key_from_message; - return key_from_message( t ); - } - - template - void send_and_put_impl( size_t &epoch, const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { - typedef typename tuple_element::type::output_type elem_type; - elem_type e = internal::cast_to( v ); - opencl_device device = get_device( get_key( typename key_from_policy::is_key_matching(), e, epoch ), get<0>( op ) ); - send_if_memory_object( device, e ); - get( op ).try_put( e ); - } - - template< typename DevicePort > - opencl_device get_device( key_type key, DevicePort& dp ) { - typename std::unordered_map::type, epoch_desc>::iterator it = my_devices.find( key ); - if ( it == my_devices.end() ) { - opencl_device d = my_user_functor( my_factory.devices() ); - std::tie( it, std::ignore ) = my_devices.insert( std::make_pair( key, d ) ); - bool res = dp.try_put( opencl_device_with_key( d, key ) ); - __TBB_ASSERT_EX( res, NULL ); - my_node.notify_new_device( d ); - } - epoch_desc &e = it->second; - opencl_device d = e.my_device; - if ( ++e.my_request_number == NUM_INPUTS ) my_devices.erase( it ); - return d; - } - - struct epoch_desc { - epoch_desc( opencl_device d ) : my_device( d ), my_request_number( 0 ) {} - opencl_device my_device; - size_t my_request_number; - }; - - std::unordered_map::type, epoch_desc> my_devices; - std::array my_port_epoches; - UserFunctor my_user_functor; - opencl_node &my_node; - Factory &my_factory; - }; - - class device_selector_body { - public: - device_selector_body( device_selector_base *d ) : my_device_selector( d ) {} - - /* override */ void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { - (*my_device_selector)(v, op); - } - private: - device_selector_base *my_device_selector; - }; - - // Forward declaration. - class ndranges_mapper_base; - - class opencl_kernel_base : tbb::internal::no_copy { - cl_kernel clone_kernel() const { - size_t ret_size; - - std::vector kernel_name; - for ( size_t curr_size = 32;; curr_size <<= 1 ) { - kernel_name.resize( curr_size <<= 1 ); - enforce_cl_retcode( clGetKernelInfo( my_kernel, CL_KERNEL_FUNCTION_NAME, curr_size, kernel_name.data(), &ret_size ), "Failed to get kernel info" ); - if ( ret_size < curr_size ) break; - } - - cl_program program; - enforce_cl_retcode( clGetKernelInfo( my_kernel, CL_KERNEL_PROGRAM, sizeof( program ), &program, &ret_size ), "Failed to get kernel info" ); - __TBB_ASSERT( ret_size == sizeof( program ), NULL ); - - return opencl_program( program ).get_kernel( kernel_name.data(), my_factory ); - } - - // ------------- NDRange getters ------------- // - template - NDRange ndrange_value( NDRange&& r, const kernel_input_tuple& ) const { return r; } - template - typename tuple_element::type::value_type ndrange_value( port_ref_impl, const kernel_input_tuple& ip ) const { - // "+1" since get<0>(ip) is opencl_device. - return get(ip).data(false); - } - template - void ndrange_value( port_ref_impl, const kernel_input_tuple& ip ) const { - __TBB_STATIC_ASSERT( N1==N2, "Do not use a port_ref range (e.g. port_ref<0,2>) as an argument for the set_ndranges routine" ); - } - template - typename tuple_element::type::value_type ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { - return ndrange_value(port_ref(), ip); - } - template - void ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { - return ndrange_value(port_ref(), ip); - } - // ------------------------------------------- // - public: - typedef typename kernel_multifunction_node::output_ports_type output_ports_type; - - virtual void enqueue( const ndranges_mapper_base *ndranges_mapper, const kernel_input_tuple &ip, output_ports_type &op, graph &g ) = 0; - virtual void send_memory_objects( opencl_device d ) = 0; - virtual opencl_kernel_base *clone() const = 0; - virtual ~opencl_kernel_base () { - enforce_cl_retcode( clReleaseKernel( my_kernel ), "Failed to release a kernel" ); - } - - template - cl_event enqueue( GlbNDRange&& glb_range, LclNDRange&& lcl_range, int num_events, std::array events, const kernel_input_tuple& ip ) { - return my_factory.enqueue_kernel( get<0>( ip ).device(), my_kernel, ndrange_value( glb_range, ip ), ndrange_value( lcl_range, ip ), num_events, events.data() ); - } - protected: - opencl_kernel_base( const opencl_program& p, const std::string& kernel_name, Factory &f ) - : my_kernel( p.get_kernel( kernel_name, f ) ), my_factory( f ) - {} - - opencl_kernel_base( const opencl_kernel_base &k ) - : my_kernel( k.clone_kernel() ), my_factory( k.my_factory ) - {} - - const cl_kernel my_kernel; - Factory &my_factory; - }; - - // Container for ndrandes. It can contain either port references or real ndranges. - class ndranges_mapper_base { - public: - virtual cl_event enqueue_kernel( opencl_kernel_base *k, const kernel_input_tuple& ip, int num_events, const std::array &events ) const = 0; - virtual ndranges_mapper_base *clone() const = 0; - virtual ~ndranges_mapper_base() {} - }; - - template - class opencl_kernel : public opencl_kernel_base { - typedef typename opencl_kernel_base::output_ports_type output_ports_type; - // --------- Kernel argument helpers --------- // - template - void set_one_kernel_arg(const T& t) { - auto p = get_native_object( t ); - enforce_cl_retcode( clSetKernelArg( this->my_kernel, Place, sizeof( p ), &p ), "Failed to set a kernel argument" ); - } - - template - int set_one_arg_from_range( const kernel_input_tuple& ip ) { - // "+1" since get<0>(ip) is opencl_device - set_one_kernel_arg( get( ip ).data( false ) ); - return 0; - } - - template - void set_args_range(const kernel_input_tuple& ip, internal::sequence) { - ignore_return_values( set_one_arg_from_range( ip )... ); - } - - template - void set_arg_impl( const kernel_input_tuple& ip, port_ref_impl ) { - set_args_range( ip, typename internal::make_sequence::size>::type() ); - } - - template - void set_arg_impl( const kernel_input_tuple& ip, port_ref_impl(*)() ) { - set_arg_impl( ip, port_ref() ); - } - - template - void set_arg_impl( const kernel_input_tuple&, const T& t ) { - set_one_kernel_arg( t ); - } - - template - void set_args( const kernel_input_tuple& ) {} - - template - void set_args( const kernel_input_tuple& ip, const T& t, Rest&&... rest ) { - set_arg_impl( ip, t ); - set_args::value>( ip, std::forward(rest)... ); - } - // ------------------------------------------- // - - // -------- Kernel event list helpers -------- // - int add_event_to_list( std::array &events, int &num_events, const cl_event *e ) { - __TBB_ASSERT( (static_cast::size_type>(num_events) < events.size()), NULL ); - if ( e ) events[num_events++] = *e; - return 0; - } - - template - int generate_event_list( std::array &events, const kernel_input_tuple& ip, internal::sequence ) { - int num_events = 0; - ignore_return_values( add_event_to_list( events, num_events, get( ip ).get_event() )... ); - return num_events; - } - // ------------------------------------------- // - - // ---------- Update events helpers ---------- // - template - bool update_event_and_try_put( graph &g, cl_event e, const kernel_input_tuple& ip, output_ports_type &op ) { - auto t = get( ip ); - t.set_event( e ); - t.set_graph( g ); - auto &port = get( op ); - return port.try_put( t ); - } - - template - bool update_events_and_try_put( graph &g, cl_event e, const kernel_input_tuple& ip, output_ports_type &op, internal::sequence ) { - return or_return_values( update_event_and_try_put( g, e, ip, op )... ); - } - // ------------------------------------------- // - - class set_args_func : tbb::internal::no_assign { - public: - set_args_func( opencl_kernel &k, const kernel_input_tuple &ip ) : my_opencl_kernel( k ), my_ip( ip ) {} - // It is immpossible to use Args... because a function pointer cannot be casted to a function reference implicitly. - // Allow the compiler to deduce types for function pointers automatically. - template - void operator()( A&&... a ) { - my_opencl_kernel.set_args<0>( my_ip, std::forward( a )... ); - } - private: - opencl_kernel &my_opencl_kernel; - const kernel_input_tuple &my_ip; - }; - - class send_func : tbb::internal::no_assign { - public: - send_func( opencl_device d ) : my_device( d ) {} - void operator()() {} - template - void operator()( T &&t, Rest&&... rest ) { - send_if_memory_object( my_device, std::forward( t ) ); - (*this)( std::forward( rest )... ); - } - private: - opencl_device my_device; - }; - - static void CL_CALLBACK decrement_wait_count_callback( cl_event, cl_int event_command_exec_status, void *data ) { - tbb::internal::suppress_unused_warning( event_command_exec_status ); - __TBB_ASSERT( event_command_exec_status == CL_COMPLETE, NULL ); - graph &g = *static_cast(data); - g.decrement_wait_count(); - } - - public: - opencl_kernel( const opencl_program& p, const std::string &kernel_name, Factory &f, Args&&... args ) - : opencl_kernel_base( p, kernel_name, f ) - , my_args_pack( std::forward( args )... ) - {} - - opencl_kernel( const opencl_kernel_base &k ) : opencl_kernel_base( k ), my_args_pack( k.my_args_pack ) {} - - opencl_kernel( const opencl_kernel_base &k, Args&&... args ) : opencl_kernel_base( k ), my_args_pack( std::forward(args)... ) {} - - /* override */ void enqueue( const ndranges_mapper_base *ndrange_mapper, const kernel_input_tuple &ip, output_ports_type &op, graph &g ) { - // Set arguments for the kernel. - tbb::internal::call( set_args_func( *this, ip ), my_args_pack ); - - // Gather events from all ports to an array. - std::array events; - int num_events = generate_event_list( events, ip, input_sequence() ); - - // Enqueue the kernel. ndrange_mapper is used only to obtain ndrange. Actually, it calls opencl_kernel_base::enqueue. - cl_event e = ndrange_mapper->enqueue_kernel( this, ip, num_events, events ); - - // Update events in dependency messages and try_put them to the output ports. - if ( !update_events_and_try_put( g, e, ip, op, input_sequence() ) ) { - // No one message was passed to successors so set a callback to extend the graph lifetime until the kernel completion. - g.increment_wait_count(); - enforce_cl_retcode( clSetEventCallback( e, CL_COMPLETE, decrement_wait_count_callback, &g ), "Failed to set a callback" ); - this->my_factory.flush( get<0>( ip ).device() ); - } - // Release our own reference to cl_event. - enforce_cl_retcode( clReleaseEvent( e ), "Failed to release an event" ); - } - - virtual void send_memory_objects( opencl_device d ) { - // Find opencl_buffer and send them to the devece. - tbb::internal::call( send_func( d ), my_args_pack ); - } - - /* override */ opencl_kernel_base *clone() const { - // Create new opencl_kernel with copying constructor. - return new opencl_kernel( *this ); - } - - private: - tbb::internal::stored_pack my_args_pack; - }; - - template - class ndranges_mapper : public ndranges_mapper_base, tbb::internal::no_assign { - public: - template - ndranges_mapper( GRange&& glb, LRange&& lcl ) : my_global_work_size( glb ), my_local_work_size( lcl ) {} - - /*override*/ cl_event enqueue_kernel( opencl_kernel_base *k, const kernel_input_tuple &ip, int num_events, const std::array &events ) const { - return k->enqueue( my_global_work_size, my_local_work_size, num_events, events, ip ); - } - - /*override*/ ndranges_mapper_base *clone() const { - return new ndranges_mapper( my_global_work_size, my_local_work_size ); - } - - private: - GlbNDRange my_global_work_size; - LclNDRange my_local_work_size; - }; - - void enqueue_kernel( const kernel_input_tuple &ip, typename opencl_kernel_base::output_ports_type &op ) const { - __TBB_ASSERT(my_ndranges_mapper, "NDRanges are not set. Call set_ndranges before running opencl_node."); - my_opencl_kernel->enqueue( my_ndranges_mapper, ip, op, this->my_graph ); - } - - // Body for kernel_multifunction_node. - class kernel_body : tbb::internal::no_assign { - public: - kernel_body( const opencl_node &node ) : my_opencl_node( node ) {} - void operator()( const kernel_input_tuple &ip, typename opencl_kernel_base::output_ports_type &op ) { - my_opencl_node.enqueue_kernel( ip, op ); - } - private: - const opencl_node &my_opencl_node; - }; - - template - opencl_kernel_base *make_opencl_kernel( const opencl_program &p, const std::string &kernel_name, Factory &f, Args&&... args ) const { - return new opencl_kernel( p, kernel_name, f, std::forward( args )... ); - } - - template > - void set_ndranges_impl( GlobalNDRange&& global_work_size, LocalNDRange&& local_work_size = std::array( { { 0, 0, 0 } } ) ) { - if ( my_ndranges_mapper ) delete my_ndranges_mapper; - my_ndranges_mapper = new ndranges_mapper::type, typename std::decay::type> - ( std::forward( global_work_size ), std::forward( local_work_size ) ); - } - - void notify_new_device( opencl_device d ) { - my_opencl_kernel->send_memory_objects( d ); - } - +class opencl_node< tuple, JP, Factory > : public streaming_node< tuple, JP, Factory > { + typedef streaming_node < tuple, JP, Factory > base_type; public: + typedef typename base_type::kernel_type kernel_type; + + opencl_node( opencl_graph &g, const kernel_type& kernel ) + : base_type( g, kernel, g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) + {} + + opencl_node( opencl_graph &g, const kernel_type& kernel, Factory &f ) + : base_type( g, kernel, g.get_opencl_foundation().get_default_device_selector(), f ) + {} + template - opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel_name, DeviceSelector d, Factory &f ) - : base_type( g ) - , my_indexer_node( g ) - , my_device_selector( new device_selector( d, *this, f ) ) - , my_device_selector_node( g, serial, device_selector_body( my_device_selector ) ) - , my_join_node( g ) - , my_kernel_node( g, serial, kernel_body( *this ) ) - // By default, opencl_node maps all its ports to the kernel arguments on a one-to-one basis. - , my_opencl_kernel( make_opencl_kernel( p , kernel_name, f, port_ref<0, NUM_INPUTS - 1>()) ) - , my_ndranges_mapper( NULL ) - { - base_type::set_external_ports( get_input_ports(), get_output_ports() ); - make_edges(); - } - - opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel_name, Factory &f ) - : opencl_node( g, p, kernel_name, g.get_opencl_foundation().get_default_device_selector(), f ) - {} - - - opencl_node( const opencl_node &node ) - : base_type( node.my_graph ) - , my_indexer_node( node.my_indexer_node ) - , my_device_selector( node.my_device_selector->clone( *this ) ) - , my_device_selector_node( node.my_graph, serial, device_selector_body( my_device_selector ) ) - , my_join_node( node.my_join_node ) - , my_kernel_node( node.my_graph, serial, kernel_body( *this ) ) - , my_opencl_kernel( node.my_opencl_kernel->clone() ) - , my_ndranges_mapper( node.my_ndranges_mapper ? node.my_ndranges_mapper->clone() : NULL ) - { - base_type::set_external_ports( get_input_ports(), get_output_ports() ); - make_edges(); - } - - opencl_node( opencl_node &&node ) - : base_type( node.my_graph ) - , my_indexer_node( std::move( node.my_indexer_node ) ) - , my_device_selector( node.my_device_selector->clone(*this) ) - , my_device_selector_node( node.my_graph, serial, device_selector_body( my_device_selector ) ) - , my_join_node( std::move( node.my_join_node ) ) - , my_kernel_node( node.my_graph, serial, kernel_body( *this ) ) - , my_opencl_kernel( node.my_opencl_kernel ) - , my_ndranges_mapper( node.my_ndranges_mapper ) - { - base_type::set_external_ports( get_input_ports(), get_output_ports() ); - make_edges(); - // Set moving node mappers to NULL to prevent double deallocation. - node.my_opencl_kernel = NULL; - node.my_ndranges_mapper = NULL; - } - - ~opencl_node() { - if ( my_opencl_kernel ) delete my_opencl_kernel; - if ( my_ndranges_mapper ) delete my_ndranges_mapper; - if ( my_device_selector ) delete my_device_selector; - } - - template - void set_ndranges( std::initializer_list global_work_size ) { - set_ndranges_impl( internal::initializer_list_wrapper( global_work_size ) ); - } - - template - void set_ndranges( GlobalNDRange&& global_work_size ) { - set_ndranges_impl( std::forward( global_work_size ) ); - } - - template - void set_ndranges( std::initializer_list global_work_size, LocalNDRange&& local_work_size ) { - set_ndranges_impl( internal::initializer_list_wrapper(global_work_size), std::forward( local_work_size ) ); - } - - template - void set_ndranges( std::initializer_list global_work_size, std::initializer_list local_work_size ) { - set_ndranges_impl( internal::initializer_list_wrapper(global_work_size), internal::initializer_list_wrapper(local_work_size) ); - } - - template - void set_ndranges( GlobalNDRange&& global_work_size, LocalNDRange&& local_work_size ) { - set_ndranges_impl( std::forward(global_work_size), std::forward(local_work_size) ); - } - - template - void set_ndranges( GlobalNDRange&& global_work_size, std::initializer_list local_work_size ) { - set_ndranges_impl( std::forward( global_work_size ), internal::initializer_list_wrapper( local_work_size ) ); - } - - template - void set_args( Args&&... args ) { - // Copy the base class of opencl_kernal and create new storage for "Args...". - opencl_kernel_base *new_opencl_kernel = new opencl_kernel( *my_opencl_kernel, std::forward( args )... ); - delete my_opencl_kernel; - my_opencl_kernel = new_opencl_kernel; - } - -protected: - /* override */ void reset_node( reset_flags = rf_reset_protocol ) { __TBB_ASSERT( false, "Not implemented yet" ); } - -private: - indexer_node_type my_indexer_node; - device_selector_base *my_device_selector; - device_selector_node my_device_selector_node; - join_node my_join_node; - kernel_multifunction_node my_kernel_node; - - opencl_kernel_base *my_opencl_kernel; - ndranges_mapper_base *my_ndranges_mapper; + opencl_node( opencl_graph &g, const kernel_type& kernel, DeviceSelector d, Factory &f) + : base_type( g, kernel, d, f) + {} }; template class opencl_node< tuple, JP > : public opencl_node < tuple, JP, default_opencl_factory > { typedef opencl_node < tuple, JP, default_opencl_factory > base_type; public: - opencl_node( opencl_graph &g, const std::string &kernel ) + typedef typename base_type::kernel_type kernel_type; + + opencl_node( opencl_graph &g, const kernel_type& kernel ) : base_type( g, kernel, g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) {} - opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel ) - : base_type( g, p, kernel, - g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) - {} + template - opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel, DeviceSelector d ) - : base_type( g, p , kernel, d, g.get_opencl_foundation().get_default_opencl_factory() ) + opencl_node( opencl_graph &g, const kernel_type& kernel, DeviceSelector d ) + : base_type( g, kernel, d, g.get_opencl_foundation().get_default_opencl_factory() ) {} }; @@ -2096,35 +1501,34 @@ template class opencl_node< tuple > : public opencl_node < tuple, queueing, default_opencl_factory > { typedef opencl_node < tuple, queueing, default_opencl_factory > base_type; public: - opencl_node( opencl_graph &g, const std::string &kernel ) + typedef typename base_type::kernel_type kernel_type; + + opencl_node( opencl_graph &g, const kernel_type& kernel ) : base_type( g, kernel, g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) {} - opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel ) - : base_type( g, p, kernel, - g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) - {} + template - opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel, DeviceSelector d ) - : base_type( g, p, kernel, d, g.get_opencl_foundation().get_default_opencl_factory() ) + opencl_node( opencl_graph &g, const kernel_type& kernel, DeviceSelector d ) + : base_type( g, kernel, d, g.get_opencl_foundation().get_default_opencl_factory() ) {} }; -} // namespace interface8 +} // namespace interface9 -using interface8::opencl_graph; -using interface8::opencl_node; -using interface8::read_only; -using interface8::read_write; -using interface8::write_only; -using interface8::opencl_buffer; -using interface8::opencl_subbuffer; -using interface8::opencl_device; -using interface8::opencl_device_list; -using interface8::opencl_program; -using interface8::opencl_program_type; -using interface8::dependency_msg; -using interface8::port_ref; -using interface8::opencl_factory; +using interface9::opencl_graph; +using interface9::opencl_node; +using interface9::read_only; +using interface9::read_write; +using interface9::write_only; +using interface9::opencl_buffer; +using interface9::opencl_subbuffer; +using interface9::opencl_device; +using interface9::opencl_device_list; +using interface9::opencl_program; +using interface9::opencl_program_type; +using interface9::dependency_msg; +using interface9::opencl_factory; +using interface9::opencl_range; } // namespace flow } // namespace tbb diff --git a/lib/3rdParty/tbb/include/tbb/gfx_factory.h b/lib/3rdParty/tbb/include/tbb/gfx_factory.h new file mode 100644 index 0000000..76ca355 --- /dev/null +++ b/lib/3rdParty/tbb/include/tbb/gfx_factory.h @@ -0,0 +1,359 @@ +/* + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +*/ + +#ifndef __TBB_flow_graph_gfx_factory_H +#define __TBB_flow_graph_gfx_factory_H + +#include "tbb/tbb_config.h" + +#if __TBB_PREVIEW_GFX_FACTORY + +#include +#include +#include +#include + +#include +#include +#include + +namespace tbb { + +namespace flow { + +namespace interface9 { + +template +class gfx_buffer; + +namespace gfx_offload { + + typedef GfxTaskId task_id_type; + + //----------------------------------------------------------------------- + // GFX errors checkers. + // For more debug output, set GFX_LOG_OFFLOAD=2 macro + //----------------------------------------------------------------------- + + // TODO: reconsider error handling approach. If exception is the right way + // then need to define and document a specific exception type. + inline void throw_gfx_exception() { + std::string msg = "GFX error occurred: " + std::to_string(_GFX_get_last_error()); + std::cerr << msg << std::endl; + throw msg; + } + + inline void check_enqueue_retcode(task_id_type err) { + if (err == 0) { + throw_gfx_exception(); + } + } + + inline void check_gfx_retcode(task_id_type err) { + if (err != GFX_SUCCESS) { + throw_gfx_exception(); + } + } + + //--------------------------------------------------------------------- + // GFX asynchronous offload and share API + //--------------------------------------------------------------------- + + // Sharing and unsharing data API + template + void share(DataType* p, SizeType n) { check_gfx_retcode(_GFX_share(p, sizeof(*p)*n)); } + template + void unshare(DataType* p) { check_gfx_retcode(_GFX_unshare(p)); } + + // Retrieving array pointer from shared gfx_buffer + // Other types remain the same + template + T* raw_data(gfx_buffer& buffer) { return buffer.data(); } + template + const T* raw_data(const gfx_buffer& buffer) { return buffer.data(); } + template + T& raw_data(T& data) { return data; } + template + const T& raw_data(const T& data) { return data; } + + // Kernel enqueuing on device with arguments + template + task_id_type run_kernel(F ptr, ArgType&... args) { + task_id_type id = _GFX_offload(ptr, raw_data(args)...); + + // Check if something during offload went wrong (ex: driver initialization failure) + gfx_offload::check_enqueue_retcode(id); + + return id; + } + + // Waiting for tasks completion + void wait_for_task(task_id_type id) { check_gfx_retcode(_GFX_wait(id)); } + +} // namespace gfx_offload + +template +class gfx_buffer { +public: + + typedef typename std::vector::iterator iterator; + typedef typename std::vector::const_iterator const_iterator; + + typedef std::size_t size_type; + + gfx_buffer() : my_vector_ptr(std::make_shared< std::vector >()) {} + gfx_buffer(size_type size) : my_vector_ptr(std::make_shared< std::vector >(size)) {} + + T* data() { return &(my_vector_ptr->front()); } + const T* data() const { return &(my_vector_ptr->front()); } + + size_type size() const { return my_vector_ptr->size(); } + + const_iterator cbegin() const { return my_vector_ptr->cbegin(); } + const_iterator cend() const { return my_vector_ptr->cend(); } + iterator begin() { return my_vector_ptr->begin(); } + iterator end() { return my_vector_ptr->end(); } + + T& operator[](size_type pos) { return (*my_vector_ptr)[pos]; } + const T& operator[](size_type pos) const { return (*my_vector_ptr)[pos]; } + +private: + std::shared_ptr< std::vector > my_vector_ptr; +}; + +template +class gfx_async_msg : public tbb::flow::async_msg { +public: + typedef gfx_offload::task_id_type kernel_id_type; + + gfx_async_msg() : my_task_id(0) {} + gfx_async_msg(const T& input_data) : my_data(input_data), my_task_id(0) {} + + T& data() { return my_data; } + const T& data() const { return my_data; } + + void set_task_id(kernel_id_type id) { my_task_id = id; } + kernel_id_type task_id() const { return my_task_id; } + +private: + T my_data; + kernel_id_type my_task_id; +}; + +class gfx_factory { +private: + + // Wrapper for GFX kernel which is just a function + class func_wrapper { + public: + + template + func_wrapper(F ptr) { my_ptr = reinterpret_cast(ptr); } + + template + void operator()(Args&&... args) {} + + operator void*() { return my_ptr; } + + private: + void* my_ptr; + }; + +public: + + // Device specific types + template using async_msg_type = gfx_async_msg; + + typedef func_wrapper kernel_type; + + // Empty device type that is needed for Factory Concept + // but is not used in gfx_factory + typedef struct {} device_type; + + typedef gfx_offload::task_id_type kernel_id_type; + + gfx_factory(tbb::flow::graph& g) : m_graph(g), current_task_id(0) {} + + // Upload data to the device + template + void send_data(device_type /*device*/, Args&... args) { + send_data_impl(args...); + } + + // Run kernel on the device + template + void send_kernel(device_type /*device*/, const kernel_type& kernel, Args&... args) { + // Get packed T data from async_msg and pass it to kernel + kernel_id_type id = gfx_offload::run_kernel(kernel, args.data()...); + + // Set id to async_msg + set_kernel_id(id, args...); + + // Extend the graph lifetime until the callback completion. + m_graph.reserve_wait(); + + // Mutex for future assignment + std::lock_guard lock(future_assignment_mutex); + + // Set callback that waits for kernel execution + callback_future = std::async(std::launch::async, &gfx_factory::callback, this, id, args...); + } + + // Finalization action after the kernel run + template + void finalize(device_type /*device*/, FinalizeFn fn, Args&... /*args*/) { + fn(); + } + + // Empty device selector. + // No way to choose a device with GFX API. + class dummy_device_selector { + public: + device_type operator()(gfx_factory& /*factory*/) { + return device_type(); + } + }; + +private: + + //--------------------------------------------------------------------- + // Callback for kernel result + //--------------------------------------------------------------------- + + template + void callback(kernel_id_type id, Args... args) { + // Waiting for specific tasks id to complete + { + std::lock_guard lock(task_wait_mutex); + if (current_task_id < id) { + gfx_offload::wait_for_task(id); + current_task_id = id; + } + } + + // Get result from device and set to async_msg (args) + receive_data(args...); + + // Data was sent to the graph, release the reference + m_graph.release_wait(); + } + + //--------------------------------------------------------------------- + // send_data() arguments processing + //--------------------------------------------------------------------- + + // GFX buffer shared data with device that will be executed on + template + void share_data(T) {} + + template + void share_data(gfx_buffer& buffer) { + gfx_offload::share(buffer.data(), buffer.size()); + } + + template + void send_arg(T) {} + + template + void send_arg(async_msg_type& msg) { + share_data(msg.data()); + } + + void send_data_impl() {} + + template + void send_data_impl(T& arg, Rest&... args) { + send_arg(arg); + send_data_impl(args...); + } + + //---------------------------------------------------------------------- + // send_kernel() arguments processing + //---------------------------------------------------------------------- + + template + void set_kernel_id_arg(kernel_id_type, T) {} + + template + void set_kernel_id_arg(kernel_id_type id, async_msg_type& msg) { + msg.set_task_id(id); + } + + void set_kernel_id(kernel_id_type) {} + + template + void set_kernel_id(kernel_id_type id, T& arg, Rest&... args) { + set_kernel_id_arg(id, arg); + set_kernel_id(id, args...); + } + + //----------------------------------------------------------------------- + // Arguments processing after kernel execution. + // Unsharing buffers and forwarding results to the graph + //----------------------------------------------------------------------- + + // After kernel execution the data should be unshared + template + void unshare_data(T) {} + + template + void unshare_data(gfx_buffer& buffer) { + gfx_offload::unshare(buffer.data()); + } + + template + void receive_arg(T) {} + + template + void receive_arg(async_msg_type& msg) { + unshare_data(msg.data()); + msg.set(msg.data()); + } + + void receive_data() {} + + template + void receive_data(T& arg, Rest&... args) { + receive_arg(arg); + receive_data(args...); + } + + //----------------------------------------------------------------------- + int current_task_id; + + std::future callback_future; + tbb::flow::graph& m_graph; + + std::mutex future_assignment_mutex; + std::mutex task_wait_mutex; +}; + +} // namespace interface9 + +using interface9::gfx_factory; +using interface9::gfx_buffer; + +} // namespace flow + +} // namespace tbb + +#endif // __TBB_PREVIEW_GFX_FACTORY + +#endif // __TBB_flow_graph_gfx_factory_H diff --git a/lib/3rdParty/tbb/include/tbb/global_control.h b/lib/3rdParty/tbb/include/tbb/global_control.h index d43ff5a..fe74202 100644 --- a/lib/3rdParty/tbb/include/tbb/global_control.h +++ b/lib/3rdParty/tbb/include/tbb/global_control.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_global_control_H diff --git a/lib/3rdParty/tbb/include/tbb/index.html b/lib/3rdParty/tbb/include/tbb/index.html index f0702e2..2eddd45 100644 --- a/lib/3rdParty/tbb/include/tbb/index.html +++ b/lib/3rdParty/tbb/include/tbb/index.html @@ -19,7 +19,7 @@ Include files for Intel® Threading Building Blocks classes and functions.
      Up to parent directory

      -Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +Copyright © 2005-2017 Intel Corporation. All Rights Reserved.

      Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/lib/3rdParty/tbb/include/tbb/internal/_aggregator_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_aggregator_impl.h index 111a6c3..40bbd49 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_aggregator_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_aggregator_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__aggregator_impl_H @@ -36,7 +36,9 @@ using namespace tbb::internal; template class aggregated_operation { public: + //! Zero value means "wait" status, all other values are "user" specified values and are defined into the scope of a class which uses "status". uintptr_t status; + Derived *next; aggregated_operation() : status(0), next(NULL) {} }; @@ -52,19 +54,21 @@ class aggregator_generic { public: aggregator_generic() : handler_busy(false) { pending_operations = NULL; } - //! Place operation in list - /** Place operation in list and either handle list or wait for operation to - complete. - long_life_time specifies life time of an operation inserting in an aggregator. - "Long" (long_life_time == true) life time operation can be accessed - even after executing it. - "Short" (long_life_time == false) life time operations can be destroyed - during executing so any access to it after executing is invalid.*/ + //! Execute an operation + /** Places an operation into the waitlist (pending_operations), and either handles the list, + or waits for the operation to complete, or returns. + The long_life_time parameter specifies the life time of the given operation object. + Operations with long_life_time == true may be accessed after execution. + A "short" life time operation (long_life_time == false) can be destroyed + during execution, and so any access to it after it was put into the waitlist, + including status check, is invalid. As a consequence, waiting for completion + of such operation causes undefined behavior. + */ template < typename handler_type > void execute(operation_type *op, handler_type &handle_operations, bool long_life_time = true) { operation_type *res; - // op->status should be read before inserting the operation in the - // aggregator queue since it can become invalid after executing a + // op->status should be read before inserting the operation into the + // aggregator waitlist since it can become invalid after executing a // handler (if the operation has 'short' life time.) const uintptr_t status = op->status; @@ -76,7 +80,7 @@ public: call_itt_notify(releasing, &(op->status)); // insert the operation in the queue. do { - // ITT may flag the following line as a race; it is a false positive: + // Tools may flag the following line as a race; it is a false positive: // This is an atomic read; we don't provide itt_hide_load_word for atomics op->next = res = pending_operations; // NOT A RACE } while (pending_operations.compare_and_swap(op, res) != res); @@ -92,7 +96,7 @@ public: } // not first; wait for op to be ready. else if (!status) { // operation is blocking here. - __TBB_ASSERT(long_life_time, "The blocking operation cannot have 'short' life time. Since it can already be destroyed."); + __TBB_ASSERT(long_life_time, "Waiting for an operation object that might be destroyed during processing."); call_itt_notify(prepare, &(op->status)); spin_wait_while_eq(op->status, uintptr_t(0)); itt_load_word_with_acquire(op->status); diff --git a/lib/3rdParty/tbb/include/tbb/internal/_concurrent_queue_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_concurrent_queue_impl.h index fc99409..a99a68f 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_concurrent_queue_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_concurrent_queue_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__concurrent_queue_impl_H @@ -33,7 +33,7 @@ #include "../tbb_exception.h" #include "../tbb_profiling.h" #include -#include +#include __TBB_STD_SWAP_HEADER #if !TBB_USE_EXCEPTIONS && _MSC_VER // Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers @@ -281,15 +281,15 @@ bool micro_queue::pop( void* dst, ticket k, concurrent_queue_base_v3& base call_itt_notify(acquired, &head_counter); if( tail_counter==k ) spin_wait_while_eq( tail_counter, k ); call_itt_notify(acquired, &tail_counter); - page& p = *head_page; - __TBB_ASSERT( &p, NULL ); + page *p = head_page; + __TBB_ASSERT( p, NULL ); size_t index = modulo_power_of_two( k/concurrent_queue_rep_base::n_queue, base.my_rep->items_per_page ); bool success = false; { - micro_queue_pop_finalizer finalizer( *this, base, k+concurrent_queue_rep_base::n_queue, index==base.my_rep->items_per_page-1 ? &p : NULL ); - if( p.mask & uintptr_t(1)< finalizer( *this, base, k+concurrent_queue_rep_base::n_queue, index==base.my_rep->items_per_page-1 ? p : NULL ); + if( p->mask & uintptr_t(1)<n_invalid_entries; } @@ -450,13 +450,13 @@ private: typedef typename micro_queue::padded_page padded_page; typedef typename micro_queue::item_constructor_t item_constructor_t; - /* override */ virtual page *allocate_page() { + virtual page *allocate_page() __TBB_override { concurrent_queue_rep& r = *my_rep; size_t n = sizeof(padded_page) + (r.items_per_page-1)*sizeof(T); return reinterpret_cast(allocate_block ( n )); } - /* override */ virtual void deallocate_page( concurrent_queue_rep_base::page *p ) { + virtual void deallocate_page( concurrent_queue_rep_base::page *p ) __TBB_override { concurrent_queue_rep& r = *my_rep; size_t n = sizeof(padded_page) + (r.items_per_page-1)*sizeof(T); deallocate_block( reinterpret_cast(p), n ); @@ -471,7 +471,7 @@ private: protected: concurrent_queue_base_v3(); - /* override */ virtual ~concurrent_queue_base_v3() { + virtual ~concurrent_queue_base_v3() { #if TBB_USE_ASSERT size_t nq = my_rep->n_queue; for( size_t i=0; i& queue ) : + explicit concurrent_queue_iterator( const concurrent_queue_base_v3::type>& queue ) : concurrent_queue_iterator_base_v3::type>(queue) { } @@ -772,6 +772,8 @@ public: public: concurrent_queue_iterator() {} + /** If Value==Container::value_type, then this routine is the copy constructor. + If Value==const Container::value_type, then this routine is a conversion constructor. */ concurrent_queue_iterator( const concurrent_queue_iterator& other ) : concurrent_queue_iterator_base_v3::type>(other) {} @@ -1023,7 +1025,7 @@ public: #endif //! Construct iterator pointing to head of queue. - concurrent_queue_iterator( const concurrent_queue_base_v3& queue ) : + explicit concurrent_queue_iterator( const concurrent_queue_base_v3& queue ) : concurrent_queue_iterator_base_v3(queue,__TBB_offsetof(concurrent_queue_base_v3::padded_page,last)) { } diff --git a/lib/3rdParty/tbb/include/tbb/internal/_concurrent_unordered_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_concurrent_unordered_impl.h index 21f2ae6..b34bc16 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_concurrent_unordered_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_concurrent_unordered_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ /* Container implementations in this header are based on PPL implementations @@ -40,7 +40,7 @@ #include // Need std::equal_to (in ../concurrent_unordered_*.h) #include // For tbb_hasher #include // Need std::memset -#include // Need std::swap +#include __TBB_STD_SWAP_HEADER #if !TBB_USE_EXCEPTIONS && _MSC_VER #pragma warning (pop) @@ -269,7 +269,8 @@ public: // Allocate a new node with the given order key and value template - nodeptr_t create_node(sokey_t order_key, __TBB_FORWARDING_REF(Arg) t){ + nodeptr_t create_node(sokey_t order_key, __TBB_FORWARDING_REF(Arg) t, + /*AllowCreate=*/tbb::internal::true_type=tbb::internal::true_type()){ nodeptr_t pnode = my_node_allocator.allocate(1); //TODO: use RAII scoped guard instead of explicit catch @@ -284,6 +285,14 @@ public: return (pnode); } + // A helper to avoid excessive requiremens in internal_insert + template + nodeptr_t create_node(sokey_t, __TBB_FORWARDING_REF(Arg), + /*AllowCreate=*/tbb::internal::false_type){ + __TBB_ASSERT(false, "This compile-time helper should never get called"); + return nodeptr_t(); + } + // Allocate a new node with the given parameters for constructing value template nodeptr_t create_node_v( __TBB_FORWARDING_REF(Args) __TBB_PARAMETER_PACK args){ @@ -659,7 +668,6 @@ protected: typedef typename Traits::value_type value_type; typedef typename Traits::key_type key_type; typedef typename Traits::hash_compare hash_compare; - typedef typename Traits::value_compare value_compare; typedef typename Traits::allocator_type allocator_type; typedef typename hash_compare::hasher hasher; typedef typename hash_compare::key_equal key_equal; @@ -708,7 +716,7 @@ protected: my_allocator(a), my_maximum_bucket_size((float) initial_bucket_load) { if( n_of_buckets == 0) ++n_of_buckets; - my_number_of_buckets = 1<<__TBB_Log2((uintptr_t)n_of_buckets*2-1); // round up to power of 2 + my_number_of_buckets = size_type(1)<<__TBB_Log2((uintptr_t)n_of_buckets*2-1); // round up to power of 2 internal_init(); } @@ -958,7 +966,7 @@ public: // Modifiers std::pair insert(const value_type& value) { - return internal_insert(value); + return internal_insert(value); } iterator insert(const_iterator, const value_type& value) { @@ -968,7 +976,7 @@ public: #if __TBB_CPP11_RVALUE_REF_PRESENT std::pair insert(value_type&& value) { - return internal_insert(std::move(value)); + return internal_insert(std::move(value)); } iterator insert(const_iterator, value_type&& value) { @@ -984,7 +992,7 @@ public: const sokey_t order_key = split_order_key_regular(hashed_element_key); pnode->init(order_key); - return internal_insert(pnode->my_element, pnode); + return internal_insert(pnode->my_element, pnode); } template @@ -1194,7 +1202,7 @@ public: size_type current_buckets = my_number_of_buckets; if (current_buckets >= buckets) return; - my_number_of_buckets = 1<<__TBB_Log2((uintptr_t)buckets*2-1); // round up to power of 2 + my_number_of_buckets = size_type(1)<<__TBB_Log2((uintptr_t)buckets*2-1); // round up to power of 2 } private: @@ -1260,40 +1268,34 @@ private: } // Insert an element in the hash given its value - template< typename ValueType> - std::pair internal_insert( __TBB_FORWARDING_REF(ValueType) value, nodeptr_t pnode = NULL) + template + std::pair internal_insert(__TBB_FORWARDING_REF(ValueType) value, nodeptr_t pnode = NULL) { - sokey_t order_key = (sokey_t) my_hash_compare(get_key(value)); - size_type bucket = order_key % my_number_of_buckets; - - //TODO:refactor the get_bucket related stuff into separate function something like acquire_bucket(key_type) - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - + const key_type *pkey = &get_key(value); + sokey_t hash_key = (sokey_t) my_hash_compare(*pkey); size_type new_count = 0; - order_key = split_order_key_regular(order_key); - raw_iterator it = get_bucket(bucket); + sokey_t order_key = split_order_key_regular(hash_key); + raw_iterator previous = prepare_bucket(hash_key); raw_iterator last = my_solist.raw_end(); - raw_iterator where = it; - - __TBB_ASSERT(where != last, "Invalid head node"); + __TBB_ASSERT(previous != last, "Invalid head node"); // First node is a dummy node - ++where; - - for (;;) + for (raw_iterator where = previous;;) { + ++where; if (where == last || solist_t::get_order_key(where) > order_key || - // if multimapped, stop at the first item equal to us. - (allow_multimapping && solist_t::get_order_key(where) == order_key && - !my_hash_compare(get_key(*where), get_key(value)))) + // if multimapped, stop at the first item equal to us. + (allow_multimapping && solist_t::get_order_key(where) == order_key && + !my_hash_compare(get_key(*where), *pkey))) // TODO: fix negation { - if (!pnode) - pnode = my_solist.create_node(order_key, tbb::internal::forward(value)); + if (!pnode) { + pnode = my_solist.create_node(order_key, tbb::internal::forward(value), AllowCreate()); + // If the value was moved, the known reference to key might be invalid + pkey = &get_key(pnode->my_element); + } - // Try to insert 'pnode' between 'it' and 'where' - std::pair result = my_solist.try_insert(it, where, pnode, &new_count); + // Try to insert 'pnode' between 'previous' and 'where' + std::pair result = my_solist.try_insert(previous, where, pnode, &new_count); if (result.second) { @@ -1308,38 +1310,30 @@ private: // Proceed with the search from the previous location where order key was // known to be larger (note: this is legal only because there is no safe // concurrent erase operation supported). - where = it; - ++where; + where = previous; continue; } } else if (!allow_multimapping && solist_t::get_order_key(where) == order_key && - my_hash_compare(get_key(*where), get_key(value)) == 0) + !my_hash_compare(get_key(*where), *pkey)) // TODO: fix negation { // Element already in the list, return it if (pnode) my_solist.destroy_node(pnode); return std::pair(my_solist.get_iterator(where), false); } // Move the iterator forward - it = where; - ++where; + previous = where; } } // Find the element in the split-ordered list iterator internal_find(const key_type& key) { - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - order_key = split_order_key_regular(order_key); + sokey_t hash_key = (sokey_t) my_hash_compare(key); + sokey_t order_key = split_order_key_regular(hash_key); raw_iterator last = my_solist.raw_end(); - for (raw_iterator it = get_bucket(bucket); it != last; ++it) + for (raw_iterator it = prepare_bucket(hash_key); it != last; ++it) { if (solist_t::get_order_key(it) > order_key) { @@ -1352,7 +1346,7 @@ private: // The fact that order keys match does not mean that the element is found. // Key function comparison has to be performed to check whether this is the // right element. If not, keep searching while order key is the same. - if (!my_hash_compare(get_key(*it), key)) + if (!my_hash_compare(get_key(*it), key)) // TODO: fix negation return my_solist.get_iterator(it); } } @@ -1363,35 +1357,18 @@ private: // Erase an element from the list. This is not a concurrency safe function. iterator internal_erase(const_iterator it) { - //const reference extends lifetime of possible temporary coming from get_key - const key_type& key = get_key(*it); - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - order_key = split_order_key_regular(order_key); - - raw_iterator previous = get_bucket(bucket); + sokey_t hash_key = (sokey_t) my_hash_compare(get_key(*it)); + raw_iterator previous = prepare_bucket(hash_key); raw_iterator last = my_solist.raw_end(); - raw_iterator where = previous; - - __TBB_ASSERT(where != last, "Invalid head node"); + __TBB_ASSERT(previous != last, "Invalid head node"); // First node is a dummy node - ++where; - - for (;;) { + for (raw_iterator where = previous; ; previous = where) { + ++where; if (where == last) return end(); else if (my_solist.get_iterator(where) == it) return my_solist.erase_node(previous, it); - - // Move the iterator forward - previous = where; - ++where; } } @@ -1399,24 +1376,19 @@ private: // This operation makes sense only if mapping is many-to-one. pairii_t internal_equal_range(const key_type& key) { - sokey_t order_key = (sokey_t) my_hash_compare(key); - size_type bucket = order_key % my_number_of_buckets; - - // If bucket is empty, initialize it first - if (!is_initialized(bucket)) - init_bucket(bucket); - - order_key = split_order_key_regular(order_key); + sokey_t hash_key = (sokey_t) my_hash_compare(key); + sokey_t order_key = split_order_key_regular(hash_key); raw_iterator end_it = my_solist.raw_end(); - for (raw_iterator it = get_bucket(bucket); it != end_it; ++it) + for (raw_iterator it = prepare_bucket(hash_key); it != end_it; ++it) { if (solist_t::get_order_key(it) > order_key) { // There is no element with the given key return pairii_t(end(), end()); } - else if (solist_t::get_order_key(it) == order_key && !my_hash_compare(get_key(*it), key)) + else if (solist_t::get_order_key(it) == order_key && + !my_hash_compare(get_key(*it), key)) // TODO: fix negation; also below { iterator first = my_solist.get_iterator(it); iterator last = first; @@ -1490,6 +1462,15 @@ private: return my_buckets[segment][bucket]; } + raw_iterator prepare_bucket(sokey_t hash_key) { + size_type bucket = hash_key % my_number_of_buckets; + size_type segment = segment_index_of(bucket); + size_type index = bucket - segment_base(segment); + if (my_buckets[segment] == NULL || my_buckets[segment][index].get_node_ptr() == NULL) + init_bucket(bucket); + return my_buckets[segment][index]; + } + void set_bucket(size_type bucket, raw_iterator dummy_head) { size_type segment = segment_index_of(bucket); bucket -= segment_base(segment); diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_async_msg_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_async_msg_impl.h new file mode 100644 index 0000000..7d2c3ae --- /dev/null +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_async_msg_impl.h @@ -0,0 +1,221 @@ +/* + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +*/ + +#ifndef __TBB__flow_graph_async_msg_impl_H +#define __TBB__flow_graph_async_msg_impl_H + +#ifndef __TBB_flow_graph_H +#error Do not #include this internal file directly; use public TBB headers instead. +#endif + +// included in namespace tbb::flow::interfaceX (in flow_graph.h) + +template< typename T > class async_msg; + +namespace internal { + +template< typename T, typename = void > +struct async_helpers { + typedef async_msg async_type; + typedef T filtered_type; + + static const bool is_async_type = false; + + static const void* to_void_ptr(const T& t) { + return static_cast(&t); + } + + static void* to_void_ptr(T& t) { + return static_cast(&t); + } + + static const T& from_void_ptr(const void* p) { + return *static_cast(p); + } + + static T& from_void_ptr(void* p) { + return *static_cast(p); + } + + static task* try_put_task_wrapper_impl( receiver* const this_recv, const void *p, bool is_async ) { + if ( is_async ) { + // This (T) is NOT async and incoming 'A t' IS async + // Get data from async_msg + const async_msg& msg = async_helpers< async_msg >::from_void_ptr(p); + task* const new_task = msg.my_storage->subscribe(*this_recv); + // finalize() must be called after subscribe() because set() can be called in finalize() + // and 'this_recv' client must be subscribed by this moment + msg.finalize(); + return new_task; + } else { + // Incoming 't' is NOT async + return this_recv->try_put_task( from_void_ptr(p) ); + } + } +}; + +template< typename T > +struct async_helpers< T, typename std::enable_if< std::is_base_of, T>::value >::type > { + typedef T async_type; + typedef typename T::async_msg_data_type filtered_type; + + static const bool is_async_type = true; + + // Receiver-classes use const interfaces + static const void* to_void_ptr(const T& t) { + return static_cast( &static_cast&>(t) ); + } + + static void* to_void_ptr(T& t) { + return static_cast( &static_cast&>(t) ); + } + + // Sender-classes use non-const interfaces + static const T& from_void_ptr(const void* p) { + return *static_cast( static_cast*>(p) ); + } + + static T& from_void_ptr(void* p) { + return *static_cast( static_cast*>(p) ); + } + + // Used in receiver class + static task* try_put_task_wrapper_impl(receiver* const this_recv, const void *p, bool is_async) { + if ( is_async ) { + // Both are async + return this_recv->try_put_task( from_void_ptr(p) ); + } else { + // This (T) is async and incoming 'X t' is NOT async + // Create async_msg for X + const filtered_type& t = async_helpers::from_void_ptr(p); + const T msg(t); + return this_recv->try_put_task(msg); + } + } +}; + +template +class async_storage { +public: + typedef receiver async_storage_client; + + async_storage() { my_data_ready.store(false); } + + template + async_storage(C&& data) : my_data( std::forward(data) ) { + using namespace tbb::internal; + __TBB_STATIC_ASSERT( (is_same_type::type, typename strip::type>::value), "incoming type must be T" ); + + my_data_ready.store(true); + } + + template + bool set(C&& data) { + using namespace tbb::internal; + __TBB_STATIC_ASSERT( (is_same_type::type, typename strip::type>::value), "incoming type must be T" ); + + { + tbb::spin_mutex::scoped_lock locker(my_mutex); + + if (my_data_ready.load()) { + __TBB_ASSERT(false, "double set() call"); + return false; + } + + my_data = std::forward(data); + my_data_ready.store(true); + } + + // Thread sync is on my_data_ready flag + for (typename subscriber_list_type::iterator it = my_clients.begin(); it != my_clients.end(); ++it) { + (*it)->try_put(my_data); + } + + return true; + } + + task* subscribe(async_storage_client& client) { + if (! my_data_ready.load()) + { + tbb::spin_mutex::scoped_lock locker(my_mutex); + + if (! my_data_ready.load()) { +#if TBB_USE_ASSERT + for (typename subscriber_list_type::iterator it = my_clients.begin(); it != my_clients.end(); ++it) { + __TBB_ASSERT(*it != &client, "unexpected double subscription"); + } +#endif // TBB_USE_ASSERT + + // Subscribe + my_clients.push_back(&client); + return SUCCESSFULLY_ENQUEUED; + } + } + + __TBB_ASSERT(my_data_ready.load(), "data is NOT ready"); + return client.try_put_task(my_data); + } + +private: + tbb::spin_mutex my_mutex; + + tbb::atomic my_data_ready; + T my_data; + + typedef std::vector subscriber_list_type; + subscriber_list_type my_clients; +}; + +} // namespace internal + +template +class async_msg { + template< typename > friend class receiver; + template< typename, typename > friend struct internal::async_helpers; +public: + typedef T async_msg_data_type; + + async_msg() : my_storage(std::make_shared< internal::async_storage >()) {} + + async_msg(const T& t) : my_storage(std::make_shared< internal::async_storage >(t)) {} + + async_msg(T&& t) : my_storage(std::make_shared< internal::async_storage >( std::move(t) )) {} + + virtual ~async_msg() {} + + void set(const T& t) { + my_storage->set(t); + } + + void set(T&& t) { + my_storage->set( std::move(t) ); + } + +protected: + // Can be overridden in derived class to inform that + // async calculation chain is over + virtual void finalize() const {} + +private: + typedef std::shared_ptr< internal::async_storage > async_storage_ptr; + async_storage_ptr my_storage; +}; + +#endif // __TBB__flow_graph_async_msg_impl_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_impl.h index 665efc5..92278ca 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__flow_graph_impl_H @@ -69,8 +69,8 @@ namespace internal { class source_body_leaf : public source_body { public: source_body_leaf( const Body &_body ) : body(_body) { } - /*override*/ bool operator()(Output &output) { return body( output ); } - /*override*/ source_body_leaf* clone() { + bool operator()(Output &output) __TBB_override { return body( output ); } + source_body_leaf* clone() __TBB_override { return new source_body_leaf< Output, Body >(body); } Body get_body() { return body; } @@ -92,9 +92,9 @@ namespace internal { class function_body_leaf : public function_body< Input, Output > { public: function_body_leaf( const B &_body ) : body(_body) { } - Output operator()(const Input &i) { return body(i); } + Output operator()(const Input &i) __TBB_override { return body(i); } B get_body() { return body; } - /*override*/ function_body_leaf* clone() { + function_body_leaf* clone() __TBB_override { return new function_body_leaf< Input, Output, B >(body); } private: @@ -106,12 +106,12 @@ namespace internal { class function_body_leaf< continue_msg, continue_msg, B> : public function_body< continue_msg, continue_msg > { public: function_body_leaf( const B &_body ) : body(_body) { } - continue_msg operator()( const continue_msg &i ) { + continue_msg operator()( const continue_msg &i ) __TBB_override { body(i); return i; } B get_body() { return body; } - /*override*/ function_body_leaf* clone() { + function_body_leaf* clone() __TBB_override { return new function_body_leaf< continue_msg, continue_msg, B >(body); } private: @@ -123,12 +123,12 @@ namespace internal { class function_body_leaf< Input, continue_msg, B> : public function_body< Input, continue_msg > { public: function_body_leaf( const B &_body ) : body(_body) { } - continue_msg operator()(const Input &i) { + continue_msg operator()(const Input &i) __TBB_override { body(i); return continue_msg(); } B get_body() { return body; } - /*override*/ function_body_leaf* clone() { + function_body_leaf* clone() __TBB_override { return new function_body_leaf< Input, continue_msg, B >(body); } private: @@ -140,26 +140,17 @@ namespace internal { class function_body_leaf< continue_msg, Output, B > : public function_body< continue_msg, Output > { public: function_body_leaf( const B &_body ) : body(_body) { } - Output operator()(const continue_msg &i) { + Output operator()(const continue_msg &i) __TBB_override { return body(i); } B get_body() { return body; } - /*override*/ function_body_leaf* clone() { + function_body_leaf* clone() __TBB_override { return new function_body_leaf< continue_msg, Output, B >(body); } private: B body; }; -#if __TBB_PREVIEW_ASYNC_NODE -template< typename T, typename = typename T::async_gateway_type > -void set_async_gateway(T *body, void *g) { - body->set_async_gateway(static_cast(g)); -} - -inline void set_async_gateway(...) { } -#endif - //! function_body that takes an Input and a set of output ports template class multifunction_body : tbb::internal::no_assign { @@ -167,9 +158,7 @@ inline void set_async_gateway(...) { } virtual ~multifunction_body () {} virtual void operator()(const Input &/* input*/, OutputSet &/*oset*/) = 0; virtual multifunction_body* clone() = 0; -#if __TBB_PREVIEW_ASYNC_NODE - virtual void set_gateway(void *gateway) = 0; -#endif + virtual void* get_body_ptr() = 0; }; //! leaf for multifunction. OutputSet can be a std::tuple or a vector. @@ -177,17 +166,11 @@ inline void set_async_gateway(...) { } class multifunction_body_leaf : public multifunction_body { public: multifunction_body_leaf(const B &_body) : body(_body) { } - void operator()(const Input &input, OutputSet &oset) { + void operator()(const Input &input, OutputSet &oset) __TBB_override { body(input, oset); // body may explicitly put() to one or more of oset. } - B get_body() { return body; } - -#if __TBB_PREVIEW_ASYNC_NODE - /*override*/ void set_gateway(void *gateway) { - set_async_gateway(&body, gateway); - } -#endif - /*override*/ multifunction_body_leaf* clone() { + void* get_body_ptr() __TBB_override { return &body; } + multifunction_body_leaf* clone() __TBB_override { return new multifunction_body_leaf(body); } @@ -218,9 +201,9 @@ template class type_to_key_function_body_leaf : public type_to_key_function_body { public: type_to_key_function_body_leaf( const B &_body ) : body(_body) { } - /*override*/Output operator()(const Input &i) { return body(i); } + Output operator()(const Input &i) __TBB_override { return body(i); } B get_body() { return body; } - /*override*/ type_to_key_function_body_leaf* clone() { + type_to_key_function_body_leaf* clone() __TBB_override { return new type_to_key_function_body_leaf< Input, Output, B>(body); } private: @@ -231,17 +214,13 @@ template class type_to_key_function_body_leaf : public type_to_key_function_body< Input, Output&> { public: type_to_key_function_body_leaf( const B &_body ) : body(_body) { } - - /*override*/const Output& operator()(const Input &i) { + const Output& operator()(const Input &i) __TBB_override { return body(i); } - B get_body() { return body; } - - /*override*/ type_to_key_function_body_leaf* clone() { + type_to_key_function_body_leaf* clone() __TBB_override { return new type_to_key_function_body_leaf< Input, Output&, B>(body); } - private: B body; }; @@ -260,7 +239,7 @@ private: forward_task_bypass( NodeType &n ) : my_node(n) {} - task *execute() { + task *execute() __TBB_override { task * new_task = my_node.forward_task(); if (new_task == SUCCESSFULLY_ENQUEUED) new_task = NULL; return new_task; @@ -279,7 +258,7 @@ private: apply_body_task_bypass( NodeType &n, const Input &i ) : my_node(n), my_input(i) {} - task *execute() { + task *execute() __TBB_override { task * next_task = my_node.apply_body_bypass( my_input ); if(next_task == SUCCESSFULLY_ENQUEUED) next_task = NULL; return next_task; @@ -296,7 +275,7 @@ private: source_task_bypass( NodeType &n ) : my_node(n) {} - task *execute() { + task *execute() __TBB_override { task *new_task = my_node.apply_body_bypass( ); if(new_task == SUCCESSFULLY_ENQUEUED) return NULL; return new_task; @@ -405,12 +384,22 @@ private: //! A cache of predecessors that only supports try_get template< typename T, typename M=spin_mutex > +#if __TBB_PREVIEW_ASYNC_MSG + // TODO: make predecessor_cache type T-independent when async_msg becomes regular feature + class predecessor_cache : public node_cache< untyped_sender, M > { +#else class predecessor_cache : public node_cache< sender, M > { +#endif // __TBB_PREVIEW_ASYNC_MSG public: typedef M mutex_type; typedef T output_type; +#if __TBB_PREVIEW_ASYNC_MSG + typedef untyped_sender predecessor_type; + typedef untyped_receiver successor_type; +#else typedef sender predecessor_type; typedef receiver successor_type; +#endif // __TBB_PREVIEW_ASYNC_MSG predecessor_cache( ) : my_owner( NULL ) { } @@ -462,19 +451,25 @@ private: protected: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - using node_cache< sender, M >::my_built_predecessors; + using node_cache< predecessor_type, M >::my_built_predecessors; #endif successor_type *my_owner; }; //! An cache of predecessors that supports requests and reservations + // TODO: make reservable_predecessor_cache type T-independent when async_msg becomes regular feature template< typename T, typename M=spin_mutex > class reservable_predecessor_cache : public predecessor_cache< T, M > { public: typedef M mutex_type; typedef T output_type; +#if __TBB_PREVIEW_ASYNC_MSG + typedef untyped_sender predecessor_type; + typedef untyped_receiver successor_type; +#else typedef sender predecessor_type; typedef receiver successor_type; +#endif // __TBB_PREVIEW_ASYNC_MSG reservable_predecessor_cache( ) : reserved_src(NULL) { } @@ -538,6 +533,7 @@ private: //! An abstract cache of successors + // TODO: make successor_cache type T-independent when async_msg becomes regular feature template class successor_cache : tbb::internal::no_copy { protected: @@ -545,15 +541,22 @@ private: typedef M mutex_type; mutex_type my_mutex; +#if __TBB_PREVIEW_ASYNC_MSG + typedef untyped_receiver successor_type; + typedef untyped_receiver *pointer_type; + typedef untyped_sender owner_type; +#else typedef receiver successor_type; typedef receiver *pointer_type; + typedef sender owner_type; +#endif // __TBB_PREVIEW_ASYNC_MSG typedef std::list< pointer_type > successors_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES edge_container my_built_successors; #endif successors_type my_successors; - sender *my_owner; + owner_type *my_owner; public: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -585,7 +588,7 @@ private: successor_cache( ) : my_owner(NULL) {} - void set_owner( sender *owner ) { my_owner = owner; } + void set_owner( owner_type *owner ) { my_owner = owner; } virtual ~successor_cache() {} @@ -617,7 +620,9 @@ private: #endif } +#if !__TBB_PREVIEW_ASYNC_MSG virtual task * try_put_task( const T &t ) = 0; +#endif // __TBB_PREVIEW_ASYNC_MSG }; // successor_cache //! An abstract cache of successors, specialized to continue_msg @@ -628,8 +633,13 @@ private: typedef spin_rw_mutex mutex_type; mutex_type my_mutex; +#if __TBB_PREVIEW_ASYNC_MSG + typedef untyped_receiver successor_type; + typedef untyped_receiver *pointer_type; +#else typedef receiver successor_type; typedef receiver *pointer_type; +#endif // __TBB_PREVIEW_ASYNC_MSG typedef std::list< pointer_type > successors_type; successors_type my_successors; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -708,11 +718,14 @@ private: #endif } +#if !__TBB_PREVIEW_ASYNC_MSG virtual task * try_put_task( const continue_msg &t ) = 0; +#endif // __TBB_PREVIEW_ASYNC_MSG }; // successor_cache< continue_msg > //! A cache of successors that are broadcast to + // TODO: make broadcast_cache type T-independent when async_msg becomes regular feature template class broadcast_cache : public successor_cache { typedef M mutex_type; @@ -723,7 +736,12 @@ private: broadcast_cache( ) {} // as above, but call try_put_task instead, and return the last task we received (if any) - /*override*/ task * try_put_task( const T &t ) { +#if __TBB_PREVIEW_ASYNC_MSG + template + task * try_put_task( const X &t ) { +#else + task * try_put_task( const T &t ) __TBB_override { +#endif // __TBB_PREVIEW_ASYNC_MSG task * last_task = NULL; bool upgraded = true; typename mutex_type::scoped_lock l(this->my_mutex, upgraded); @@ -752,6 +770,7 @@ private: }; //! A cache of successors that are put in a round-robin fashion + // TODO: make round_robin_cache type T-independent when async_msg becomes regular feature template class round_robin_cache : public successor_cache { typedef size_t size_type; @@ -767,7 +786,12 @@ private: return this->my_successors.size(); } - /*override*/task *try_put_task( const T &t ) { +#if __TBB_PREVIEW_ASYNC_MSG + template + task * try_put_task( const X &t ) { +#else + task *try_put_task( const T &t ) __TBB_override { +#endif // __TBB_PREVIEW_ASYNC_MSG bool upgraded = true; typename mutex_type::scoped_lock l(this->my_mutex, upgraded); typename successors_type::iterator i = this->my_successors.begin(); @@ -797,7 +821,7 @@ private: T *my_node; - task *execute() { + task *execute() __TBB_override { return my_node->decrement_counter(); } diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_indexer_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_indexer_impl.h index ee2bef8..1fc6690 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_indexer_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_indexer_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__flow_graph_indexer_impl_H @@ -25,7 +25,7 @@ #error Do not #include this internal file directly; use public TBB headers instead. #endif -#include "tbb/internal/_flow_graph_types_impl.h" +#include "_flow_graph_types_impl.h" namespace internal { @@ -106,43 +106,40 @@ namespace internal { } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::predecessor_list_type predecessor_list_type; + typedef typename receiver::predecessor_type predecessor_type; - /*override*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } - /*override*/size_t predecessor_count() { + size_t predecessor_count() __TBB_override { spin_mutex::scoped_lock l(my_pred_mutex); return my_built_predecessors.edge_count(); } - /*override*/void internal_add_built_predecessor(sender &p) { + void internal_add_built_predecessor(predecessor_type &p) __TBB_override { spin_mutex::scoped_lock l(my_pred_mutex); my_built_predecessors.add_edge(p); } - /*override*/void internal_delete_built_predecessor(sender &p) { + void internal_delete_built_predecessor(predecessor_type &p) __TBB_override { spin_mutex::scoped_lock l(my_pred_mutex); my_built_predecessors.delete_edge(p); } - /*override*/void copy_predecessors( predecessor_list_type &v) { + void copy_predecessors( predecessor_list_type &v) __TBB_override { spin_mutex::scoped_lock l(my_pred_mutex); - return my_built_predecessors.copy_edges(v); - } - /*override*/void clear_predecessors() { - spin_mutex::scoped_lock l(my_pred_mutex); - my_built_predecessors.clear(); + my_built_predecessors.copy_edges(v); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ protected: template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; - task *try_put_task(const T &v) { + task *try_put_task(const T &v) __TBB_override { return my_try_put_task(v, my_indexer_ptr); } public: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void reset_receiver(reset_flags f) { if(f&rf_clear_edges) my_built_predecessors.clear(); } + void reset_receiver(reset_flags f) __TBB_override { if(f&rf_clear_edges) my_built_predecessors.clear(); } #else - /*override*/void reset_receiver(reset_flags /*f*/) { } + void reset_receiver(reset_flags /*f*/) __TBB_override { } #endif #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -175,7 +172,7 @@ namespace internal { static const size_t N = tbb::flow::tuple_size::value; typedef OutputType output_type; typedef StructTypes tuple_types; - typedef receiver successor_type; + typedef typename sender::successor_type successor_type; typedef indexer_node_FE input_ports_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename sender::built_successors_type built_successors_type; @@ -190,7 +187,6 @@ namespace internal { blt_succ_cnt, blt_succ_cpy #endif }; - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; typedef indexer_node_base class_type; class indexer_node_base_operation : public aggregated_operation { @@ -272,19 +268,19 @@ namespace internal { my_aggregator.initialize_handler(handler_type(this)); } - bool register_successor(successor_type &r) { + bool register_successor(successor_type &r) __TBB_override { indexer_node_base_operation op_data(r, reg_succ); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; } - bool remove_successor( successor_type &r) { + bool remove_successor( successor_type &r) __TBB_override { indexer_node_base_operation op_data(r, rem_succ); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; } - task * try_put_task(output_type const *v) { + task * try_put_task(output_type const *v) { // not a virtual method in this class indexer_node_base_operation op_data(v, try__put_task); my_aggregator.execute(&op_data); return op_data.bypass_t; @@ -292,36 +288,36 @@ namespace internal { #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - built_successors_type &built_successors() { return my_successors.built_successors(); } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } - void internal_add_built_successor( successor_type &r) { + void internal_add_built_successor( successor_type &r) __TBB_override { indexer_node_base_operation op_data(r, add_blt_succ); my_aggregator.execute(&op_data); } - void internal_delete_built_successor( successor_type &r) { + void internal_delete_built_successor( successor_type &r) __TBB_override { indexer_node_base_operation op_data(r, del_blt_succ); my_aggregator.execute(&op_data); } - size_t successor_count() { + size_t successor_count() __TBB_override { indexer_node_base_operation op_data(blt_succ_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - void copy_successors( successor_list_type &v) { + void copy_successors( successor_list_type &v) __TBB_override { indexer_node_base_operation op_data(blt_succ_cpy); op_data.succv = &v; my_aggregator.execute(&op_data); } - void extract() { + void extract() __TBB_override { my_successors.built_successors().sender_extract(*this); indexer_helper::extract(this->my_inputs); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ protected: - /*override*/void reset_node(reset_flags f) { + void reset_node(reset_flags f) __TBB_override { if(f & rf_clear_edges) { my_successors.clear(); indexer_helper::reset_inputs(this->my_inputs,f); diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_item_buffer_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_item_buffer_impl.h index 08b2ffc..85d2686 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_item_buffer_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_item_buffer_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__flow_graph_item_buffer_impl_H @@ -56,7 +56,7 @@ namespace internal { size_type my_head; size_type my_tail; - bool buffer_empty() { return my_head == my_tail; } + bool buffer_empty() const { return my_head == my_tail; } buffer_item_type &item(size_type i) { __TBB_ASSERT(!(size_type(&(my_array[i&(my_array_size-1)].second))%alignment_of::value),NULL); @@ -64,11 +64,17 @@ namespace internal { return my_array[i & (my_array_size - 1) ]; } - bool my_item_valid(size_type i) { return (i < my_tail) && (i >= my_head) && (item(i).second != no_item); } - bool my_item_reserved(size_type i) { return item(i).second == reserved_item; } + const buffer_item_type &item(size_type i) const { + __TBB_ASSERT(!(size_type(&(my_array[i&(my_array_size-1)].second))%alignment_of::value), NULL); + __TBB_ASSERT(!(size_type(&(my_array[i&(my_array_size-1)].first))%alignment_of::value), NULL); + return my_array[i & (my_array_size-1)]; + } + + bool my_item_valid(size_type i) const { return (i < my_tail) && (i >= my_head) && (item(i).second != no_item); } + bool my_item_reserved(size_type i) const { return item(i).second == reserved_item; } // object management in buffer - const item_type &get_my_item(size_t i) { + const item_type &get_my_item(size_t i) const { __TBB_ASSERT(my_item_valid(i),"attempt to get invalid item"); item_type *itm = (tbb::internal::punned_cast(&(item(i).first))); return *(const item_type *)itm; @@ -124,15 +130,18 @@ namespace internal { item(i).second = no_item; } - // returns a copy of the front - void copy_front(item_type &v) { + // returns the front element + const item_type& front() const + { __TBB_ASSERT(my_item_valid(my_head), "attempt to fetch head non-item"); - v = get_my_item(my_head); + return get_my_item(my_head); } - // returns a copy of the back - void copy_back(item_type &v) { - __TBB_ASSERT(my_item_valid(my_tail-1), "attempt to fetch head non-item"); - v = get_my_item(my_tail-1); + + // returns the back element + const item_type& back() const + { + __TBB_ASSERT(my_item_valid(my_tail - 1), "attempt to fetch head non-item"); + return get_my_item(my_tail - 1); } // following methods are for reservation of the front of a bufffer. @@ -191,7 +200,7 @@ namespace internal { if (!my_item_valid(my_tail-1)) { return false; } - copy_back(v); + v = this->back(); destroy_back(); return true; } @@ -200,7 +209,7 @@ namespace internal { if(!my_item_valid(my_head)) { return false; } - copy_front(v); + v = this->front(); destroy_front(); return true; } @@ -251,10 +260,10 @@ namespace internal { protected: bool reserve_front(T &v) { - if(my_reserved || !my_item_valid(my_head)) return false; + if(my_reserved || !my_item_valid(this->my_head)) return false; my_reserved = true; // reserving the head - this->copy_front(v); + v = this->front(); this->reserve_item(this->my_head); return true; } diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_join_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_join_impl.h index da7495a..4999bef 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_join_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_join_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__flow_graph_join_impl_H @@ -213,7 +213,7 @@ namespace internal { class reserving_port : public receiver { public: typedef T input_type; - typedef sender predecessor_type; + typedef typename receiver::predecessor_type predecessor_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::predecessor_list_type predecessor_list_type; typedef typename receiver::built_predecessors_type built_predecessors_type; @@ -320,7 +320,7 @@ namespace internal { template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; - task *try_put_task( const T & ) { + task *try_put_task( const T & ) __TBB_override { return NULL; } @@ -346,14 +346,14 @@ namespace internal { } //! Add a predecessor - bool register_predecessor( sender &src ) { + bool register_predecessor( predecessor_type &src ) __TBB_override { reserving_port_operation op_data(src, reg_pred); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; } //! Remove a predecessor - bool remove_predecessor( sender &src ) { + bool remove_predecessor( predecessor_type &src ) __TBB_override { reserving_port_operation op_data(src, rem_pred); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; @@ -379,24 +379,24 @@ namespace internal { } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/ built_predecessors_type &built_predecessors() { return my_predecessors.built_predecessors(); } - /*override*/void internal_add_built_predecessor(predecessor_type &src) { + built_predecessors_type &built_predecessors() __TBB_override { return my_predecessors.built_predecessors(); } + void internal_add_built_predecessor(predecessor_type &src) __TBB_override { reserving_port_operation op_data(src, add_blt_pred); my_aggregator.execute(&op_data); } - /*override*/void internal_delete_built_predecessor(predecessor_type &src) { + void internal_delete_built_predecessor(predecessor_type &src) __TBB_override { reserving_port_operation op_data(src, del_blt_pred); my_aggregator.execute(&op_data); } - /*override*/size_t predecessor_count() { + size_t predecessor_count() __TBB_override { reserving_port_operation op_data(blt_pred_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/void copy_predecessors(predecessor_list_type &l) { + void copy_predecessors(predecessor_list_type &l) __TBB_override { reserving_port_operation op_data(blt_pred_cpy); op_data.plist = &l; my_aggregator.execute(&op_data); @@ -408,7 +408,7 @@ namespace internal { #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ - /*override*/void reset_receiver( reset_flags f) { + void reset_receiver( reset_flags f) __TBB_override { if(f & rf_clear_edges) my_predecessors.clear(); else my_predecessors.reset(); @@ -427,7 +427,7 @@ namespace internal { class queueing_port : public receiver, public item_buffer { public: typedef T input_type; - typedef sender predecessor_type; + typedef typename receiver::predecessor_type predecessor_type; typedef queueing_port class_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename receiver::built_predecessors_type built_predecessors_type; @@ -449,7 +449,7 @@ namespace internal { T my_val; T *my_arg; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - sender *pred; + predecessor_type *pred; size_t cnt_val; predecessor_list_type *plist; #endif @@ -494,7 +494,7 @@ namespace internal { break; case get__item: if(!this->buffer_empty()) { - this->copy_front(*(current->my_arg)); + *(current->my_arg) = this->front(); __TBB_store_with_release(current->status, SUCCEEDED); } else { @@ -536,7 +536,7 @@ namespace internal { template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; - /*override*/task *try_put_task(const T &v) { + task *try_put_task(const T &v) __TBB_override { queueing_port_operation op_data(v, try__put_task); my_aggregator.execute(&op_data); __TBB_ASSERT(op_data.status == SUCCEEDED || !op_data.bypass_t, "inconsistent return from aggregator"); @@ -578,27 +578,27 @@ namespace internal { } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } - /*override*/void internal_add_built_predecessor(sender &p) { + void internal_add_built_predecessor(predecessor_type &p) __TBB_override { queueing_port_operation op_data(add_blt_pred); op_data.pred = &p; my_aggregator.execute(&op_data); } - /*override*/void internal_delete_built_predecessor(sender &p) { + void internal_delete_built_predecessor(predecessor_type &p) __TBB_override { queueing_port_operation op_data(del_blt_pred); op_data.pred = &p; my_aggregator.execute(&op_data); } - /*override*/size_t predecessor_count() { + size_t predecessor_count() __TBB_override { queueing_port_operation op_data(blt_pred_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/void copy_predecessors(predecessor_list_type &l) { + void copy_predecessors(predecessor_list_type &l) __TBB_override { queueing_port_operation op_data(blt_pred_cpy); op_data.plist = &l; my_aggregator.execute(&op_data); @@ -610,7 +610,7 @@ namespace internal { } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ - /*override*/void reset_receiver(reset_flags f) { + void reset_receiver(reset_flags f) __TBB_override { tbb::internal::suppress_unused_warning(f); item_buffer::reset(); #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -622,7 +622,7 @@ namespace internal { private: forwarding_base *my_join; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - edge_container > my_built_predecessors; + edge_container my_built_predecessors; #endif }; // queueing_port @@ -655,7 +655,7 @@ namespace internal { typedef typename TraitsType::T input_type; typedef typename TraitsType::K key_type; typedef typename tbb::internal::strip::type noref_key_type; - typedef sender predecessor_type; + typedef typename receiver::predecessor_type predecessor_type; typedef typename TraitsType::TtoK type_to_key_func_type; typedef typename TraitsType::KHash hash_compare_type; typedef hash_buffer< key_type, input_type, type_to_key_func_type, hash_compare_type > buffer_type; @@ -747,7 +747,7 @@ namespace internal { template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; template friend class internal::round_robin_cache; - /*override*/task *try_put_task(const input_type& v) { + task *try_put_task(const input_type& v) __TBB_override { key_matching_port_operation op_data(v, try__put); task *rtask = NULL; my_aggregator.execute(&op_data); @@ -790,27 +790,27 @@ namespace internal { } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/built_predecessors_type &built_predecessors() { return my_built_predecessors; } + built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; } - /*override*/void internal_add_built_predecessor(sender &p) { + void internal_add_built_predecessor(predecessor_type &p) __TBB_override { key_matching_port_operation op_data(add_blt_pred); op_data.pred = &p; my_aggregator.execute(&op_data); } - /*override*/void internal_delete_built_predecessor(sender &p) { + void internal_delete_built_predecessor(predecessor_type &p) __TBB_override { key_matching_port_operation op_data(del_blt_pred); op_data.pred = &p; my_aggregator.execute(&op_data); } - /*override*/size_t predecessor_count() { + size_t predecessor_count() __TBB_override { key_matching_port_operation op_data(blt_pred_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/void copy_predecessors(predecessor_list_type &l) { + void copy_predecessors(predecessor_list_type &l) __TBB_override { key_matching_port_operation op_data(blt_pred_cpy); op_data.plist = &l; my_aggregator.execute(&op_data); @@ -831,7 +831,7 @@ namespace internal { my_built_predecessors.receiver_extract(*this); } #endif - /*override*/void reset_receiver(reset_flags f ) { + void reset_receiver(reset_flags f ) __TBB_override { tbb::internal::suppress_unused_warning(f); buffer_type::reset(); #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -878,12 +878,12 @@ namespace internal { void set_my_node(base_node_type *new_my_node) { my_node = new_my_node; } - void increment_port_count() { + void increment_port_count() __TBB_override { ++ports_with_no_inputs; } // if all input_ports have predecessors, spawn forward to try and consume tuples - task * decrement_port_count(bool handle_task) { + task * decrement_port_count(bool handle_task) __TBB_override { if(ports_with_no_inputs.fetch_and_decrement() == 1) { if(this->graph_pointer->is_active()) { task *rtask = new ( task::allocate_additional_child_of( *(this->graph_pointer->root_task()) ) ) @@ -962,7 +962,7 @@ namespace internal { } // if all input_ports have items, spawn forward to try and consume tuples - task * decrement_port_count(bool handle_task) + task * decrement_port_count(bool handle_task) __TBB_override { if(ports_with_no_items.fetch_and_decrement() == 1) { if(this->graph_pointer->is_active()) { @@ -975,7 +975,7 @@ namespace internal { return NULL; } - void increment_port_count() { __TBB_ASSERT(false, NULL); } // should never be called + void increment_port_count() __TBB_override { __TBB_ASSERT(false, NULL); } // should never be called input_type &input_ports() { return my_inputs; } @@ -1148,7 +1148,7 @@ namespace internal { __TBB_store_with_release(current->status, FAILED); } else { - this->copy_front(*(current->my_output)); + *(current->my_output) = this->front(); __TBB_store_with_release(current->status, SUCCEEDED); } break; @@ -1188,15 +1188,15 @@ namespace internal { // if all input_ports have items, spawn forward to try and consume tuples // return a task if we are asked and did create one. - /*override*/ task *increment_key_count(unref_key_type const & t, bool handle_task) { // called from input_ports + task *increment_key_count(unref_key_type const & t, bool handle_task) __TBB_override { // called from input_ports key_matching_FE_operation op_data(t, handle_task, inc_count); my_aggregator.execute(&op_data); return op_data.bypass_t; } - /*override*/ task *decrement_port_count(bool /*handle_task*/) { __TBB_ASSERT(false, NULL); return NULL; } + task *decrement_port_count(bool /*handle_task*/) __TBB_override { __TBB_ASSERT(false, NULL); return NULL; } - void increment_port_count() { __TBB_ASSERT(false, NULL); } // should never be called + void increment_port_count() __TBB_override { __TBB_ASSERT(false, NULL); } // should never be called input_type &input_ports() { return my_inputs; } @@ -1256,7 +1256,7 @@ namespace internal { public: typedef OutputTuple output_type; - typedef receiver successor_type; + typedef typename sender::successor_type successor_type; typedef join_node_FE input_ports_type; using input_ports_type::tuple_build_may_succeed; using input_ports_type::try_to_make_tuple; @@ -1402,44 +1402,44 @@ namespace internal { my_aggregator.initialize_handler(handler_type(this)); } - bool register_successor(successor_type &r) { + bool register_successor(successor_type &r) __TBB_override { join_node_base_operation op_data(r, reg_succ); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; } - bool remove_successor( successor_type &r) { + bool remove_successor( successor_type &r) __TBB_override { join_node_base_operation op_data(r, rem_succ); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; } - bool try_get( output_type &v) { + bool try_get( output_type &v) __TBB_override { join_node_base_operation op_data(v, try__get); my_aggregator.execute(&op_data); return op_data.status == SUCCEEDED; } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/built_successors_type &built_successors() { return my_successors.built_successors(); } + built_successors_type &built_successors() __TBB_override { return my_successors.built_successors(); } - /*override*/void internal_add_built_successor( successor_type &r) { + void internal_add_built_successor( successor_type &r) __TBB_override { join_node_base_operation op_data(r, add_blt_succ); my_aggregator.execute(&op_data); } - /*override*/void internal_delete_built_successor( successor_type &r) { + void internal_delete_built_successor( successor_type &r) __TBB_override { join_node_base_operation op_data(r, del_blt_succ); my_aggregator.execute(&op_data); } - /*override*/size_t successor_count() { + size_t successor_count() __TBB_override { join_node_base_operation op_data(blt_succ_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/ void copy_successors(successor_list_type &l) { + void copy_successors(successor_list_type &l) __TBB_override { join_node_base_operation op_data(blt_succ_cpy); op_data.slist = &l; my_aggregator.execute(&op_data); @@ -1447,7 +1447,7 @@ namespace internal { #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract() { + void extract() __TBB_override { input_ports_type::extract(); my_successors.built_successors().sender_extract(*this); } @@ -1455,7 +1455,7 @@ namespace internal { protected: - /*override*/void reset_node(reset_flags f) { + void reset_node(reset_flags f) __TBB_override { input_ports_type::reset(f); if(f & rf_clear_edges) my_successors.clear(); } diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_node_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_node_impl.h index 0c441fa..eeff72b 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_node_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_node_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__flow_graph_node_impl_H @@ -37,10 +37,22 @@ namespace internal { template< typename T, typename A > class function_input_queue : public item_buffer { public: + bool empty() const { + return this->buffer_empty(); + } + + const T& front() const { + return this->item_buffer::front(); + } + bool pop( T& t ) { return this->pop_front( t ); } + void pop() { + this->destroy_front(); + } + bool push( T& t ) { return this->push_back( t ); } @@ -51,7 +63,6 @@ namespace internal { // call and any handling of the result. template< typename Input, typename A, typename ImplType > class function_input_base : public receiver, tbb::internal::no_assign { - enum op_stat {WAIT=0, SUCCEEDED, FAILED}; enum op_type {reg_pred, rem_pred, app_body, try_fwd, tryput_bypass, app_body_bypass #if TBB_PREVIEW_FLOW_GRAPH_FEATURES , add_blt_pred, del_blt_pred, @@ -64,7 +75,7 @@ namespace internal { //! The input type of this receiver typedef Input input_type; - typedef sender predecessor_type; + typedef typename receiver::predecessor_type predecessor_type; typedef predecessor_cache predecessor_cache_type; typedef function_input_queue input_queue_type; typedef typename A::template rebind< input_queue_type >::other queue_allocator_type; @@ -76,7 +87,7 @@ namespace internal { //! Constructor for function_input_base function_input_base( graph &g, size_t max_concurrency, input_queue_type *q = NULL) - : my_graph(g), my_max_concurrency(max_concurrency), my_concurrency(0), + : my_graph_ptr(&g), my_max_concurrency(max_concurrency), my_concurrency(0), my_queue(q), forwarder_busy(false) { my_predecessors.set_owner(this); my_aggregator.initialize_handler(handler_type(this)); @@ -85,7 +96,7 @@ namespace internal { //! Copy constructor function_input_base( const function_input_base& src, input_queue_type *q = NULL) : receiver(), tbb::internal::no_assign(), - my_graph(src.my_graph), my_max_concurrency(src.my_max_concurrency), + my_graph_ptr(src.my_graph_ptr), my_max_concurrency(src.my_max_concurrency), my_concurrency(0), my_queue(q), forwarder_busy(false) { my_predecessors.set_owner(this); @@ -101,13 +112,13 @@ namespace internal { } //! Put to the node, returning a task if available - virtual task * try_put_task( const input_type &t ) { + task * try_put_task( const input_type &t ) __TBB_override { if ( my_max_concurrency == 0 ) { return create_body_task( t ); } else { operation_type op_data(t, tryput_bypass); my_aggregator.execute(&op_data); - if(op_data.status == SUCCEEDED ) { + if(op_data.status == internal::SUCCEEDED) { return op_data.bypass_t; } return NULL; @@ -115,7 +126,7 @@ namespace internal { } //! Adds src to the list of cached predecessors. - /* override */ bool register_predecessor( predecessor_type &src ) { + bool register_predecessor( predecessor_type &src ) __TBB_override { operation_type op_data(reg_pred); op_data.r = &src; my_aggregator.execute(&op_data); @@ -123,7 +134,7 @@ namespace internal { } //! Removes src from the list of cached predecessors. - /* override */ bool remove_predecessor( predecessor_type &src ) { + bool remove_predecessor( predecessor_type &src ) __TBB_override { operation_type op_data(rem_pred); op_data.r = &src; my_aggregator.execute(&op_data); @@ -132,32 +143,32 @@ namespace internal { #if TBB_PREVIEW_FLOW_GRAPH_FEATURES //! Adds to list of predecessors added by make_edge - /*override*/ void internal_add_built_predecessor( predecessor_type &src) { + void internal_add_built_predecessor( predecessor_type &src) __TBB_override { operation_type op_data(add_blt_pred); op_data.r = &src; my_aggregator.execute(&op_data); } //! removes from to list of predecessors (used by remove_edge) - /*override*/ void internal_delete_built_predecessor( predecessor_type &src) { + void internal_delete_built_predecessor( predecessor_type &src) __TBB_override { operation_type op_data(del_blt_pred); op_data.r = &src; my_aggregator.execute(&op_data); } - /*override*/ size_t predecessor_count() { + size_t predecessor_count() __TBB_override { operation_type op_data(blt_pred_cnt); my_aggregator.execute(&op_data); return op_data.cnt_val; } - /*override*/ void copy_predecessors(predecessor_list_type &v) { + void copy_predecessors(predecessor_list_type &v) __TBB_override { operation_type op_data(blt_pred_cpy); op_data.predv = &v; my_aggregator.execute(&op_data); } - /*override*/built_predecessors_type &built_predecessors() { + built_predecessors_type &built_predecessors() __TBB_override { return my_predecessors.built_predecessors(); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ @@ -173,13 +184,13 @@ namespace internal { forwarder_busy = false; } - graph& my_graph; + graph* my_graph_ptr; const size_t my_max_concurrency; size_t my_concurrency; input_queue_type *my_queue; predecessor_cache my_predecessors; - /*override*/void reset_receiver( reset_flags f) { + void reset_receiver( reset_flags f) __TBB_override { if( f & rf_clear_edges) my_predecessors.clear(); else my_predecessors.reset(); @@ -213,6 +224,32 @@ namespace internal { friend class internal::aggregating_functor; aggregator< handler_type, operation_type > my_aggregator; + task* create_and_spawn_task(bool spawn) { + task* new_task = NULL; + if(my_queue) { + if(!my_queue->empty()) { + ++my_concurrency; + new_task = create_body_task(my_queue->front()); + + my_queue->pop(); + } + } + else { + input_type i; + if(my_predecessors.get_item(i)) { + ++my_concurrency; + new_task = create_body_task(i); + } + } + //! Spawns a task that applies a body + // task == NULL => g.reset(), which shouldn't occur in concurrent context + if(spawn && new_task) { + FLOW_SPAWN(*new_task); + new_task = SUCCESSFULLY_ENQUEUED; + } + + return new_task; + } void handle_operations(operation_type *op_list) { operation_type *tmp; while (op_list) { @@ -236,35 +273,16 @@ namespace internal { --my_concurrency; __TBB_store_with_release(tmp->status, SUCCEEDED); if (my_concurrencypop(i); - else - item_was_retrieved = my_predecessors.get_item(i); - if (item_was_retrieved) { - ++my_concurrency; - spawn_body_task(i); - } + create_and_spawn_task(/*spawn=*/true); } break; case app_body_bypass: { - task * new_task = NULL; + tmp->bypass_t = NULL; __TBB_ASSERT(my_max_concurrency != 0, NULL); --my_concurrency; - if (my_concurrencypop(i); - else - item_was_retrieved = my_predecessors.get_item(i); - if (item_was_retrieved) { - ++my_concurrency; - new_task = create_body_task(i); - } - } - tmp->bypass_t = new_task; + if(my_concurrencybypass_t = create_and_spawn_task(/*spawn=*/false); + __TBB_store_with_release(tmp->status, SUCCEEDED); } break; @@ -313,22 +331,14 @@ namespace internal { //! Tries to spawn bodies if available and if concurrency allows void internal_forward(operation_type *op) { op->bypass_t = NULL; - if (my_concurrencypop(i); - else - item_was_retrieved = my_predecessors.get_item(i); - if (item_was_retrieved) { - ++my_concurrency; - op->bypass_t = create_body_task(i); - __TBB_store_with_release(op->status, SUCCEEDED); - return; - } + if (my_concurrency < my_max_concurrency || !my_max_concurrency) + op->bypass_t = create_and_spawn_task(/*spawn=*/false); + if(op->bypass_t) + __TBB_store_with_release(op->status, SUCCEEDED); + else { + forwarder_busy = false; + __TBB_store_with_release(op->status, FAILED); } - __TBB_store_with_release(op->status, FAILED); - forwarder_busy = false; } //! Applies the body to the provided input @@ -347,21 +357,12 @@ namespace internal { //! allocates a task to apply a body inline task * create_body_task( const input_type &input ) { - return (my_graph.is_active()) ? - new(task::allocate_additional_child_of(*(my_graph.root_task()))) + return (my_graph_ptr->is_active()) ? + new(task::allocate_additional_child_of(*(my_graph_ptr->root_task()))) apply_body_task_bypass < class_type, input_type >(*this, input) : NULL; } - //! Spawns a task that applies a body - inline void spawn_body_task( const input_type &input ) { - task* tp = create_body_task(input); - // tp == NULL => g.reset(), which shouldn't occur in concurrent context - if(tp) { - FLOW_SPAWN(*tp); - } - } - //! This is executed by an enqueued task, the "forwarder" task *forward_task() { operation_type op_data(try_fwd); @@ -378,8 +379,8 @@ namespace internal { } inline task *create_forward_task() { - return (my_graph.is_active()) ? - new(task::allocate_additional_child_of(*(my_graph.root_task()))) forward_task_bypass< class_type >(*this) : + return (my_graph_ptr->is_active()) ? + new(task::allocate_additional_child_of(*(my_graph_ptr->root_task()))) forward_task_bypass< class_type >(*this) : NULL; } @@ -540,7 +541,7 @@ namespace internal { template< typename Body > Body copy_function_object() { multifunction_body_type &body_ref = *this->my_body; - return dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); + return *static_cast(dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body_ptr()); } // for multifunction nodes we do not have a single successor as such. So we just tell @@ -557,12 +558,12 @@ namespace internal { protected: #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract() { + void extract() { extract_element::extract_this(my_output_ports); } #endif - /*override*/void reset(reset_flags f) { + void reset(reset_flags f) { base_type::reset_function_input_base(f); if(f & rf_clear_edges)clear_element::clear_this(my_output_ports); if(f & rf_reset_bodies) { @@ -644,7 +645,7 @@ namespace internal { return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); } - /*override*/void reset_receiver( reset_flags f) { + void reset_receiver( reset_flags f) __TBB_override { continue_receiver::reset_receiver(f); if(f & rf_reset_bodies) { function_body_type *tmp = my_init_body->clone(); @@ -678,7 +679,7 @@ namespace internal { } //! Spawns a task that applies the body - /* override */ task *execute( ) { + task *execute( ) __TBB_override { return (my_graph_ptr->is_active()) ? new ( task::allocate_additional_child_of( *(my_graph_ptr->root_task()) ) ) apply_body_task_bypass< continue_input< Output >, continue_msg >( *this, continue_msg() ) : @@ -694,7 +695,7 @@ namespace internal { template friend struct clear_element; typedef Output output_type; - typedef receiver successor_type; + typedef typename sender::successor_type successor_type; typedef broadcast_cache broadcast_cache_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef typename sender::built_successors_type built_successors_type; @@ -707,34 +708,34 @@ namespace internal { } //! Adds a new successor to this node - /* override */ bool register_successor( receiver &r ) { + bool register_successor( successor_type &r ) __TBB_override { successors().register_successor( r ); return true; } //! Removes a successor from this node - /* override */ bool remove_successor( receiver &r ) { + bool remove_successor( successor_type &r ) __TBB_override { successors().remove_successor( r ); return true; } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - built_successors_type &built_successors() { return successors().built_successors(); } + built_successors_type &built_successors() __TBB_override { return successors().built_successors(); } - /*override*/ void internal_add_built_successor( receiver &r) { + void internal_add_built_successor( successor_type &r) __TBB_override { successors().internal_add_built_successor( r ); } - /*override*/ void internal_delete_built_successor( receiver &r) { + void internal_delete_built_successor( successor_type &r) __TBB_override { successors().internal_delete_built_successor( r ); } - /*override*/ size_t successor_count() { + size_t successor_count() __TBB_override { return successors().successor_count(); } - /*override*/ void copy_successors( successor_list_type &v) { + void copy_successors( successor_list_type &v) __TBB_override { successors().copy_successors(v); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ @@ -747,7 +748,9 @@ namespace internal { // // if task pointer is returned will always spawn and return true, else // return value will be bool returned from successors.try_put. - task *try_put_task(const output_type &i) { return my_successors.try_put_task(i); } + task *try_put_task(const output_type &i) { // not a virtual method in this class + return my_successors.try_put_task(i); + } broadcast_cache_type &successors() { return my_successors; } protected: diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_streaming_node.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_streaming_node.h new file mode 100644 index 0000000..493f76e --- /dev/null +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_streaming_node.h @@ -0,0 +1,745 @@ +/* + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +*/ + +#ifndef __TBB_flow_graph_streaming_H +#define __TBB_flow_graph_streaming_H + +#ifndef __TBB_flow_graph_H +#error Do not #include this internal file directly; use public TBB headers instead. +#endif + +#if __TBB_PREVIEW_STREAMING_NODE + +// Included in namespace tbb::flow::interfaceX (in flow_graph.h) + +namespace internal { + +template +struct port_ref_impl { + // "+1" since the port_ref range is a closed interval (includes its endpoints). + static const int size = N2 - N1 + 1; +}; + +} // internal + +// The purpose of the port_ref_impl is the pretty syntax: the deduction of a compile-time constant is processed from the return type. +// So it is possible to use this helper without parentheses, e.g. "port_ref<0>". +template +internal::port_ref_impl port_ref() { + return internal::port_ref_impl(); +}; + +namespace internal { + +template +struct num_arguments { + static const int value = 1; +}; + +template +struct num_arguments(*)()> { + static const int value = port_ref_impl::size; +}; + +template +struct num_arguments> { + static const int value = port_ref_impl::size; +}; + +template +void ignore_return_values( Args&&... ) {} + +template +T or_return_values( T&& t ) { return t; } +template +T or_return_values( T&& t, Rest&&... rest ) { + return t | or_return_values( std::forward(rest)... ); +} + +template +struct key_from_policy { + typedef size_t type; + typedef std::false_type is_key_matching; +}; + +template +struct key_from_policy< key_matching > { + typedef Key type; + typedef std::true_type is_key_matching; +}; + +template +struct key_from_policy< key_matching > { + typedef const Key &type; + typedef std::true_type is_key_matching; +}; + +template +class streaming_device_with_key { + Device my_device; + typename std::decay::type my_key; +public: + // TODO: investigate why default constructor is required + streaming_device_with_key() {} + streaming_device_with_key( const Device& d, Key k ) : my_device( d ), my_key( k ) {} + Key key() const { return my_key; } + const Device& device() const { return my_device; } +}; + +// --------- Kernel argument helpers --------- // +template +struct is_port_ref_impl { + typedef std::false_type type; +}; + +template +struct is_port_ref_impl< port_ref_impl > { + typedef std::true_type type; +}; + +template +struct is_port_ref_impl< port_ref_impl( * )() > { + typedef std::true_type type; +}; + +template +struct is_port_ref { + typedef typename is_port_ref_impl< typename tbb::internal::strip::type >::type type; +}; + +template +struct convert_and_call_impl; + +template +struct convert_and_call_impl { + static const size_t my_delta = 1; // Index 0 contains device + + template + static void doit(F& f, Tuple& t, A1& a1, Args1&... args1, Args2&... args2) { + convert_and_call_impl::doit_impl(typename is_port_ref::type(), f, t, a1, args1..., args2...); + } + template + static void doit_impl(std::false_type, F& f, Tuple& t, A1& a1, Args1&... args1, Args2&... args2) { + convert_and_call_impl::doit(f, t, args1..., args2..., a1); + } + template + static void doit_impl(std::true_type x, F& f, Tuple& t, port_ref_impl, Args1&... args1, Args2&... args2) { + convert_and_call_impl, Args1...>::doit_impl(x, f, t, port_ref(), args1..., + args2..., std::get(t)); + } + template + static void doit_impl(std::true_type, F& f, Tuple& t, port_ref_impl, Args1&... args1, Args2&... args2) { + convert_and_call_impl::doit(f, t, args1..., args2..., std::get(t)); + } + + template + static void doit_impl(std::true_type x, F& f, Tuple& t, port_ref_impl(* fn)(), Args1&... args1, Args2&... args2) { + doit_impl(x, f, t, fn(), args1..., args2...); + } + template + static void doit_impl(std::true_type x, F& f, Tuple& t, port_ref_impl(* fn)(), Args1&... args1, Args2&... args2) { + doit_impl(x, f, t, fn(), args1..., args2...); + } +}; + +template <> +struct convert_and_call_impl<> { + template + static void doit(F& f, Tuple&, Args2&... args2) { + f(args2...); + } +}; +// ------------------------------------------- // + +template +struct streaming_node_traits { + // Do not use 'using' instead of 'struct' because Microsoft Visual C++ 12.0 fails to compile. + template + struct async_msg_type { + typedef typename StreamFactory::template async_msg_type type; + }; + + typedef tuple< typename async_msg_type::type... > input_tuple; + typedef input_tuple output_tuple; + typedef tuple< streaming_device_with_key< typename StreamFactory::device_type, typename key_from_policy::type >, + typename async_msg_type::type... > kernel_input_tuple; + + // indexer_node parameters pack expansion workaround for VS2013 for streaming_node + typedef indexer_node< typename async_msg_type::type... > indexer_node_type; +}; + +// Default empty implementation +template +class kernel_executor_helper { + typedef typename StreamFactory::device_type device_type; + typedef typename StreamFactory::kernel_type kernel_type; + typedef KernelInputTuple kernel_input_tuple; +protected: + template + void enqueue_kernel_impl( kernel_input_tuple&, StreamFactory& factory, device_type device, const kernel_type& kernel, Args&... args ) const { + factory.send_kernel( device, kernel, args... ); + } +}; + +// Implementation for StreamFactory supporting range +template +class kernel_executor_helper::type > { + typedef typename StreamFactory::device_type device_type; + typedef typename StreamFactory::kernel_type kernel_type; + typedef KernelInputTuple kernel_input_tuple; + + typedef typename StreamFactory::range_type range_type; + + // Container for randge. It can contain either port references or real range. + struct range_wrapper { + virtual range_type get_range( const kernel_input_tuple &ip ) const = 0; + virtual range_wrapper *clone() const = 0; + virtual ~range_wrapper() {} + }; + + struct range_value : public range_wrapper { + range_value( const range_type& value ) : my_value(value) {} + + range_value( range_type&& value ) : my_value(std::move(value)) {} + + range_type get_range( const kernel_input_tuple & ) const __TBB_override { + return my_value; + } + + range_wrapper *clone() const __TBB_override { + return new range_value(my_value); + } + private: + range_type my_value; + }; + + template + struct range_mapper : public range_wrapper { + range_mapper() {} + + range_type get_range( const kernel_input_tuple &ip ) const __TBB_override { + // "+1" since get<0>(ip) is StreamFactory::device. + return get(ip).data(false); + } + + range_wrapper *clone() const __TBB_override { + return new range_mapper; + } + }; + +protected: + template + void enqueue_kernel_impl( kernel_input_tuple& ip, StreamFactory& factory, device_type device, const kernel_type& kernel, Args&... args ) const { + __TBB_ASSERT(my_range_wrapper, "Range is not set. Call set_range() before running streaming_node."); + factory.send_kernel( device, kernel, my_range_wrapper->get_range(ip), args... ); + } + +public: + kernel_executor_helper() : my_range_wrapper(NULL) {} + + kernel_executor_helper(const kernel_executor_helper& executor) : my_range_wrapper(executor.my_range_wrapper ? executor.my_range_wrapper->clone() : NULL) {} + + kernel_executor_helper(kernel_executor_helper&& executor) : my_range_wrapper(executor.my_range_wrapper) { + // Set moving holder mappers to NULL to prevent double deallocation + executor.my_range_wrapper = NULL; + } + + ~kernel_executor_helper() { + if (my_range_wrapper) delete my_range_wrapper; + } + + void set_range(const range_type& work_size) { + my_range_wrapper = new range_value(work_size); + } + + void set_range(range_type&& work_size) { + my_range_wrapper = new range_value(std::move(work_size)); + } + + template + void set_range(port_ref_impl) { + my_range_wrapper = new range_mapper; + } + + template + void set_range(port_ref_impl(*)()) { + my_range_wrapper = new range_mapper; + } + +private: + range_wrapper* my_range_wrapper; +}; + +} // internal + +/* +/---------------------------------------- streaming_node ------------------------------------\ +| | +| /--------------\ /----------------------\ /-----------\ /----------------------\ | +| | | | (device_with_key) O---O | | | | +| | | | | | | | | | +O---O indexer_node O---O device_selector_node O---O join_node O---O kernel_node O---O +| | | | (multifunction_node) | | | | (multifunction_node) | | +O---O | | O---O | | O---O +| \--------------/ \----------------------/ \-----------/ \----------------------/ | +| | +\--------------------------------------------------------------------------------------------/ +*/ +template +class streaming_node; + +template +class streaming_node< tuple, JP, StreamFactory > + : public composite_node < typename internal::streaming_node_traits::input_tuple, + typename internal::streaming_node_traits::output_tuple > + , public internal::kernel_executor_helper< StreamFactory, typename internal::streaming_node_traits::kernel_input_tuple > +{ + typedef typename internal::streaming_node_traits::input_tuple input_tuple; + typedef typename internal::streaming_node_traits::output_tuple output_tuple; + typedef typename internal::key_from_policy::type key_type; +protected: + typedef typename StreamFactory::device_type device_type; + typedef typename StreamFactory::kernel_type kernel_type; +private: + typedef internal::streaming_device_with_key device_with_key_type; + typedef composite_node base_type; + static const size_t NUM_INPUTS = tuple_size::value; + static const size_t NUM_OUTPUTS = tuple_size::value; + + typedef typename internal::make_sequence::type input_sequence; + typedef typename internal::make_sequence::type output_sequence; + + typedef typename internal::streaming_node_traits::indexer_node_type indexer_node_type; + typedef typename indexer_node_type::output_type indexer_node_output_type; + typedef typename internal::streaming_node_traits::kernel_input_tuple kernel_input_tuple; + typedef multifunction_node device_selector_node; + typedef multifunction_node kernel_multifunction_node; + + template + typename base_type::input_ports_type get_input_ports( internal::sequence ) { + return std::tie( internal::input_port( my_indexer_node )... ); + } + + template + typename base_type::output_ports_type get_output_ports( internal::sequence ) { + return std::tie( internal::output_port( my_kernel_node )... ); + } + + typename base_type::input_ports_type get_input_ports() { + return get_input_ports( input_sequence() ); + } + + typename base_type::output_ports_type get_output_ports() { + return get_output_ports( output_sequence() ); + } + + template + int make_Nth_edge() { + make_edge( internal::output_port( my_device_selector_node ), internal::input_port( my_join_node ) ); + return 0; + } + + template + void make_edges( internal::sequence ) { + make_edge( my_indexer_node, my_device_selector_node ); + make_edge( my_device_selector_node, my_join_node ); + internal::ignore_return_values( make_Nth_edge()... ); + make_edge( my_join_node, my_kernel_node ); + } + + void make_edges() { + make_edges( input_sequence() ); + } + + class device_selector_base { + public: + virtual void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) = 0; + virtual device_selector_base *clone( streaming_node &n ) const = 0; + virtual ~device_selector_base() {} + }; + + template + class device_selector : public device_selector_base, tbb::internal::no_assign { + public: + device_selector( UserFunctor uf, streaming_node &n, StreamFactory &f ) + : my_dispatch_funcs( create_dispatch_funcs( input_sequence() ) ) + , my_user_functor( uf ), my_node(n), my_factory( f ) + { + my_port_epoches.fill( 0 ); + } + + void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) __TBB_override { + (this->*my_dispatch_funcs[ v.tag() ])( my_port_epoches[ v.tag() ], v, op ); + __TBB_ASSERT( (tbb::internal::is_same_type::is_key_matching, std::false_type>::value) + || my_port_epoches[v.tag()] == 0, "Epoch is changed when key matching is requested" ); + } + + device_selector_base *clone( streaming_node &n ) const __TBB_override { + return new device_selector( my_user_functor, n, my_factory ); + } + private: + typedef void(device_selector::*send_and_put_fn_type)(size_t &, const indexer_node_output_type &, typename device_selector_node::output_ports_type &); + typedef std::array < send_and_put_fn_type, NUM_INPUTS > dispatch_funcs_type; + + template + static dispatch_funcs_type create_dispatch_funcs( internal::sequence ) { + dispatch_funcs_type dispatch = { { &device_selector::send_and_put_impl... } }; + return dispatch; + } + + template + key_type get_key( std::false_type, const T &, size_t &epoch ) { + __TBB_STATIC_ASSERT( (tbb::internal::is_same_type::value), "" ); + return epoch++; + } + + template + key_type get_key( std::true_type, const T &t, size_t &/*epoch*/ ) { + using tbb::flow::key_from_message; + return key_from_message( t ); + } + + template + void send_and_put_impl( size_t &epoch, const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { + typedef typename tuple_element::type::output_type elem_type; + elem_type e = internal::cast_to( v ); + device_type device = get_device( get_key( typename internal::key_from_policy::is_key_matching(), e, epoch ), get<0>( op ) ); + my_factory.send_data( device, e ); + get( op ).try_put( e ); + } + + template< typename DevicePort > + device_type get_device( key_type key, DevicePort& dp ) { + typename std::unordered_map::type, epoch_desc>::iterator it = my_devices.find( key ); + if ( it == my_devices.end() ) { + device_type d = my_user_functor( my_factory ); + std::tie( it, std::ignore ) = my_devices.insert( std::make_pair( key, d ) ); + bool res = dp.try_put( device_with_key_type( d, key ) ); + __TBB_ASSERT_EX( res, NULL ); + my_node.notify_new_device( d ); + } + epoch_desc &e = it->second; + device_type d = e.my_device; + if ( ++e.my_request_number == NUM_INPUTS ) my_devices.erase( it ); + return d; + } + + struct epoch_desc { + epoch_desc(device_type d ) : my_device( d ), my_request_number( 0 ) {} + device_type my_device; + size_t my_request_number; + }; + + std::unordered_map::type, epoch_desc> my_devices; + std::array my_port_epoches; + dispatch_funcs_type my_dispatch_funcs; + UserFunctor my_user_functor; + streaming_node &my_node; + StreamFactory &my_factory; + }; + + class device_selector_body { + public: + device_selector_body( device_selector_base *d ) : my_device_selector( d ) {} + + void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { + (*my_device_selector)(v, op); + } + private: + device_selector_base *my_device_selector; + }; + + class args_storage_base : tbb::internal::no_copy { + public: + typedef typename kernel_multifunction_node::output_ports_type output_ports_type; + + virtual void enqueue( kernel_input_tuple &ip, output_ports_type &op, const streaming_node &n ) = 0; + virtual void send( device_type d ) = 0; + virtual args_storage_base *clone() const = 0; + virtual ~args_storage_base () {} + + protected: + args_storage_base( const kernel_type& kernel, StreamFactory &f ) + : my_kernel( kernel ), my_factory( f ) + {} + + args_storage_base( const args_storage_base &k ) + : my_kernel( k.my_kernel ), my_factory( k.my_factory ) + {} + + const kernel_type my_kernel; + StreamFactory &my_factory; + }; + + template + class args_storage : public args_storage_base { + typedef typename args_storage_base::output_ports_type output_ports_type; + + // ---------- Update events helpers ---------- // + template + bool do_try_put( const kernel_input_tuple& ip, output_ports_type &op ) const { + const auto& t = get( ip ); + auto &port = get( op ); + return port.try_put( t ); + } + + template + bool do_try_put( const kernel_input_tuple& ip, output_ports_type &op, internal::sequence ) const { + return internal::or_return_values( do_try_put( ip, op )... ); + } + + // ------------------------------------------- // + class run_kernel_func : tbb::internal::no_assign { + public: + run_kernel_func( kernel_input_tuple &ip, const streaming_node &node, const args_storage& storage ) + : my_kernel_func( ip, node, storage, get<0>(ip).device() ) {} + + // It is immpossible to use Args... because a function pointer cannot be casted to a function reference implicitly. + // Allow the compiler to deduce types for function pointers automatically. + template + void operator()( FnArgs&... args ) { + internal::convert_and_call_impl::doit( my_kernel_func, my_kernel_func.my_ip, args... ); + } + private: + struct kernel_func : tbb::internal::no_copy { + kernel_input_tuple &my_ip; + const streaming_node &my_node; + const args_storage& my_storage; + device_type my_device; + + kernel_func( kernel_input_tuple &ip, const streaming_node &node, const args_storage& storage, device_type device ) + : my_ip( ip ), my_node( node ), my_storage( storage ), my_device( device ) + {} + + template + void operator()( FnArgs&... args ) { + my_node.enqueue_kernel( my_ip, my_storage.my_factory, my_device, my_storage.my_kernel, args... ); + } + } my_kernel_func; + }; + + template + class run_finalize_func : tbb::internal::no_assign { + public: + run_finalize_func( kernel_input_tuple &ip, StreamFactory &factory, FinalizeFn fn ) + : my_ip( ip ), my_finalize_func( factory, get<0>(ip).device(), fn ) {} + + // It is immpossible to use Args... because a function pointer cannot be casted to a function reference implicitly. + // Allow the compiler to deduce types for function pointers automatically. + template + void operator()( FnArgs&... args ) { + internal::convert_and_call_impl::doit( my_finalize_func, my_ip, args... ); + } + private: + kernel_input_tuple &my_ip; + + struct finalize_func : tbb::internal::no_assign { + StreamFactory &my_factory; + device_type my_device; + FinalizeFn my_fn; + + finalize_func( StreamFactory &factory, device_type device, FinalizeFn fn ) + : my_factory(factory), my_device(device), my_fn(fn) {} + + template + void operator()( FnArgs&... args ) { + my_factory.finalize( my_device, my_fn, args... ); + } + } my_finalize_func; + }; + + template + static run_finalize_func make_run_finalize_func( kernel_input_tuple &ip, StreamFactory &factory, FinalizeFn fn ) { + return run_finalize_func( ip, factory, fn ); + } + + class send_func : tbb::internal::no_assign { + public: + send_func( StreamFactory &factory, device_type d ) + : my_factory(factory), my_device( d ) {} + + template + void operator()( FnArgs&... args ) { + my_factory.send_data( my_device, args... ); + } + private: + StreamFactory &my_factory; + device_type my_device; + }; + + public: + args_storage( const kernel_type& kernel, StreamFactory &f, Args&&... args ) + : args_storage_base( kernel, f ) + , my_args_pack( std::forward(args)... ) + {} + + args_storage( const args_storage &k ) : args_storage_base( k ), my_args_pack( k.my_args_pack ) {} + + args_storage( const args_storage_base &k, Args&&... args ) : args_storage_base( k ), my_args_pack( std::forward(args)... ) {} + + void enqueue( kernel_input_tuple &ip, output_ports_type &op, const streaming_node &n ) __TBB_override { + // Make const qualified args_pack (from non-const) + const args_pack_type& const_args_pack = my_args_pack; + // factory.enqure_kernel() gets + // - 'ip' tuple elements by reference and updates it (and 'ip') with dependencies + // - arguments (from my_args_pack) by const-reference via const_args_pack + tbb::internal::call( run_kernel_func( ip, n, *this ), const_args_pack ); + + if (! do_try_put( ip, op, input_sequence() ) ) { + graph& g = n.my_graph; + // No one message was passed to successors so set a callback to extend the graph lifetime until the kernel completion. + g.increment_wait_count(); + + // factory.finalize() gets + // - 'ip' tuple elements by reference, so 'ip' might be changed + // - arguments (from my_args_pack) by const-reference via const_args_pack + tbb::internal::call( make_run_finalize_func(ip, this->my_factory, [&g] { + g.decrement_wait_count(); + }), const_args_pack ); + } + } + + void send( device_type d ) __TBB_override { + // factory.send() gets arguments by reference and updates these arguments with dependencies + // (it gets but usually ignores port_ref-s) + tbb::internal::call( send_func( this->my_factory, d ), my_args_pack ); + } + + args_storage_base *clone() const __TBB_override { + // Create new args_storage with copying constructor. + return new args_storage( *this ); + } + + private: + typedef tbb::internal::stored_pack args_pack_type; + args_pack_type my_args_pack; + }; + + // Body for kernel_multifunction_node. + class kernel_body : tbb::internal::no_assign { + public: + kernel_body( const streaming_node &node ) : my_node( node ) {} + + void operator()( kernel_input_tuple ip, typename args_storage_base::output_ports_type &op ) { + __TBB_ASSERT( (my_node.my_args_storage != NULL), "No arguments storage" ); + // 'ip' is passed by value to create local copy for updating inside enqueue_kernel() + my_node.my_args_storage->enqueue( ip, op, my_node ); + } + private: + const streaming_node &my_node; + }; + + template ::type > + struct wrap_to_async { + typedef T type; // Keep port_ref as it is + }; + + template + struct wrap_to_async { + typedef typename StreamFactory::template async_msg_type< typename tbb::internal::strip::type > type; + }; + + template + args_storage_base *make_args_storage(const args_storage_base& storage, Args&&... args) const { + // In this variadic template convert all simple types 'T' into 'async_msg_type' + return new args_storage(storage, std::forward(args)...); + } + + void notify_new_device( device_type d ) { + my_args_storage->send( d ); + } + + template + void enqueue_kernel( kernel_input_tuple& ip, StreamFactory& factory, device_type device, const kernel_type& kernel, Args&... args ) const { + this->enqueue_kernel_impl( ip, factory, device, kernel, args... ); + } + +public: + template + streaming_node( graph &g, const kernel_type& kernel, DeviceSelector d, StreamFactory &f ) + : base_type( g ) + , my_indexer_node( g ) + , my_device_selector( new device_selector( d, *this, f ) ) + , my_device_selector_node( g, serial, device_selector_body( my_device_selector ) ) + , my_join_node( g ) + , my_kernel_node( g, serial, kernel_body( *this ) ) + // By default, streaming_node maps all its ports to the kernel arguments on a one-to-one basis. + , my_args_storage( make_args_storage( args_storage<>(kernel, f), port_ref<0, NUM_INPUTS - 1>() ) ) + { + base_type::set_external_ports( get_input_ports(), get_output_ports() ); + make_edges(); + } + + streaming_node( const streaming_node &node ) + : base_type( node.my_graph ) + , my_indexer_node( node.my_indexer_node ) + , my_device_selector( node.my_device_selector->clone( *this ) ) + , my_device_selector_node( node.my_graph, serial, device_selector_body( my_device_selector ) ) + , my_join_node( node.my_join_node ) + , my_kernel_node( node.my_graph, serial, kernel_body( *this ) ) + , my_args_storage( node.my_args_storage->clone() ) + { + base_type::set_external_ports( get_input_ports(), get_output_ports() ); + make_edges(); + } + + streaming_node( streaming_node &&node ) + : base_type( node.my_graph ) + , my_indexer_node( std::move( node.my_indexer_node ) ) + , my_device_selector( node.my_device_selector->clone(*this) ) + , my_device_selector_node( node.my_graph, serial, device_selector_body( my_device_selector ) ) + , my_join_node( std::move( node.my_join_node ) ) + , my_kernel_node( node.my_graph, serial, kernel_body( *this ) ) + , my_args_storage( node.my_args_storage ) + { + base_type::set_external_ports( get_input_ports(), get_output_ports() ); + make_edges(); + // Set moving node mappers to NULL to prevent double deallocation. + node.my_args_storage = NULL; + } + + ~streaming_node() { + if ( my_args_storage ) delete my_args_storage; + if ( my_device_selector ) delete my_device_selector; + } + + template + void set_args( Args&&... args ) { + // Copy the base class of args_storage and create new storage for "Args...". + args_storage_base * const new_args_storage = make_args_storage( *my_args_storage, typename wrap_to_async::type(std::forward(args))...); + delete my_args_storage; + my_args_storage = new_args_storage; + } + +protected: + void reset_node( reset_flags = rf_reset_protocol ) __TBB_override { __TBB_ASSERT( false, "Not implemented yet" ); } + +private: + indexer_node_type my_indexer_node; + device_selector_base *my_device_selector; + device_selector_node my_device_selector_node; + join_node my_join_node; + kernel_multifunction_node my_kernel_node; + + args_storage_base *my_args_storage; +}; + +#endif // __TBB_PREVIEW_STREAMING_NODE +#endif // __TBB_flow_graph_streaming_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_tagged_buffer_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_tagged_buffer_impl.h index c49e9c1..46755fe 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_tagged_buffer_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_tagged_buffer_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ // a hash table buffer that can expand, and can support as many deletions as diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_trace_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_trace_impl.h index 24dd3a9..b798888 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_trace_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_trace_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef _FGT_GRAPH_TRACE_IMPL_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_types_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_types_impl.h index cb18270..73b5f54 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_types_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_flow_graph_types_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__flow_graph_types_impl_H @@ -451,12 +451,12 @@ public: explicit Wrapper( const T& other ) : value_space(other) { } explicit Wrapper(const Wrapper& other) : value_space(other.value_space) { } - /*override*/void CopyTo(void* newSpace) const { + void CopyTo(void* newSpace) const __TBB_override { _unwind_space guard((pointer_type)newSpace); (void) new(newSpace) Wrapper(value_space); guard.space = NULL; } - /*override*/~Wrapper() { } + ~Wrapper() { } }; // specialization for array objects @@ -519,11 +519,11 @@ public: guard.space = NULL; } - /*override*/void CopyTo(void* newSpace) const { + void CopyTo(void* newSpace) const __TBB_override { (void) new(newSpace) Wrapper(*this); // exceptions handled in copy constructor } - /*override*/~Wrapper() { + ~Wrapper() { // have to destroy explicitly in reverse order pointer_type vp = reinterpret_cast(&value_space); for(size_t i = N; i > 0 ; --i ) vp[i-1].~value_type(); @@ -706,6 +706,8 @@ const V& cast_to(T const &t) { return t.template cast_to(); } template bool is_a(T const &t) { return t.template is_a(); } +enum op_stat { WAIT = 0, SUCCEEDED, FAILED }; + } // namespace internal #endif /* __TBB__flow_graph_types_impl_H */ diff --git a/lib/3rdParty/tbb/include/tbb/internal/_mutex_padding.h b/lib/3rdParty/tbb/include/tbb/internal/_mutex_padding.h index 9dc7a18..6c1d9b5 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_mutex_padding.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_mutex_padding.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_mutex_padding_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_range_iterator.h b/lib/3rdParty/tbb/include/tbb/internal/_range_iterator.h index 030f5bf..5ebc42e 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_range_iterator.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_range_iterator.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_range_iterator_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_tbb_hash_compare_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_tbb_hash_compare_impl.h index 748ec65..6381e2d 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_tbb_hash_compare_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_tbb_hash_compare_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ // must be included outside namespaces. @@ -47,6 +47,7 @@ public: } bool operator()(const Key& key1, const Key& key2) const { + // TODO: get rid of the result invertion return (!my_key_compare_object(key1, key2)); } diff --git a/lib/3rdParty/tbb/include/tbb/internal/_tbb_strings.h b/lib/3rdParty/tbb/include/tbb/internal/_tbb_strings.h index f5469fb..1aa532f 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_tbb_strings.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_tbb_strings.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ TBB_STRING_RESOURCE(FLOW_BROADCAST_NODE, "broadcast_node") diff --git a/lib/3rdParty/tbb/include/tbb/internal/_tbb_windef.h b/lib/3rdParty/tbb/include/tbb/internal/_tbb_windef.h index 6b80e0b..e798dee 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_tbb_windef.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_tbb_windef.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tbb_windef_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_template_helpers.h b/lib/3rdParty/tbb/include/tbb/internal/_template_helpers.h index b55ebc6..1e0abbe 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_template_helpers.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_template_helpers.h @@ -1,27 +1,28 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_template_helpers_H #define __TBB_template_helpers_H #include +#include namespace tbb { namespace internal { @@ -47,10 +48,10 @@ template struct strip { typedef T type; }; template struct strip { typedef T type; }; #endif //! Specialization for arrays converts to a corresponding pointer -template struct strip { typedef T* type; }; -template struct strip { typedef const T* type; }; -template struct strip { typedef volatile T* type; }; -template struct strip { typedef const volatile T* type; }; +template struct strip { typedef T* type; }; +template struct strip { typedef const T* type; }; +template struct strip { typedef volatile T* type; }; +template struct strip { typedef const volatile T* type; }; //! Detects whether two given types are the same template struct is_same_type { static const bool value = false; }; @@ -59,6 +60,11 @@ template struct is_same_type { static const bool value = template struct is_ref { static const bool value = false; }; template struct is_ref { static const bool value = true; }; +#if __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT +//! std::void_t internal implementation (to avoid GCC < 4.7 "template aliases" absence) +template struct void_t { typedef void type; }; +#endif + #if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT //! Allows to store a function parameter pack as a variable and later pass it to another function @@ -107,6 +113,13 @@ struct stored_pack : stored_pack template< typename Ret, typename F, typename Pack > friend Ret call_and_return( F&& f, Pack&& p ); protected: + template< typename Ret, typename F, typename... Preceding > + static Ret call( F&& f, pack_type& pack, Preceding&&... params ) { + return pack_remainder::template call( + std::forward(f), static_cast(pack), + std::forward(params)... , pack.leftmost_value + ); + } template< typename Ret, typename F, typename... Preceding > static Ret call( F&& f, const pack_type& pack, Preceding&&... params ) { return pack_remainder::template call( diff --git a/lib/3rdParty/tbb/include/tbb/internal/_x86_eliding_mutex_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_x86_eliding_mutex_impl.h index 954248b..ef5f922 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_x86_eliding_mutex_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_x86_eliding_mutex_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__x86_eliding_mutex_impl_H diff --git a/lib/3rdParty/tbb/include/tbb/internal/_x86_rtm_rw_mutex_impl.h b/lib/3rdParty/tbb/include/tbb/internal/_x86_rtm_rw_mutex_impl.h index 9274c9a..b08c233 100644 --- a/lib/3rdParty/tbb/include/tbb/internal/_x86_rtm_rw_mutex_impl.h +++ b/lib/3rdParty/tbb/include/tbb/internal/_x86_rtm_rw_mutex_impl.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB__x86_rtm_rw_mutex_impl_H diff --git a/lib/3rdParty/tbb/include/tbb/machine/gcc_armv7.h b/lib/3rdParty/tbb/include/tbb/machine/gcc_armv7.h index dcd7c8a..642c14f 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/gcc_armv7.h +++ b/lib/3rdParty/tbb/include/tbb/machine/gcc_armv7.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ /* @@ -83,7 +83,7 @@ static inline int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, i "it eq\n" "strexeq %0, %5, [%3]\n" : "=&r" (res), "=&r" (oldval), "+Qo" (*(volatile int32_t*)ptr) - : "r" ((int32_t *)ptr), "Ir" (comparand), "r" (value) + : "r" ((volatile int32_t *)ptr), "Ir" (comparand), "r" (value) : "cc"); } while (res); @@ -116,7 +116,7 @@ static inline int64_t __TBB_machine_cmpswp8(volatile void *ptr, int64_t value, i "it eq\n" "strexdeq %0, %5, %H5, [%3]" : "=&r" (res), "=&r" (oldval), "+Qo" (*(volatile int64_t*)ptr) - : "r" ((int64_t *)ptr), "r" (comparand), "r" (value) + : "r" ((volatile int64_t *)ptr), "r" (comparand), "r" (value) : "cc"); } while (res); @@ -139,7 +139,7 @@ static inline int32_t __TBB_machine_fetchadd4(volatile void* ptr, int32_t addend " cmp %1, #0\n" " bne 1b\n" : "=&r" (result), "=&r" (tmp), "+Qo" (*(volatile int32_t*)ptr), "=&r"(tmp2) - : "r" ((int32_t *)ptr), "Ir" (addend) + : "r" ((volatile int32_t *)ptr), "Ir" (addend) : "cc"); __TBB_full_memory_fence(); @@ -162,7 +162,7 @@ static inline int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend " cmp %1, #0\n" " bne 1b" : "=&r" (result), "=&r" (tmp), "+Qo" (*(volatile int64_t*)ptr), "=&r"(tmp2) - : "r" ((int64_t *)ptr), "r" (addend) + : "r" ((volatile int64_t *)ptr), "r" (addend) : "cc"); diff --git a/lib/3rdParty/tbb/include/tbb/machine/gcc_generic.h b/lib/3rdParty/tbb/include/tbb/machine/gcc_generic.h index bd698a4..5fc2a90 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/gcc_generic.h +++ b/lib/3rdParty/tbb/include/tbb/machine/gcc_generic.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_gcc_generic_H) @@ -27,7 +27,7 @@ #include #include -#define __TBB_WORDSIZE __SIZEOF_POINTER__ +#define __TBB_WORDSIZE __SIZEOF_POINTER__ #if __TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN #define __TBB_64BIT_ATOMICS 0 diff --git a/lib/3rdParty/tbb/include/tbb/machine/gcc_ia32_common.h b/lib/3rdParty/tbb/include/tbb/machine/gcc_ia32_common.h index 965593f..f5efc37 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/gcc_ia32_common.h +++ b/lib/3rdParty/tbb/include/tbb/machine/gcc_ia32_common.h @@ -1,27 +1,27 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_machine_gcc_ia32_common_H #define __TBB_machine_gcc_ia32_common_H -//TODO: Add a higher-level function, e.g. tbb::interal::log2(), into tbb_stddef.h, which +//TODO: Add a higher-level function, e.g. tbb::internal::log2(), into tbb_stddef.h, which //uses __TBB_Log2 and contains the assert and remove the assert from here and all other //platform-specific headers. //TODO: Check if use of gcc intrinsic gives a better chance for cross call optimizations diff --git a/lib/3rdParty/tbb/include/tbb/machine/gcc_itsx.h b/lib/3rdParty/tbb/include/tbb/machine/gcc_itsx.h index 1583379..caa3544 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/gcc_itsx.h +++ b/lib/3rdParty/tbb/include/tbb/machine/gcc_itsx.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_gcc_itsx_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/ibm_aix51.h b/lib/3rdParty/tbb/include/tbb/machine/ibm_aix51.h index 28dd0da..a905b4e 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/ibm_aix51.h +++ b/lib/3rdParty/tbb/include/tbb/machine/ibm_aix51.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ // TODO: revise by comparing with mac_ppc.h diff --git a/lib/3rdParty/tbb/include/tbb/machine/icc_generic.h b/lib/3rdParty/tbb/include/tbb/machine/icc_generic.h index 7dae6e7..0486300 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/icc_generic.h +++ b/lib/3rdParty/tbb/include/tbb/machine/icc_generic.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_icc_generic_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/linux_common.h b/lib/3rdParty/tbb/include/tbb/machine/linux_common.h index 2080813..4d2d355 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/linux_common.h +++ b/lib/3rdParty/tbb/include/tbb/machine/linux_common.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_machine_H diff --git a/lib/3rdParty/tbb/include/tbb/machine/linux_ia32.h b/lib/3rdParty/tbb/include/tbb/machine/linux_ia32.h index f644000..932d343 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/linux_ia32.h +++ b/lib/3rdParty/tbb/include/tbb/machine/linux_ia32.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_linux_ia32_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/linux_ia64.h b/lib/3rdParty/tbb/include/tbb/machine/linux_ia64.h index 60e83b4..f477228 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/linux_ia64.h +++ b/lib/3rdParty/tbb/include/tbb/machine/linux_ia64.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_linux_ia64_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/linux_intel64.h b/lib/3rdParty/tbb/include/tbb/machine/linux_intel64.h index cc538ab..02153c2 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/linux_intel64.h +++ b/lib/3rdParty/tbb/include/tbb/machine/linux_intel64.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_linux_intel64_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/mac_ppc.h b/lib/3rdParty/tbb/include/tbb/machine/mac_ppc.h index 7f5474e..13f387b 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/mac_ppc.h +++ b/lib/3rdParty/tbb/include/tbb/machine/mac_ppc.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_gcc_power_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/macos_common.h b/lib/3rdParty/tbb/include/tbb/machine/macos_common.h index c2c86c3..119ad97 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/macos_common.h +++ b/lib/3rdParty/tbb/include/tbb/machine/macos_common.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_macos_common_H) @@ -54,7 +54,7 @@ static inline int __TBB_macos_available_cpu() { static inline int64_t __TBB_machine_cmpswp8_OsX(volatile void *ptr, int64_t value, int64_t comparand) { - __TBB_ASSERT( tbb::internal::is_aligned(ptr,8), "address not properly aligned for OS X* atomics"); + __TBB_ASSERT( tbb::internal::is_aligned(ptr,8), "address not properly aligned for macOS* atomics"); int64_t* address = (int64_t*)ptr; while( !OSAtomicCompareAndSwap64Barrier(comparand, value, address) ){ #if __TBB_WORDSIZE==8 @@ -99,7 +99,7 @@ static inline int64_t __TBB_machine_cmpswp8_OsX(volatile void *ptr, int64_t valu static inline int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, int32_t comparand) { - __TBB_ASSERT( tbb::internal::is_aligned(ptr,4), "address not properly aligned for OS X* atomics"); + __TBB_ASSERT( tbb::internal::is_aligned(ptr,4), "address not properly aligned for macOS atomics"); int32_t* address = (int32_t*)ptr; while( !OSAtomicCompareAndSwap32Barrier(comparand, value, address) ){ int32_t snapshot = *address; @@ -110,13 +110,13 @@ static inline int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, i static inline int32_t __TBB_machine_fetchadd4(volatile void *ptr, int32_t addend) { - __TBB_ASSERT( tbb::internal::is_aligned(ptr,4), "address not properly aligned for OS X* atomics"); + __TBB_ASSERT( tbb::internal::is_aligned(ptr,4), "address not properly aligned for macOS atomics"); return OSAtomicAdd32Barrier(addend, (int32_t*)ptr) - addend; } static inline int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend) { - __TBB_ASSERT( tbb::internal::is_aligned(ptr,8), "address not properly aligned for OS X* atomics"); + __TBB_ASSERT( tbb::internal::is_aligned(ptr,8), "address not properly aligned for macOS atomics"); return OSAtomicAdd64Barrier(addend, (int64_t*)ptr) - addend; } diff --git a/lib/3rdParty/tbb/include/tbb/machine/mic_common.h b/lib/3rdParty/tbb/include/tbb/machine/mic_common.h index 606b345..8765d39 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/mic_common.h +++ b/lib/3rdParty/tbb/include/tbb/machine/mic_common.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_mic_common_H diff --git a/lib/3rdParty/tbb/include/tbb/machine/msvc_armv7.h b/lib/3rdParty/tbb/include/tbb/machine/msvc_armv7.h index cc1c1bf..40d2202 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/msvc_armv7.h +++ b/lib/3rdParty/tbb/include/tbb/machine/msvc_armv7.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_msvc_armv7_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/msvc_ia32_common.h b/lib/3rdParty/tbb/include/tbb/machine/msvc_ia32_common.h index 9caaa2b..8b4814b 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/msvc_ia32_common.h +++ b/lib/3rdParty/tbb/include/tbb/machine/msvc_ia32_common.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_msvc_ia32_common_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/sunos_sparc.h b/lib/3rdParty/tbb/include/tbb/machine/sunos_sparc.h index f28401f..9119f40 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/sunos_sparc.h +++ b/lib/3rdParty/tbb/include/tbb/machine/sunos_sparc.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ diff --git a/lib/3rdParty/tbb/include/tbb/machine/windows_api.h b/lib/3rdParty/tbb/include/tbb/machine/windows_api.h index bafa1d1..d362abc 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/windows_api.h +++ b/lib/3rdParty/tbb/include/tbb/machine/windows_api.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_machine_windows_api_H @@ -23,18 +23,8 @@ #if _WIN32 || _WIN64 -#if _XBOX - -#define NONET -#define NOD3D -#include - -#else // Assume "usual" Windows - #include -#endif // _XBOX - #if _WIN32_WINNT < 0x0600 // The following Windows API function is declared explicitly; // otherwise it fails to compile by VS2005. diff --git a/lib/3rdParty/tbb/include/tbb/machine/windows_ia32.h b/lib/3rdParty/tbb/include/tbb/machine/windows_ia32.h index c118672..8db0d2b 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/windows_ia32.h +++ b/lib/3rdParty/tbb/include/tbb/machine/windows_ia32.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_windows_ia32_H) diff --git a/lib/3rdParty/tbb/include/tbb/machine/windows_intel64.h b/lib/3rdParty/tbb/include/tbb/machine/windows_intel64.h index 3ddae49..86abd6a 100644 --- a/lib/3rdParty/tbb/include/tbb/machine/windows_intel64.h +++ b/lib/3rdParty/tbb/include/tbb/machine/windows_intel64.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #if !defined(__TBB_machine_H) || defined(__TBB_machine_windows_intel64_H) diff --git a/lib/3rdParty/tbb/include/tbb/memory_pool.h b/lib/3rdParty/tbb/include/tbb/memory_pool.h index 4bfc818..b3bba39 100644 --- a/lib/3rdParty/tbb/include/tbb/memory_pool.h +++ b/lib/3rdParty/tbb/include/tbb/memory_pool.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_memory_pool_H @@ -107,7 +107,7 @@ public: typedef memory_pool_allocator other; }; - memory_pool_allocator(pool_type &pool) throw() : my_pool(&pool) {} + explicit memory_pool_allocator(pool_type &pool) throw() : my_pool(&pool) {} memory_pool_allocator(const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} template memory_pool_allocator(const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} @@ -165,7 +165,7 @@ public: typedef memory_pool_allocator other; }; - memory_pool_allocator( pool_type &pool) throw() : my_pool(&pool) {} + explicit memory_pool_allocator( pool_type &pool) throw() : my_pool(&pool) {} memory_pool_allocator( const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} template memory_pool_allocator(const memory_pool_allocator& src) throw() : my_pool(src.my_pool) {} @@ -196,7 +196,7 @@ class memory_pool : public internal::pool_base { public: //! construct pool with underlying allocator - memory_pool(const Alloc &src = Alloc()); + explicit memory_pool(const Alloc &src = Alloc()); //! destroy pool ~memory_pool() { destroy(); } // call the callbacks first and destroy my_alloc latter diff --git a/lib/3rdParty/tbb/include/tbb/mutex.h b/lib/3rdParty/tbb/include/tbb/mutex.h index 358809e..e40b4cd 100644 --- a/lib/3rdParty/tbb/include/tbb/mutex.h +++ b/lib/3rdParty/tbb/include/tbb/mutex.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_mutex_H @@ -34,9 +34,8 @@ namespace tbb { -//! Wrapper around the platform's native reader-writer lock. -/** For testing purposes only. - @ingroup synchronization */ +//! Wrapper around the platform's native lock. +/** @ingroup synchronization */ class mutex : internal::mutex_copy_deprecated_and_disabled { public: //! Construct unacquired mutex. diff --git a/lib/3rdParty/tbb/include/tbb/null_mutex.h b/lib/3rdParty/tbb/include/tbb/null_mutex.h index ca93ae3..85c660e 100644 --- a/lib/3rdParty/tbb/include/tbb/null_mutex.h +++ b/lib/3rdParty/tbb/include/tbb/null_mutex.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_null_mutex_H diff --git a/lib/3rdParty/tbb/include/tbb/null_rw_mutex.h b/lib/3rdParty/tbb/include/tbb/null_rw_mutex.h index 7ec6b46..fa0c803 100644 --- a/lib/3rdParty/tbb/include/tbb/null_rw_mutex.h +++ b/lib/3rdParty/tbb/include/tbb/null_rw_mutex.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_null_rw_mutex_H diff --git a/lib/3rdParty/tbb/include/tbb/parallel_do.h b/lib/3rdParty/tbb/include/tbb/parallel_do.h index 5c6e5d7..1527568 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_do.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_do.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_do_H @@ -28,31 +28,37 @@ #include namespace tbb { - +namespace interface9 { //! @cond INTERNAL namespace internal { template class parallel_do_feeder_impl; - template class do_group_task; } // namespace internal //! @endcond //! Class the user supplied algorithm body uses to add new tasks /** \param Item Work item type **/ -template -class parallel_do_feeder: internal::no_copy -{ - parallel_do_feeder() {} - virtual ~parallel_do_feeder () {} - virtual void internal_add( const Item& item ) = 0; - template friend class internal::parallel_do_feeder_impl; -public: - //! Add a work item to a running parallel_do. - // TODO: add an overload for r-value reference - void add( const Item& item ) {internal_add(item);} -}; + template + class parallel_do_feeder: ::tbb::internal::no_copy + { + parallel_do_feeder() {} + virtual ~parallel_do_feeder () {} + virtual void internal_add_copy( const Item& item ) = 0; +#if __TBB_CPP11_RVALUE_REF_PRESENT + virtual void internal_add_move( Item&& item ) = 0; +#endif + template friend class internal::parallel_do_feeder_impl; + public: + //! Add a work item to a running parallel_do. + void add( const Item& item ) {internal_add_copy(item);} +#if __TBB_CPP11_RVALUE_REF_PRESENT + void add( Item&& item ) {internal_add_move(std::move(item));} +#endif + }; //! @cond INTERNAL namespace internal { + template class do_group_task; + //! For internal use only. /** Selects one of the two possible forms of function call member operator. @ingroup algorithms **/ @@ -61,19 +67,26 @@ namespace internal { { typedef parallel_do_feeder Feeder; template - static void internal_call( const Body& obj, A1& arg1, A2&, void (Body::*)(CvItem) const ) { + static void internal_call( const Body& obj, __TBB_FORWARDING_REF(A1) arg1, A2&, void (Body::*)(CvItem) const ) { + obj(tbb::internal::forward(arg1)); + } + template + static void internal_call( const Body& obj, __TBB_FORWARDING_REF(A1) arg1, A2& arg2, void (Body::*)(CvItem, parallel_do_feeder&) const ) { + obj(tbb::internal::forward(arg1), arg2); + } + template + static void internal_call( const Body& obj, __TBB_FORWARDING_REF(A1) arg1, A2&, void (Body::*)(CvItem&) const ) { obj(arg1); } template - static void internal_call( const Body& obj, A1& arg1, A2& arg2, void (Body::*)(CvItem, parallel_do_feeder&) const ) { + static void internal_call( const Body& obj, __TBB_FORWARDING_REF(A1) arg1, A2& arg2, void (Body::*)(CvItem&, parallel_do_feeder&) const ) { obj(arg1, arg2); } - public: - template - static void call( const Body& obj, A1& arg1, A2& arg2 ) + template + static void call( const Body& obj, __TBB_FORWARDING_REF(A1) arg1, A2& arg2 ) { - internal_call( obj, arg1, arg2, &Body::operator() ); + internal_call( obj, tbb::internal::forward(arg1), arg2, &Body::operator() ); } }; @@ -92,11 +105,15 @@ namespace internal { my_value(value), my_feeder(feeder) {} - /*override*/ - task* execute() +#if __TBB_CPP11_RVALUE_REF_PRESENT + do_iteration_task( Item&& value, feeder_type& feeder ) : + my_value(std::move(value)), my_feeder(feeder) + {} +#endif + + task* execute() __TBB_override { - // TODO: use move semantics for my_value - parallel_do_operator_selector::call(*my_feeder.my_body, my_value, my_feeder); + parallel_do_operator_selector::call(*my_feeder.my_body, tbb::internal::move(my_value), my_feeder); return NULL; } @@ -115,8 +132,7 @@ namespace internal { my_iter(iter), my_feeder(feeder) {} - /*override*/ - task* execute() + task* execute() __TBB_override { parallel_do_operator_selector::call(*my_feeder.my_body, *my_iter, my_feeder); return NULL; @@ -133,15 +149,37 @@ namespace internal { template class parallel_do_feeder_impl : public parallel_do_feeder { - /*override*/ - void internal_add( const Item& item ) +#if __TBB_CPP11_RVALUE_REF_PRESENT + //Avoiding use of copy constructor in a virtual method if the type does not support it + void internal_add_copy_impl(std::true_type, const Item& item) { + typedef do_iteration_task iteration_type; + iteration_type& t = *new (task::allocate_additional_child_of(*my_barrier)) iteration_type(item, *this); + task::spawn(t); + } + void internal_add_copy_impl(std::false_type, const Item&) { + __TBB_ASSERT(false, "Overloading for r-value reference doesn't work or it's not movable and not copyable object"); + } + void internal_add_copy( const Item& item ) __TBB_override + { +#if __TBB_CPP11_IS_COPY_CONSTRUCTIBLE_PRESENT + internal_add_copy_impl(typename std::is_copy_constructible::type(), item); +#else + internal_add_copy_impl(std::true_type(), item); +#endif + } + void internal_add_move( Item&& item ) __TBB_override { typedef do_iteration_task iteration_type; - - iteration_type& t = *new (task::allocate_additional_child_of(*my_barrier)) iteration_type(item, *this); - - t.spawn( t ); + iteration_type& t = *new (task::allocate_additional_child_of(*my_barrier)) iteration_type(std::move(item), *this); + task::spawn(t); } +#else /* ! __TBB_CPP11_RVALUE_REF_PRESENT */ + void internal_add_copy(const Item& item) __TBB_override { + typedef do_iteration_task iteration_type; + iteration_type& t = *new (task::allocate_additional_child_of(*my_barrier)) iteration_type(item, *this); + task::spawn(t); + } +#endif /* __TBB_CPP11_RVALUE_REF_PRESENT */ public: const Body* my_body; empty_task* my_barrier; @@ -186,7 +224,7 @@ namespace internal { : my_feeder(feeder), my_first(first), my_size(size) {} - /*override*/ task* execute() + task* execute() __TBB_override { typedef do_iteration_task_iter iteration_type; __TBB_ASSERT( my_size>0, NULL ); @@ -223,15 +261,20 @@ namespace internal { : my_feeder(feeder), my_size(0) {} - /*override*/ task* execute() + task* execute() __TBB_override { - typedef do_iteration_task_iter iteration_type; +#if __TBB_CPP11_RVALUE_REF_PRESENT + typedef std::move_iterator Item_iterator; +#else + typedef Item* Item_iterator; +#endif + typedef do_iteration_task_iter iteration_type; __TBB_ASSERT( my_size>0, NULL ); task_list list; task* t; size_t k=0; for(;;) { - t = new( allocate_child() ) iteration_type( my_arg.begin() + k, my_feeder ); + t = new( allocate_child() ) iteration_type( Item_iterator(my_arg.begin() + k), my_feeder ); if( ++k==my_size ) break; list.push_back(*t); } @@ -277,7 +320,7 @@ namespace internal { templates. Besides template functions would always fall back to the least efficient variant (the one for input iterators) in case of iterators having custom tags derived from basic ones. */ - /*override*/ task* execute() + task* execute() __TBB_override { typedef typename std::iterator_traits::iterator_category iterator_tag; return run( (iterator_tag*)NULL ); @@ -293,7 +336,7 @@ namespace internal { block_type& t = *new( allocate_additional_child_of(*my_feeder.my_barrier) ) block_type(my_feeder); size_t k=0; while( !(my_first == my_last) ) { - // TODO: move *my_first + // Move semantics are automatically used when supported by the iterator new (t.my_arg.begin() + k) Item(*my_first); ++my_first; if( ++k==block_type::max_arg_size ) { @@ -396,13 +439,13 @@ namespace internal { void select_parallel_do( Iterator first, Iterator last, const Body& body, void (Body::*)(Item) const #if __TBB_TASK_GROUP_CONTEXT , task_group_context& context -#endif // __TBB_TASK_GROUP_CONTEXT +#endif ) { - run_parallel_do::type>( first, last, body + run_parallel_do::type>( first, last, body #if __TBB_TASK_GROUP_CONTEXT , context -#endif // __TBB_TASK_GROUP_CONTEXT +#endif ); } @@ -413,20 +456,20 @@ namespace internal { void select_parallel_do( Iterator first, Iterator last, const Body& body, void (Body::*)(Item, parallel_do_feeder<_Item>&) const #if __TBB_TASK_GROUP_CONTEXT , task_group_context& context -#endif // __TBB_TASK_GROUP_CONTEXT +#endif ) { - run_parallel_do::type>( first, last, body + run_parallel_do::type>( first, last, body #if __TBB_TASK_GROUP_CONTEXT , context -#endif // __TBB_TASK_GROUP_CONTEXT +#endif ); } } // namespace internal +} // namespace interface9 //! @endcond - /** \page parallel_do_body_req Requirements on parallel_do body Class \c Body implementing the concept of parallel_do body must define: - \code @@ -458,11 +501,11 @@ void parallel_do( Iterator first, Iterator last, const Body& body ) return; #if __TBB_TASK_GROUP_CONTEXT task_group_context context; -#endif // __TBB_TASK_GROUP_CONTEXT - internal::select_parallel_do( first, last, body, &Body::operator() +#endif + interface9::internal::select_parallel_do( first, last, body, &Body::operator() #if __TBB_TASK_GROUP_CONTEXT , context -#endif // __TBB_TASK_GROUP_CONTEXT +#endif ); } @@ -484,7 +527,7 @@ void parallel_do( Iterator first, Iterator last, const Body& body, task_group_co { if ( first == last ) return; - internal::select_parallel_do( first, last, body, &Body::operator(), context ); + interface9::internal::select_parallel_do( first, last, body, &Body::operator(), context ); } template @@ -501,6 +544,8 @@ void parallel_do(const Range& rng, const Body& body, task_group_context& context //@} +using interface9::parallel_do_feeder; + } // namespace #endif /* __TBB_parallel_do_H */ diff --git a/lib/3rdParty/tbb/include/tbb/parallel_for.h b/lib/3rdParty/tbb/include/tbb/parallel_for.h index bbba853..2cab658 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_for.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_for.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_for_H @@ -43,10 +43,10 @@ namespace internal { Range my_range; const Body my_body; typename Partitioner::task_partition_type my_partition; - /*override*/ task* execute(); + task* execute() __TBB_override; //! Update affinity info, if any. - /*override*/ void note_affinity( affinity_id id ) { + void note_affinity( affinity_id id ) __TBB_override { my_partition.note_affinity( id ); } @@ -200,14 +200,12 @@ void parallel_for( const Range& range, const Body& body, const auto_partitioner& internal::start_for::run(range,body,partitioner); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over range with static_partitioner. /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner ) { internal::start_for::run(range,body,partitioner); } -#endif //! Parallel iteration over range with affinity_partitioner. /** @ingroup algorithms **/ @@ -238,14 +236,12 @@ void parallel_for( const Range& range, const Body& body, const auto_partitioner& internal::start_for::run(range, body, partitioner, context); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over range with static_partitioner and user-supplied context. /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner, task_group_context& context ) { internal::start_for::run(range, body, partitioner, context); } -#endif //! Parallel iteration over range with affinity_partitioner and user-supplied context. /** @ingroup algorithms **/ @@ -288,13 +284,11 @@ template void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& partitioner) { parallel_for_impl(first, last, step, f, partitioner); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over a range of integers with a step provided and static partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& partitioner) { parallel_for_impl(first, last, step, f, partitioner); } -#endif //! Parallel iteration over a range of integers with a step provided and affinity partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& partitioner) { @@ -316,13 +310,11 @@ template void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& partitioner) { parallel_for_impl(first, last, static_cast(1), f, partitioner); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over a range of integers with a default step value and static partitioner template void parallel_for(Index first, Index last, const Function& f, const static_partitioner& partitioner) { parallel_for_impl(first, last, static_cast(1), f, partitioner); } -#endif //! Parallel iteration over a range of integers with a default step value and affinity partitioner template void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& partitioner) { @@ -359,13 +351,11 @@ void parallel_for(Index first, Index last, Index step, const Function& f, const void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, step, f, partitioner, context); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over a range of integers with explicit step, task group context, and static partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, step, f, partitioner, context); } -#endif //! Parallel iteration over a range of integers with explicit step, task group context, and affinity partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& partitioner, tbb::task_group_context &context) { @@ -388,13 +378,11 @@ void parallel_for(Index first, Index last, const Function& f, const simple_parti void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, static_cast(1), f, partitioner, context); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration over a range of integers with a default step value, explicit task group context, and static partitioner template void parallel_for(Index first, Index last, const Function& f, const static_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, static_cast(1), f, partitioner, context); } -#endif //! Parallel iteration over a range of integers with a default step value, explicit task group context, and affinity_partitioner template void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& partitioner, tbb::task_group_context &context) { diff --git a/lib/3rdParty/tbb/include/tbb/parallel_for_each.h b/lib/3rdParty/tbb/include/tbb/parallel_for_each.h index 46f1e34..6c2ec9f 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_for_each.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_for_each.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_for_each_H diff --git a/lib/3rdParty/tbb/include/tbb/parallel_invoke.h b/lib/3rdParty/tbb/include/tbb/parallel_invoke.h index 0c193bc..0dd7590 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_invoke.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_invoke.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_invoke_H @@ -24,7 +24,7 @@ #include "task.h" #if __TBB_VARIADIC_PARALLEL_INVOKE - #include + #include // std::forward #endif namespace tbb { @@ -43,8 +43,7 @@ namespace internal { function_invoker(const function& _function) : my_function(_function) {} private: const function &my_function; - /*override*/ - task* execute() + task* execute() __TBB_override { my_function(); return NULL; @@ -60,7 +59,7 @@ namespace internal { const function3& my_func3; bool is_recycled; - task* execute (){ + task* execute () __TBB_override { if(is_recycled){ return NULL; }else{ diff --git a/lib/3rdParty/tbb/include/tbb/parallel_reduce.h b/lib/3rdParty/tbb/include/tbb/parallel_reduce.h index d387c44..0596ae0 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_reduce.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_reduce.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_reduce_H @@ -62,7 +62,7 @@ namespace internal { if( has_right_zombie ) zombie_space.begin()->~Body(); } - task* execute() { + task* execute() __TBB_override { if( has_right_zombie ) { // Right child was stolen. Body* s = zombie_space.begin(); @@ -89,9 +89,9 @@ namespace internal { Range my_range; typename Partitioner::task_partition_type my_partition; reduction_context my_context; - /*override*/ task* execute(); + task* execute() __TBB_override; //! Update affinity info, if any - /*override*/ void note_affinity( affinity_id id ) { + void note_affinity( affinity_id id ) __TBB_override { my_partition.note_affinity( id ); } template @@ -209,7 +209,7 @@ public: my_right_body( body, split() ) { } - task* execute() { + task* execute() __TBB_override { my_left_body.join( my_right_body ); return NULL; } @@ -224,7 +224,7 @@ public: typedef finish_deterministic_reduce finish_type; Body &my_body; Range my_range; - /*override*/ task* execute(); + task* execute() __TBB_override; //! Constructor used for root task start_deterministic_reduce( const Range& range, Body& body ) : @@ -374,14 +374,12 @@ void parallel_reduce( const Range& range, Body& body, const auto_partitioner& pa internal::start_reduce::run( range, body, partitioner ); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration with reduction and static_partitioner /** @ingroup algorithms **/ template void parallel_reduce( const Range& range, Body& body, const static_partitioner& partitioner ) { internal::start_reduce::run( range, body, partitioner ); } -#endif //! Parallel iteration with reduction and affinity_partitioner /** @ingroup algorithms **/ @@ -405,14 +403,12 @@ void parallel_reduce( const Range& range, Body& body, const auto_partitioner& pa internal::start_reduce::run( range, body, partitioner, context ); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration with reduction, static_partitioner and user-supplied context /** @ingroup algorithms **/ template void parallel_reduce( const Range& range, Body& body, const static_partitioner& partitioner, task_group_context& context ) { internal::start_reduce::run( range, body, partitioner, context ); } -#endif //! Parallel iteration with reduction, affinity_partitioner and user-supplied context /** @ingroup algorithms **/ @@ -457,7 +453,6 @@ Value parallel_reduce( const Range& range, const Value& identity, const RealBody return body.result(); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration with reduction and static_partitioner /** @ingroup algorithms **/ template @@ -468,7 +463,6 @@ Value parallel_reduce( const Range& range, const Value& identity, const RealBody ::run( range, body, partitioner ); return body.result(); } -#endif //! Parallel iteration with reduction and affinity_partitioner /** @ingroup algorithms **/ @@ -504,7 +498,6 @@ Value parallel_reduce( const Range& range, const Value& identity, const RealBody return body.result(); } -#if TBB_PREVIEW_STATIC_PARTITIONER //! Parallel iteration with reduction, static_partitioner and user-supplied context /** @ingroup algorithms **/ template @@ -515,7 +508,6 @@ Value parallel_reduce( const Range& range, const Value& identity, const RealBody ::run( range, body, partitioner, context ); return body.result(); } -#endif //! Parallel iteration with reduction, affinity_partitioner and user-supplied context /** @ingroup algorithms **/ diff --git a/lib/3rdParty/tbb/include/tbb/parallel_scan.h b/lib/3rdParty/tbb/include/tbb/parallel_scan.h index 00c9b4c..faf6b31 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_scan.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_scan.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_scan_H @@ -67,7 +67,7 @@ namespace internal { my_stuff_last = stuff_last_; } private: - /*override*/ task* execute() { + task* execute() __TBB_override { my_body( *my_range.begin(), final_scan_tag() ); if( my_stuff_last ) my_stuff_last->assign(my_body); @@ -91,6 +91,7 @@ namespace internal { bool my_left_is_final; Range my_range; sum_node( const Range range_, bool left_is_final_ ) : + my_stuff_last(NULL), my_left_sum(NULL), my_left(NULL), my_right(NULL), @@ -113,7 +114,7 @@ namespace internal { return n; } } - /*override*/ task* execute() { + task* execute() __TBB_override { if( my_body ) { if( my_incoming ) my_left_sum->my_body.reverse_join( my_incoming->my_body ); @@ -149,7 +150,7 @@ namespace internal { final_sum_type* my_right_zombie; sum_node_type& my_result; - /*override*/ task* execute() { + task* execute() __TBB_override { __TBB_ASSERT( my_result.ref_count()==(my_result.my_left!=NULL)+(my_result.my_right!=NULL), NULL ); if( my_result.my_left ) my_result.my_left_is_final = false; @@ -194,7 +195,7 @@ namespace internal { bool my_is_right_child; Range my_range; typename Partitioner::partition_type my_partition; - /*override*/ task* execute(); + task* execute() __TBB_override ; public: start_scan( sum_node_type*& return_slot_, start_scan& parent_, sum_node_type* parent_sum_ ) : my_body(parent_.my_body), @@ -233,6 +234,7 @@ namespace internal { range_, *temp_body, partitioner_ ); + temp_body->my_body.reverse_join(body_); task::spawn_root_and_wait( pass1 ); if( root ) { root->my_body = temp_body; diff --git a/lib/3rdParty/tbb/include/tbb/parallel_sort.h b/lib/3rdParty/tbb/include/tbb/parallel_sort.h index a642969..07d3907 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_sort.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_sort.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_sort_H diff --git a/lib/3rdParty/tbb/include/tbb/parallel_while.h b/lib/3rdParty/tbb/include/tbb/parallel_while.h index 1f9ff37..2f37a41 100644 --- a/lib/3rdParty/tbb/include/tbb/parallel_while.h +++ b/lib/3rdParty/tbb/include/tbb/parallel_while.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_parallel_while @@ -41,7 +41,7 @@ namespace internal { class while_iteration_task: public task { const Body& my_body; typename Body::argument_type my_value; - /*override*/ task* execute() { + task* execute() __TBB_override { my_body(my_value); return NULL; } @@ -62,7 +62,7 @@ namespace internal { size_t size; typename Body::argument_type my_arg[max_arg_size]; while_group_task( const Body& body ) : my_body(body), size(0) {} - /*override*/ task* execute() { + task* execute() __TBB_override { typedef while_iteration_task iteration_type; __TBB_ASSERT( size>0, NULL ); task_list list; @@ -89,7 +89,7 @@ namespace internal { Stream& my_stream; const Body& my_body; empty_task& my_barrier; - /*override*/ task* execute() { + task* execute() __TBB_override { typedef while_group_task block_type; block_type& t = *new( allocate_additional_child_of(my_barrier) ) block_type(my_body); size_t k=0; diff --git a/lib/3rdParty/tbb/include/tbb/partitioner.h b/lib/3rdParty/tbb/include/tbb/partitioner.h index 6321933..96a0b75 100644 --- a/lib/3rdParty/tbb/include/tbb/partitioner.h +++ b/lib/3rdParty/tbb/include/tbb/partitioner.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_partitioner_H @@ -35,7 +35,7 @@ #endif #ifndef __TBB_DEMAND_DEPTH_ADD // when imbalance is found range splits this value times more -#define __TBB_DEMAND_DEPTH_ADD 2 +#define __TBB_DEMAND_DEPTH_ADD 1 #endif #ifndef __TBB_STATIC_THRESHOLD // necessary number of clocks for the work to be distributed among all tasks @@ -64,9 +64,7 @@ namespace tbb { class auto_partitioner; class simple_partitioner; -#if TBB_PREVIEW_STATIC_PARTITIONER class static_partitioner; -#endif class affinity_partitioner; namespace interface9 { @@ -130,7 +128,7 @@ class flag_task: public task { public: tbb::atomic my_child_stolen; flag_task() { my_child_stolen = false; } - task* execute() { return NULL; } + task* execute() __TBB_override { return NULL; } static void mark_task_stolen(task &t) { tbb::atomic &flag = static_cast(t.parent())->my_child_stolen; #if TBB_USE_THREADING_TOOLS @@ -519,22 +517,16 @@ public: } }; -#if TBB_PREVIEW_STATIC_PARTITIONER -#ifndef __TBB_STATIC_PARTITIONER_BASE_TYPE -#define __TBB_STATIC_PARTITIONER_BASE_TYPE unbalancing_partition_type -#endif -class static_partition_type : public __TBB_STATIC_PARTITIONER_BASE_TYPE > { +class static_partition_type : public unbalancing_partition_type > { public: typedef proportional_split split_type; static_partition_type( const static_partitioner& ) - : __TBB_STATIC_PARTITIONER_BASE_TYPE >() {} + : unbalancing_partition_type >() {} static_partition_type( static_partition_type& p, split ) - : __TBB_STATIC_PARTITIONER_BASE_TYPE >(p, split()) {} + : unbalancing_partition_type >(p, split()) {} static_partition_type( static_partition_type& p, const proportional_split& split_obj ) - : __TBB_STATIC_PARTITIONER_BASE_TYPE >(p, split_obj) {} + : unbalancing_partition_type >(p, split_obj) {} }; -#undef __TBB_STATIC_PARTITIONER_BASE_TYPE -#endif class affinity_partition_type : public balancing_partition_type > { static const unsigned factor_power = 4; // TODO: get a unified formula based on number of computing units @@ -641,7 +633,6 @@ private: typedef interface9::internal::auto_partition_type::split_type split_type; }; -#if TBB_PREVIEW_STATIC_PARTITIONER //! A static partitioner class static_partitioner { public: @@ -659,7 +650,6 @@ private: // TODO: consider to make split_type public typedef interface9::internal::static_partition_type::split_type split_type; }; -#endif //! An affinity partitioner class affinity_partitioner: internal::affinity_partitioner_base_v3 { diff --git a/lib/3rdParty/tbb/include/tbb/pipeline.h b/lib/3rdParty/tbb/include/tbb/pipeline.h index a602666..20a8ec9 100644 --- a/lib/3rdParty/tbb/include/tbb/pipeline.h +++ b/lib/3rdParty/tbb/include/tbb/pipeline.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_pipeline_H @@ -103,7 +103,7 @@ public: serial = serial_in_order }; protected: - filter( bool is_serial_ ) : + explicit filter( bool is_serial_ ) : next_filter_in_pipeline(not_in_pipeline()), my_input_buffer(NULL), my_filter_mode(static_cast((is_serial_ ? serial : parallel) | exact_exception_propagation)), @@ -112,7 +112,7 @@ protected: next_segment(NULL) {} - filter( mode filter_mode ) : + explicit filter( mode filter_mode ) : next_filter_in_pipeline(not_in_pipeline()), my_input_buffer(NULL), my_filter_mode(static_cast(filter_mode | exact_exception_propagation)), @@ -205,7 +205,7 @@ public: end_of_stream }; protected: - thread_bound_filter(mode filter_mode): + explicit thread_bound_filter(mode filter_mode): filter(static_cast(filter_mode | filter::filter_is_bound)) { __TBB_ASSERT(filter_mode & filter::filter_is_serial, "thread-bound filters must be serial"); @@ -412,14 +412,14 @@ class concrete_filter: public tbb::filter { typedef token_helper::value > u_helper; typedef typename u_helper::pointer u_pointer; - /*override*/ void* operator()(void* input) { + void* operator()(void* input) __TBB_override { t_pointer temp_input = t_helper::cast_from_void_ptr(input); u_pointer output_u = u_helper::create_token(my_body(t_helper::token(temp_input))); t_helper::destroy_token(temp_input); return u_helper::cast_to_void_ptr(output_u); } - /*override*/ void finalize(void * input) { + void finalize(void * input) __TBB_override { t_pointer temp_input = t_helper::cast_from_void_ptr(input); t_helper::destroy_token(temp_input); } @@ -435,7 +435,7 @@ class concrete_filter: public filter { typedef token_helper::value > u_helper; typedef typename u_helper::pointer u_pointer; - /*override*/void* operator()(void*) { + void* operator()(void*) __TBB_override { flow_control control; u_pointer output_u = u_helper::create_token(my_body(control)); if(control.is_pipeline_stopped) { @@ -459,13 +459,13 @@ class concrete_filter: public filter { typedef token_helper::value > t_helper; typedef typename t_helper::pointer t_pointer; - /*override*/ void* operator()(void* input) { + void* operator()(void* input) __TBB_override { t_pointer temp_input = t_helper::cast_from_void_ptr(input); my_body(t_helper::token(temp_input)); t_helper::destroy_token(temp_input); return NULL; } - /*override*/ void finalize(void* input) { + void finalize(void* input) __TBB_override { t_pointer temp_input = t_helper::cast_from_void_ptr(input); t_helper::destroy_token(temp_input); } @@ -479,7 +479,7 @@ class concrete_filter: public filter { const Body& my_body; /** Override privately because it is always called virtually */ - /*override*/ void* operator()(void*) { + void* operator()(void*) __TBB_override { flow_control control; my_body(control); void* output = control.is_pipeline_stopped ? NULL : (void*)(intptr_t)-1; @@ -537,7 +537,7 @@ template class filter_node_leaf: public filter_node { const tbb::filter::mode mode; const Body body; - /*override*/void add_to( pipeline& p ) { + void add_to( pipeline& p ) __TBB_override { concrete_filter* f = new concrete_filter(mode,body); p.add_filter( *f ); } @@ -550,11 +550,11 @@ class filter_node_join: public filter_node { friend class filter_node; // to suppress GCC 3.2 warnings filter_node& left; filter_node& right; - /*override*/~filter_node_join() { + ~filter_node_join() { left.remove_ref(); right.remove_ref(); } - /*override*/void add_to( pipeline& p ) { + void add_to( pipeline& p ) __TBB_override { left.add_to(p); right.add_to(p); } diff --git a/lib/3rdParty/tbb/include/tbb/queuing_mutex.h b/lib/3rdParty/tbb/include/tbb/queuing_mutex.h index 2de1a72..0fe4b3e 100644 --- a/lib/3rdParty/tbb/include/tbb/queuing_mutex.h +++ b/lib/3rdParty/tbb/include/tbb/queuing_mutex.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_queuing_mutex_H diff --git a/lib/3rdParty/tbb/include/tbb/queuing_rw_mutex.h b/lib/3rdParty/tbb/include/tbb/queuing_rw_mutex.h index 9c15fd8..e0224ed 100644 --- a/lib/3rdParty/tbb/include/tbb/queuing_rw_mutex.h +++ b/lib/3rdParty/tbb/include/tbb/queuing_rw_mutex.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_queuing_rw_mutex_H diff --git a/lib/3rdParty/tbb/include/tbb/reader_writer_lock.h b/lib/3rdParty/tbb/include/tbb/reader_writer_lock.h index 2925b05..353beec 100644 --- a/lib/3rdParty/tbb/include/tbb/reader_writer_lock.h +++ b/lib/3rdParty/tbb/include/tbb/reader_writer_lock.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_reader_writer_lock_H diff --git a/lib/3rdParty/tbb/include/tbb/recursive_mutex.h b/lib/3rdParty/tbb/include/tbb/recursive_mutex.h index f8c345c..5a23c09 100644 --- a/lib/3rdParty/tbb/include/tbb/recursive_mutex.h +++ b/lib/3rdParty/tbb/include/tbb/recursive_mutex.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_recursive_mutex_H diff --git a/lib/3rdParty/tbb/include/tbb/runtime_loader.h b/lib/3rdParty/tbb/include/tbb/runtime_loader.h index a89faa8..df28464 100644 --- a/lib/3rdParty/tbb/include/tbb/runtime_loader.h +++ b/lib/3rdParty/tbb/include/tbb/runtime_loader.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_runtime_loader_H diff --git a/lib/3rdParty/tbb/include/tbb/scalable_allocator.h b/lib/3rdParty/tbb/include/tbb/scalable_allocator.h index 26853b4..c2a8149 100644 --- a/lib/3rdParty/tbb/include/tbb/scalable_allocator.h +++ b/lib/3rdParty/tbb/include/tbb/scalable_allocator.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_scalable_allocator_H @@ -282,18 +282,18 @@ public: template void construct(U *p, Args&&... args) { ::new((void *)p) U(std::forward(args)...); } -#else // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC +#else /* __TBB_ALLOCATOR_CONSTRUCT_VARIADIC */ #if __TBB_CPP11_RVALUE_REF_PRESENT void construct( pointer p, value_type&& value ) { ::new((void*)(p)) value_type( std::move( value ) ); } #endif void construct( pointer p, const value_type& value ) {::new((void*)(p)) value_type(value);} -#endif // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC +#endif /* __TBB_ALLOCATOR_CONSTRUCT_VARIADIC */ void destroy( pointer p ) {p->~value_type();} }; #if _MSC_VER && !defined(__INTEL_COMPILER) #pragma warning (pop) -#endif // warning 4100 is back +#endif /* warning 4100 is back */ //! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 /** @ingroup memory_allocation */ @@ -336,6 +336,6 @@ inline bool operator!=( const scalable_allocator&, const scalable_allocator class delegated_function : public delegate_base { F &my_func; - /*override*/ void operator()() const { + void operator()() const __TBB_override { my_func(); } public: @@ -105,12 +109,17 @@ protected: void __TBB_EXPORTED_METHOD internal_execute( delegate_base& ) const; void __TBB_EXPORTED_METHOD internal_wait() const; static int __TBB_EXPORTED_FUNC internal_current_slot(); + static int __TBB_EXPORTED_FUNC internal_max_concurrency( const task_arena * ); public: //! Typedef for number of threads that is automatic. - static const int automatic = -1; // any value < 1 means 'automatic' + static const int automatic = -1; + static const int not_initialized = -2; }; +#if __TBB_TASK_ISOLATION +void __TBB_EXPORTED_FUNC isolate_within_arena( delegate_base& d, intptr_t reserved = 0 ); +#endif /* __TBB_TASK_ISOLATION */ } // namespace internal //! @endcond @@ -121,6 +130,7 @@ public: */ class task_arena : public internal::task_arena_base { friend class tbb::internal::task_scheduler_observer_v3; + friend int tbb::this_task_arena::max_concurrency(); bool my_initialized; void mark_initialized() { __TBB_ASSERT( my_arena, "task_arena initialization is incomplete" ); @@ -143,8 +153,8 @@ public: * @arg reserved_for_masters specifies number of slots to be used by master threads only. * Value of 1 is default and reflects behavior of implicit arenas. **/ - task_arena(int max_concurrency = automatic, unsigned reserved_for_masters = 1) - : task_arena_base(max_concurrency, reserved_for_masters) + task_arena(int max_concurrency_ = automatic, unsigned reserved_for_masters = 1) + : task_arena_base(max_concurrency_, reserved_for_masters) , my_initialized(false) {} @@ -158,7 +168,7 @@ public: struct attach {}; //! Creates an instance of task_arena attached to the current arena of the thread - task_arena( attach ) + explicit task_arena( attach ) : task_arena_base(automatic, 1) // use default settings if attach fails , my_initialized(false) { @@ -175,11 +185,11 @@ public: } //! Overrides concurrency level and forces initialization of internal representation - inline void initialize(int max_concurrency, unsigned reserved_for_masters = 1) { + inline void initialize(int max_concurrency_, unsigned reserved_for_masters = 1) { // TODO: decide if this call must be thread-safe __TBB_ASSERT( !my_arena, "Impossible to modify settings of an already initialized task_arena"); if( !my_initialized ) { - my_max_concurrency = max_concurrency; + my_max_concurrency = max_concurrency_; my_master_slots = reserved_for_masters; initialize(); } @@ -273,17 +283,51 @@ public: #endif //__TBB_EXTRA_DEBUG //! Returns the index, aka slot number, of the calling thread in its current arena + //! This method is deprecated and replaced with this_task_arena::current_thread_index() inline static int current_thread_index() { return internal_current_slot(); } + + //! Returns the maximal number of threads that can work inside the arena + inline int max_concurrency() const { + // Handle special cases inside the library + return (my_max_concurrency>1) ? my_max_concurrency : internal_max_concurrency(this); + } }; +#if __TBB_TASK_ISOLATION +namespace this_task_arena { + template + void isolate( const F& f ) { + internal::delegated_function d(f); + internal::isolate_within_arena( d ); + } +} +#endif /* __TBB_TASK_ISOLATION */ + } // namespace interfaceX using interface7::task_arena; +#if __TBB_TASK_ISOLATION +namespace this_task_arena { + using namespace interface7::this_task_arena; +} +#endif /* __TBB_TASK_ISOLATION */ + +namespace this_task_arena { + //! Returns the index, aka slot number, of the calling thread in its current arena + inline int current_thread_index() { + int idx = tbb::task_arena::current_thread_index(); + return idx == -1 ? tbb::task_arena::not_initialized : idx; + } + + //! Returns the maximal number of threads that can work inside the arena + inline int max_concurrency() { + return tbb::task_arena::internal_max_concurrency(NULL); + } + +} // namespace this_task_arena } // namespace tbb -#endif /* __TBB_TASK_ARENA */ - #endif /* __TBB_task_arena_H */ diff --git a/lib/3rdParty/tbb/include/tbb/task_group.h b/lib/3rdParty/tbb/include/tbb/task_group.h index 54f38ac..bf6922b 100644 --- a/lib/3rdParty/tbb/include/tbb/task_group.h +++ b/lib/3rdParty/tbb/include/tbb/task_group.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_task_group_H @@ -69,7 +69,7 @@ namespace internal { template class task_handle_task : public task { task_handle& my_handle; - /*override*/ task* execute() { + task* execute() __TBB_override { my_handle(); return NULL; } diff --git a/lib/3rdParty/tbb/include/tbb/task_scheduler_init.h b/lib/3rdParty/tbb/include/tbb/task_scheduler_init.h index d4f91f3..928e7a4 100644 --- a/lib/3rdParty/tbb/include/tbb/task_scheduler_init.h +++ b/lib/3rdParty/tbb/include/tbb/task_scheduler_init.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_task_scheduler_init_H @@ -23,6 +23,9 @@ #include "tbb_stddef.h" #include "limits.h" +#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE +#include // nothrow_t +#endif namespace tbb { @@ -56,14 +59,14 @@ class task_scheduler_init: internal::no_copy { propagation_mode_captured = 2u, propagation_mode_mask = propagation_mode_exact | propagation_mode_captured }; -#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - enum { - wait_workers_in_terminate_flag = 128u - }; -#endif /** NULL if not currently initialized. */ internal::scheduler* my_scheduler; + + bool internal_terminate( bool blocking ); +#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE + bool __TBB_EXPORTED_METHOD internal_blocking_terminate( bool throwing ); +#endif public: //! Typedef for number of threads that is automatic. @@ -93,12 +96,21 @@ public: //! Inverse of method initialize. void __TBB_EXPORTED_METHOD terminate(); - //! Shorthand for default constructor followed by call to initialize(number_of_threads). #if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - task_scheduler_init( int number_of_threads=automatic, stack_size_type thread_stack_size=0, bool wait_workers_in_terminate = false ) : my_scheduler(NULL) -#else - task_scheduler_init( int number_of_threads=automatic, stack_size_type thread_stack_size=0 ) : my_scheduler(NULL) +#if TBB_USE_EXCEPTIONS + //! terminate() that waits for worker threads termination. Throws exception on error. + void blocking_terminate() { + internal_blocking_terminate( /*throwing=*/true ); + } #endif + //! terminate() that waits for worker threads termination. Returns false on error. + bool blocking_terminate(const std::nothrow_t&) __TBB_NOEXCEPT(true) { + return internal_blocking_terminate( /*throwing=*/false ); + } +#endif // __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE + + //! Shorthand for default constructor followed by call to initialize(number_of_threads). + task_scheduler_init( int number_of_threads=automatic, stack_size_type thread_stack_size=0 ) : my_scheduler(NULL) { // Two lowest order bits of the stack size argument may be taken to communicate // default exception propagation mode of the client to be used when the @@ -111,10 +123,6 @@ public: #if TBB_USE_EXCEPTIONS thread_stack_size |= TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact; #endif /* TBB_USE_EXCEPTIONS */ -#if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - if (wait_workers_in_terminate) - my_scheduler = (internal::scheduler*)wait_workers_in_terminate_flag; -#endif initialize( number_of_threads, thread_stack_size ); } diff --git a/lib/3rdParty/tbb/include/tbb/task_scheduler_observer.h b/lib/3rdParty/tbb/include/tbb/task_scheduler_observer.h index ba5854f..5586ad4 100644 --- a/lib/3rdParty/tbb/include/tbb/task_scheduler_observer.h +++ b/lib/3rdParty/tbb/include/tbb/task_scheduler_observer.h @@ -1,30 +1,30 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_task_scheduler_observer_H #define __TBB_task_scheduler_observer_H #include "atomic.h" -#if __TBB_TASK_ARENA +#if __TBB_ARENA_OBSERVER || __TBB_SLEEP_PERMISSION #include "task_arena.h" -#endif //__TBB_TASK_ARENA +#endif #if __TBB_SCHEDULER_OBSERVER @@ -88,7 +88,7 @@ public: } // namespace internal -#if __TBB_ARENA_OBSERVER +#if __TBB_ARENA_OBSERVER || __TBB_SLEEP_PERMISSION namespace interface6 { class task_scheduler_observer : public internal::task_scheduler_observer_v3 { friend class internal::task_scheduler_observer_v3; @@ -115,19 +115,24 @@ public: guarantees and is not composable. Thus the current default behavior of the constructor is obsolete too and will be changed in one of the future versions of the library. **/ - task_scheduler_observer( bool local = false ) { + explicit task_scheduler_observer( bool local = false ) { +#if __TBB_ARENA_OBSERVER my_context_tag = local? implicit_tag : global_tag; +#else + __TBB_ASSERT_EX( !local, NULL ); + my_context_tag = global_tag; +#endif } -#if __TBB_TASK_ARENA +#if __TBB_ARENA_OBSERVER //! Construct local observer for a given arena in inactive state (observation disabled). /** entry/exit notifications are invoked whenever a thread joins/leaves arena. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. **/ - task_scheduler_observer( task_arena & a) { + explicit task_scheduler_observer( task_arena & a) { my_context_tag = (intptr_t)&a; } -#endif //__TBB_TASK_ARENA +#endif /* __TBB_ARENA_OBSERVER */ /** Destructor protects instance of the observer from concurrent notification. It is recommended to disable observation before destructor of a derived class starts, @@ -145,6 +150,7 @@ public: internal::task_scheduler_observer_v3::observe(state); } +#if __TBB_SLEEP_PERMISSION //! Return commands for may_sleep() enum { keep_awake = false, allow_sleep = true }; @@ -152,13 +158,14 @@ public: /** If it returns false ('keep_awake'), the thread will keep spinning and looking for work. It will not be called for master threads. **/ virtual bool may_sleep() { return allow_sleep; } +#endif /*__TBB_SLEEP_PERMISSION*/ }; } //namespace interface6 using interface6::task_scheduler_observer; -#else /*__TBB_ARENA_OBSERVER*/ +#else /*__TBB_ARENA_OBSERVER || __TBB_SLEEP_PERMISSION*/ typedef tbb::internal::task_scheduler_observer_v3 task_scheduler_observer; -#endif /*__TBB_ARENA_OBSERVER*/ +#endif /*__TBB_ARENA_OBSERVER || __TBB_SLEEP_PERMISSION*/ } // namespace tbb diff --git a/lib/3rdParty/tbb/include/tbb/tbb.h b/lib/3rdParty/tbb/include/tbb/tbb.h index d6c9d75..5e385ea 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb.h +++ b/lib/3rdParty/tbb/include/tbb/tbb.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tbb_H diff --git a/lib/3rdParty/tbb/include/tbb/tbb_allocator.h b/lib/3rdParty/tbb/include/tbb/tbb_allocator.h index 3707ef6..6346d86 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_allocator.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_allocator.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tbb_allocator_H diff --git a/lib/3rdParty/tbb/include/tbb/tbb_config.h b/lib/3rdParty/tbb/include/tbb/tbb_config.h index caade25..25f9f24 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_config.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_config.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tbb_config_H @@ -34,15 +34,27 @@ */ #define __TBB_TODO 0 -/*Check which standard library we use on OS X.*/ +/*Check which standard library we use on macOS*.*/ /*__TBB_SYMBOL is defined only while processing exported symbols list where C++ is not allowed.*/ -#if !defined(__TBB_SYMBOL) && __APPLE__ +#if !defined(__TBB_SYMBOL) && (__APPLE__ || __ANDROID__) #include #endif -// note that when ICC is in use __TBB_GCC_VERSION might not closely match GCC version on the machine +// note that when ICC or Clang is in use, __TBB_GCC_VERSION might not fully match +// the actual GCC version on the system. #define __TBB_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +// Since GNU libstdc++ does not have a convenient macro for its version, +// we rely on the version of GCC or the user-specified macro below. +// The format of TBB_USE_GLIBCXX_VERSION should match the __TBB_GCC_VERSION above, +// e.g. it should be set to 40902 for libstdc++ coming with GCC 4.9.2. +#ifdef TBB_USE_GLIBCXX_VERSION +#define __TBB_GLIBCXX_VERSION TBB_USE_GLIBCXX_VERSION +#else +#define __TBB_GLIBCXX_VERSION __TBB_GCC_VERSION +//TODO: analyze __GLIBCXX__ instead of __TBB_GCC_VERSION ? +#endif + #if __clang__ /**according to clang documentation version can be vendor specific **/ #define __TBB_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) @@ -86,7 +98,7 @@ #define __TBB_DEFINE_MIC 1 #endif -#define __TBB_TSX_AVAILABLE (__TBB_x86_32 || __TBB_x86_64) && !__TBB_DEFINE_MIC +#define __TBB_TSX_AVAILABLE ((__TBB_x86_32 || __TBB_x86_64) && !__TBB_DEFINE_MIC) /** Presence of compiler features **/ @@ -102,7 +114,7 @@ #endif /* Select particular features of C++11 based on compiler version. - ICC 12.1 (Linux), GCC 4.3 and higher, clang 2.9 and higher + ICC 12.1 (Linux*), GCC 4.3 and higher, clang 2.9 and higher set __GXX_EXPERIMENTAL_CXX0X__ in c++11 mode. Compilers that mimics other compilers (ICC, clang) must be processed before @@ -112,144 +124,194 @@ support added. */ -#if __INTEL_COMPILER - /** C++11 mode detection macros for Intel C++ compiler (enabled by -std=c++0x option): - __INTEL_CXX11_MODE__ for version >=13.0 - __STDC_HOSTED__ for version >=12.0 on Windows, - __GXX_EXPERIMENTAL_CXX0X__ for version >=12.0 on Linux and OS X. **/ - // On Windows, C++11 features supported by Visual Studio 2010 and higher are enabled by default - #ifndef __INTEL_CXX11_MODE__ - #define __INTEL_CXX11_MODE__ ((_MSC_VER && __STDC_HOSTED__) || __GXX_EXPERIMENTAL_CXX0X__) - // TODO: check if more conditions can be simplified with the above macro - #endif - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (__INTEL_CXX11_MODE__ && __VARIADIC_TEMPLATES) +/** C++11 mode detection macros for Intel(R) C++ compiler (enabled by -std=c++XY option): + __INTEL_CXX11_MODE__ for version >=13.0 (not available for ICC 15.0 if -std=c++14 is used), + __STDC_HOSTED__ for version >=12.0 (useful only on Windows), + __GXX_EXPERIMENTAL_CXX0X__ for version >=12.0 on Linux and macOS. **/ +#if __INTEL_COMPILER && !__INTEL_CXX11_MODE__ + // __INTEL_CXX11_MODE__ is not set, try to deduce it + #define __INTEL_CXX11_MODE__ (__GXX_EXPERIMENTAL_CXX0X__ || (_MSC_VER && __STDC_HOSTED__)) +#endif + +// Intel(R) C++ Compiler offloading API to the Intel(R) Graphics Technology presence macro +// TODO: add support for ICC 15.00 _GFX_enqueue API and then decrease Intel compiler supported version +// TODO: add linux support and restict it with (__linux__ && __TBB_x86_64 && !__ANDROID__) macro +#if __INTEL_COMPILER >= 1600 && _WIN32 +#define __TBB_GFX_PRESENT 1 +#endif + +#if __INTEL_COMPILER && (!_MSC_VER || __INTEL_CXX11_MODE__) + // On Windows, C++11 features supported by Visual Studio 2010 and higher are enabled by default, + // so in absence of /Qstd= use MSVC branch for __TBB_CPP11_* detection. + // On other platforms, no -std= means C++03. + + #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (__INTEL_CXX11_MODE__ && __VARIADIC_TEMPLATES) // Both r-value reference support in compiler and std::move/std::forward // presence in C++ standard library is checked. - #define __TBB_CPP11_RVALUE_REF_PRESENT ((__GXX_EXPERIMENTAL_CXX0X__ && (__TBB_GCC_VERSION >= 40300 || _LIBCPP_VERSION) || _MSC_VER >= 1600) && __INTEL_COMPILER >= 1200) + #define __TBB_CPP11_RVALUE_REF_PRESENT ((_MSC_VER >= 1700 || __GXX_EXPERIMENTAL_CXX0X__ && (__TBB_GLIBCXX_VERSION >= 40500 || _LIBCPP_VERSION)) && __INTEL_COMPILER >= 1400) + #define __TBB_IMPLICIT_MOVE_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 && (_MSC_VER >= 1900 || __TBB_GCC_VERSION >= 40600 || __clang__)) #if _MSC_VER >= 1600 - #define __TBB_EXCEPTION_PTR_PRESENT ( __INTEL_COMPILER > 1300 \ - /*ICC 12.1 Upd 10 and 13 beta Upd 2 fixed exception_ptr linking issue*/ \ - || (__INTEL_COMPILER == 1300 && __INTEL_COMPILER_BUILD_DATE >= 20120530) \ - || (__INTEL_COMPILER == 1210 && __INTEL_COMPILER_BUILD_DATE >= 20120410) ) + #define __TBB_EXCEPTION_PTR_PRESENT ( __INTEL_COMPILER > 1300 \ + /*ICC 12.1 Upd 10 and 13 beta Upd 2 fixed exception_ptr linking issue*/ \ + || (__INTEL_COMPILER == 1300 && __INTEL_COMPILER_BUILD_DATE >= 20120530) \ + || (__INTEL_COMPILER == 1210 && __INTEL_COMPILER_BUILD_DATE >= 20120410) ) /** libstdc++ that comes with GCC 4.6 use C++11 features not supported by ICC 12.1. - * Because of that ICC 12.1 does not support C++11 mode with with gcc 4.6 (or higher), - * and therefore does not define __GXX_EXPERIMENTAL_CXX0X__ macro **/ - #elif __TBB_GCC_VERSION >= 40404 && __TBB_GCC_VERSION < 40600 - #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1200) - #elif __TBB_GCC_VERSION >= 40600 - #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1300) + * Because of that ICC 12.1 does not support C++11 mode with gcc 4.6 (or higher), + * and therefore does not define __GXX_EXPERIMENTAL_CXX0X__ macro **/ + #elif __TBB_GLIBCXX_VERSION >= 40404 && __TBB_GLIBCXX_VERSION < 40600 + #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1200) + #elif __TBB_GLIBCXX_VERSION >= 40600 + #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1300) #elif _LIBCPP_VERSION - #define __TBB_EXCEPTION_PTR_PRESENT __GXX_EXPERIMENTAL_CXX0X__ + #define __TBB_EXCEPTION_PTR_PRESENT __GXX_EXPERIMENTAL_CXX0X__ #else - #define __TBB_EXCEPTION_PTR_PRESENT 0 + #define __TBB_EXCEPTION_PTR_PRESENT 0 #endif - #define __TBB_STATIC_ASSERT_PRESENT (__INTEL_CXX11_MODE__ || _MSC_VER >= 1600) - #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600 || (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300)) + #define __TBB_STATIC_ASSERT_PRESENT (__INTEL_CXX11_MODE__ || _MSC_VER >= 1600) + #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && (__TBB_GLIBCXX_VERSION >= 40300 || _LIBCPP_VERSION)) #if (__clang__ && __INTEL_COMPILER > 1400) /* Older versions of Intel Compiler do not have __has_include */ #if (__has_feature(__cxx_generalized_initializers__) && __has_include()) - #define __TBB_INITIALIZER_LISTS_PRESENT 1 + #define __TBB_INITIALIZER_LISTS_PRESENT 1 #endif #else - #define __TBB_INITIALIZER_LISTS_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 && (_MSC_VER >= 1800 || __TBB_GCC_VERSION >= 40400 || _LIBCPP_VERSION) + #define __TBB_INITIALIZER_LISTS_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 && (_MSC_VER >= 1800 || __TBB_GLIBCXX_VERSION >= 40400 || _LIBCPP_VERSION)) #endif - - #define __TBB_CONSTEXPR_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200 + #define __TBB_CONSTEXPR_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400) + #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200) /** ICC seems to disable support of noexcept event in c++11 when compiling in compatibility mode for gcc <4.6 **/ - #define __TBB_NOEXCEPT_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1300 && (__TBB_GCC_VERSION >= 40600 || _LIBCPP_VERSION || _MSC_VER) - #define __TBB_CPP11_STD_BEGIN_END_PRESENT (_MSC_VER >= 1700 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1310 && (__TBB_GCC_VERSION >= 40600 || _LIBCPP_VERSION)) - #define __TBB_CPP11_AUTO_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) - #define __TBB_CPP11_DECLTYPE_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) - #define __TBB_CPP11_LAMBDAS_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200) + #define __TBB_NOEXCEPT_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1300 && (__TBB_GLIBCXX_VERSION >= 40600 || _LIBCPP_VERSION || _MSC_VER)) + #define __TBB_CPP11_STD_BEGIN_END_PRESENT (_MSC_VER >= 1700 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1310 && (__TBB_GLIBCXX_VERSION >= 40600 || _LIBCPP_VERSION)) + #define __TBB_CPP11_AUTO_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) + #define __TBB_CPP11_DECLTYPE_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) + #define __TBB_CPP11_LAMBDAS_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200) + #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT (_MSC_VER >= 1800 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) + #define __TBB_OVERRIDE_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400) + #define __TBB_ALIGNAS_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1500) + #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1210) #elif __clang__ -//TODO: these options need to be rechecked -/** on OS X* the only way to get C++11 is to use clang. For library features (e.g. exception_ptr) libc++ is also +/** TODO: these options need to be rechecked **/ +/** on macOS the only way to get C++11 is to use clang. For library features (e.g. exception_ptr) libc++ is also * required. So there is no need to check GCC version for clang**/ - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (__has_feature(__cxx_variadic_templates__)) - #define __TBB_CPP11_RVALUE_REF_PRESENT (__has_feature(__cxx_rvalue_references__) && (__TBB_GCC_VERSION >= 40300 || _LIBCPP_VERSION)) + #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __has_feature(__cxx_variadic_templates__) + #define __TBB_CPP11_RVALUE_REF_PRESENT (__has_feature(__cxx_rvalue_references__) && (_LIBCPP_VERSION || __TBB_GLIBCXX_VERSION >= 40500)) + #define __TBB_IMPLICIT_MOVE_PRESENT __has_feature(cxx_implicit_moves) /** TODO: extend exception_ptr related conditions to cover libstdc++ **/ - #define __TBB_EXCEPTION_PTR_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION) - #define __TBB_STATIC_ASSERT_PRESENT __has_feature(__cxx_static_assert__) + #define __TBB_EXCEPTION_PTR_PRESENT (__cplusplus >= 201103L && (_LIBCPP_VERSION || __TBB_GLIBCXX_VERSION >= 40600)) + #define __TBB_STATIC_ASSERT_PRESENT __has_feature(__cxx_static_assert__) /**Clang (preprocessor) has problems with dealing with expression having __has_include in #ifs * used inside C++ code. (At least version that comes with OS X 10.8 : Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)) **/ #if (__GXX_EXPERIMENTAL_CXX0X__ && __has_include()) - #define __TBB_CPP11_TUPLE_PRESENT 1 + #define __TBB_CPP11_TUPLE_PRESENT 1 #endif #if (__has_feature(__cxx_generalized_initializers__) && __has_include()) - #define __TBB_INITIALIZER_LISTS_PRESENT 1 + #define __TBB_INITIALIZER_LISTS_PRESENT 1 #endif - #define __TBB_CONSTEXPR_PRESENT __has_feature(__cxx_constexpr__) - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__has_feature(__cxx_defaulted_functions__) && __has_feature(__cxx_deleted_functions__)) + #define __TBB_CONSTEXPR_PRESENT __has_feature(__cxx_constexpr__) + #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__has_feature(__cxx_defaulted_functions__) && __has_feature(__cxx_deleted_functions__)) /**For some unknown reason __has_feature(__cxx_noexcept) does not yield true for all cases. Compiler bug ? **/ - #define __TBB_NOEXCEPT_PRESENT (__cplusplus >= 201103L) - #define __TBB_CPP11_STD_BEGIN_END_PRESENT (__has_feature(__cxx_range_for__) && _LIBCPP_VERSION) - #define __TBB_CPP11_AUTO_PRESENT __has_feature(__cxx_auto_type__) - #define __TBB_CPP11_DECLTYPE_PRESENT __has_feature(__cxx_decltype__) - #define __TBB_CPP11_LAMBDAS_PRESENT __has_feature(cxx_lambdas) + #define __TBB_NOEXCEPT_PRESENT (__cplusplus >= 201103L) + #define __TBB_CPP11_STD_BEGIN_END_PRESENT (__has_feature(__cxx_range_for__) && (_LIBCPP_VERSION || __TBB_GLIBCXX_VERSION >= 40600)) + #define __TBB_CPP11_AUTO_PRESENT __has_feature(__cxx_auto_type__) + #define __TBB_CPP11_DECLTYPE_PRESENT __has_feature(__cxx_decltype__) + #define __TBB_CPP11_LAMBDAS_PRESENT __has_feature(cxx_lambdas) + #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT __has_feature(cxx_default_function_template_args) + #define __TBB_OVERRIDE_PRESENT __has_feature(cxx_override_control) + #define __TBB_ALIGNAS_PRESENT __has_feature(cxx_alignas) + #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT __has_feature(cxx_alias_templates) #elif __GNUC__ - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __GXX_EXPERIMENTAL_CXX0X__ - #define __TBB_CPP11_RVALUE_REF_PRESENT __GXX_EXPERIMENTAL_CXX0X__ + #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __GXX_EXPERIMENTAL_CXX0X__ + #define __TBB_CPP11_VARIADIC_FIXED_LENGTH_EXP_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700) + #define __TBB_CPP11_RVALUE_REF_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40500) + #define __TBB_IMPLICIT_MOVE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) /** __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 here is a substitution for _GLIBCXX_ATOMIC_BUILTINS_4, which is a prerequisite for exception_ptr but cannot be used in this file because it is defined in a header, not by the compiler. If the compiler has no atomic intrinsics, the C++ library should not expect those as well. **/ - #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) - #define __TBB_STATIC_ASSERT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) - #define __TBB_CPP11_TUPLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) - #define __TBB_INITIALIZER_LISTS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) + #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) + #define __TBB_STATIC_ASSERT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) + #define __TBB_CPP11_TUPLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) + #define __TBB_INITIALIZER_LISTS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) /** gcc seems have to support constexpr from 4.4 but tests in (test_atomic) seeming reasonable fail to compile prior 4.6**/ - #define __TBB_CONSTEXPR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) - #define __TBB_NOEXCEPT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) - #define __TBB_CPP11_STD_BEGIN_END_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) - #define __TBB_CPP11_AUTO_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) - #define __TBB_CPP11_DECLTYPE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) - #define __TBB_CPP11_LAMBDAS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40500) + #define __TBB_CONSTEXPR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) + #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) + #define __TBB_NOEXCEPT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) + #define __TBB_CPP11_STD_BEGIN_END_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) + #define __TBB_CPP11_AUTO_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) + #define __TBB_CPP11_DECLTYPE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) + #define __TBB_CPP11_LAMBDAS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40500) + #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) + #define __TBB_OVERRIDE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700) + #define __TBB_ALIGNAS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40800) + #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700) #elif _MSC_VER - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (_MSC_VER >= 1800) - #define __TBB_CPP11_RVALUE_REF_PRESENT (_MSC_VER >= 1600) - #define __TBB_EXCEPTION_PTR_PRESENT (_MSC_VER >= 1600) - #define __TBB_STATIC_ASSERT_PRESENT (_MSC_VER >= 1600) - #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600) - #define __TBB_INITIALIZER_LISTS_PRESENT (_MSC_VER >= 1800) - #define __TBB_CONSTEXPR_PRESENT (_MSC_VER >= 1900) - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (_MSC_VER >= 1800) - #define __TBB_NOEXCEPT_PRESENT (_MSC_VER >= 1900) - #define __TBB_CPP11_STD_BEGIN_END_PRESENT (_MSC_VER >= 1700) - #define __TBB_CPP11_AUTO_PRESENT (_MSC_VER >= 1600) - #define __TBB_CPP11_DECLTYPE_PRESENT (_MSC_VER >= 1600) - #define __TBB_CPP11_LAMBDAS_PRESENT (_MSC_VER >= 1600) + // These definitions are also used with Intel Compiler in "default" mode; see a comment above. + + #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (_MSC_VER >= 1800) + // Contains a workaround for ICC 13 + #define __TBB_CPP11_RVALUE_REF_PRESENT (_MSC_VER >= 1700 && (!__INTEL_COMPILER || __INTEL_COMPILER >= 1400)) + #define __TBB_IMPLICIT_MOVE_PRESENT (_MSC_VER >= 1900) + #define __TBB_EXCEPTION_PTR_PRESENT (_MSC_VER >= 1600) + #define __TBB_STATIC_ASSERT_PRESENT (_MSC_VER >= 1600) + #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600) + #define __TBB_INITIALIZER_LISTS_PRESENT (_MSC_VER >= 1800) + #define __TBB_CONSTEXPR_PRESENT (_MSC_VER >= 1900) + #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (_MSC_VER >= 1800) + #define __TBB_NOEXCEPT_PRESENT (_MSC_VER >= 1900) + #define __TBB_CPP11_STD_BEGIN_END_PRESENT (_MSC_VER >= 1700) + #define __TBB_CPP11_AUTO_PRESENT (_MSC_VER >= 1600) + #define __TBB_CPP11_DECLTYPE_PRESENT (_MSC_VER >= 1600) + #define __TBB_CPP11_LAMBDAS_PRESENT (_MSC_VER >= 1600) + #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT (_MSC_VER >= 1800) + #define __TBB_OVERRIDE_PRESENT (_MSC_VER >= 1700) + #define __TBB_ALIGNAS_PRESENT (_MSC_VER >= 1900) + #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT (_MSC_VER >= 1800) #else - #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT 0 - #define __TBB_CPP11_RVALUE_REF_PRESENT 0 - #define __TBB_EXCEPTION_PTR_PRESENT 0 - #define __TBB_STATIC_ASSERT_PRESENT 0 - #define __TBB_CPP11_TUPLE_PRESENT 0 - #define __TBB_INITIALIZER_LISTS_PRESENT 0 - #define __TBB_CONSTEXPR_PRESENT 0 - #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT 0 - #define __TBB_NOEXCEPT_PRESENT 0 - #define __TBB_CPP11_STD_BEGIN_END_PRESENT 0 - #define __TBB_CPP11_AUTO_PRESENT 0 - #define __TBB_CPP11_DECLTYPE_PRESENT 0 - #define __TBB_CPP11_LAMBDAS_PRESENT 0 + #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT 0 + #define __TBB_CPP11_RVALUE_REF_PRESENT 0 + #define __TBB_IMPLICIT_MOVE_PRESENT 0 + #define __TBB_EXCEPTION_PTR_PRESENT 0 + #define __TBB_STATIC_ASSERT_PRESENT 0 + #define __TBB_CPP11_TUPLE_PRESENT 0 + #define __TBB_INITIALIZER_LISTS_PRESENT 0 + #define __TBB_CONSTEXPR_PRESENT 0 + #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT 0 + #define __TBB_NOEXCEPT_PRESENT 0 + #define __TBB_CPP11_STD_BEGIN_END_PRESENT 0 + #define __TBB_CPP11_AUTO_PRESENT 0 + #define __TBB_CPP11_DECLTYPE_PRESENT 0 + #define __TBB_CPP11_LAMBDAS_PRESENT 0 + #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT 0 + #define __TBB_OVERRIDE_PRESENT 0 + #define __TBB_ALIGNAS_PRESENT 0 + #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT 0 #endif // C++11 standard library features +#ifndef __TBB_CPP11_VARIADIC_FIXED_LENGTH_EXP_PRESENT +#define __TBB_CPP11_VARIADIC_FIXED_LENGTH_EXP_PRESENT __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT +#endif #define __TBB_CPP11_VARIADIC_TUPLE_PRESENT (!_MSC_VER || _MSC_VER >=1800) -#define __TBB_CPP11_TYPE_PROPERTIES_PRESENT (_LIBCPP_VERSION || _MSC_VER >= 1700 || (__TBB_GCC_VERSION >= 50000 && __GXX_EXPERIMENTAL_CXX0X__)) -#define __TBB_TR1_TYPE_PROPERTIES_IN_STD_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300 || _MSC_VER >= 1600) -// GCC supported some of type properties since 4.7 -#define __TBB_CPP11_IS_COPY_CONSTRUCTIBLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 || __TBB_CPP11_TYPE_PROPERTIES_PRESENT) -// In GCC and MSVC, implementation of std::move_if_noexcept is not aligned with noexcept -#define __TBB_MOVE_IF_NOEXCEPT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 || _MSC_VER >= 1900 || __clang__ && _LIBCPP_VERSION && __TBB_NOEXCEPT_PRESENT) -//TODO: Probably more accurate way is to analyze version of stdlibc++ via__GLIBCXX__ instead of __TBB_GCC_VERSION -#define __TBB_ALLOCATOR_TRAITS_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION || _MSC_VER >= 1700 || \ - __GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 && !(__TBB_GCC_VERSION == 40700 && __TBB_DEFINE_MIC) \ - ) -#define __TBB_MAKE_EXCEPTION_PTR_PRESENT (__TBB_EXCEPTION_PTR_PRESENT && (_MSC_VER >= 1700 || __TBB_GCC_VERSION >= 40600 || _LIBCPP_VERSION)) +#define __TBB_CPP11_TYPE_PROPERTIES_PRESENT (_LIBCPP_VERSION || _MSC_VER >= 1700 || (__TBB_GLIBCXX_VERSION >= 50000 && __GXX_EXPERIMENTAL_CXX0X__)) +#define __TBB_TR1_TYPE_PROPERTIES_IN_STD_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GLIBCXX_VERSION >= 40300 || _MSC_VER >= 1600) +// GCC supported some of type properties since 4.7 +#define __TBB_CPP11_IS_COPY_CONSTRUCTIBLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GLIBCXX_VERSION >= 40700 || __TBB_CPP11_TYPE_PROPERTIES_PRESENT) + +// In GCC, std::move_if_noexcept appeared later than noexcept +#define __TBB_MOVE_IF_NOEXCEPT_PRESENT (__TBB_NOEXCEPT_PRESENT && (__TBB_GLIBCXX_VERSION >= 40700 || _MSC_VER >= 1900 || _LIBCPP_VERSION)) +#define __TBB_ALLOCATOR_TRAITS_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION || _MSC_VER >= 1700 || \ + __GXX_EXPERIMENTAL_CXX0X__ && __TBB_GLIBCXX_VERSION >= 40700 && !(__TBB_GLIBCXX_VERSION == 40700 && __TBB_DEFINE_MIC)) +#define __TBB_MAKE_EXCEPTION_PTR_PRESENT (__TBB_EXCEPTION_PTR_PRESENT && (_MSC_VER >= 1700 || __TBB_GLIBCXX_VERSION >= 40600 || _LIBCPP_VERSION)) + +#define __TBB_CPP11_FUTURE_PRESENT (_MSC_VER >= 1700 || __TBB_GLIBCXX_VERSION >= 40600 && _GXX_EXPERIMENTAL_CXX0X__ || _LIBCPP_VERSION) + +// std::swap is in only since C++11, though MSVC had it at least since VS2005 +#if _MSC_VER>=1400 || _LIBCPP_VERSION || __GXX_EXPERIMENTAL_CXX0X__ +#define __TBB_STD_SWAP_HEADER +#else +#define __TBB_STD_SWAP_HEADER +#endif //TODO: not clear how exactly this macro affects exception_ptr - investigate // On linux ICC fails to find existing std::exception_ptr in libstdc++ without this define @@ -285,11 +347,32 @@ #define __TBB_TSX_INTRINSICS_PRESENT ((__RTM__ || _MSC_VER>=1700 || __INTEL_COMPILER>=1300) && !__TBB_DEFINE_MIC && !__ANDROID__) -/** User controlled TBB features & modes **/ +/** Macro helpers **/ +#define __TBB_CONCAT_AUX(A,B) A##B +// The additional level of indirection is needed to expand macros A and B (not to get the AB macro). +// See [cpp.subst] and [cpp.concat] for more details. +#define __TBB_CONCAT(A,B) __TBB_CONCAT_AUX(A,B) +// The IGNORED argument and comma are needed to always have 2 arguments (even when A is empty). +#define __TBB_IS_MACRO_EMPTY(A,IGNORED) __TBB_CONCAT_AUX(__TBB_MACRO_EMPTY,A) +#define __TBB_MACRO_EMPTY 1 +/** User controlled TBB features & modes **/ #ifndef TBB_USE_DEBUG +/* +There are four cases that are supported: + 1. "_DEBUG is undefined" means "no debug"; + 2. "_DEBUG defined to something that is evaluated to 0 (the "garbage" is also evaluated to 0 [cpp.cond])" means "no debug"; + 3. "_DEBUG defined to something that is evaluated to non-zero value" means "debug"; + 4. "_DEBUG defined to nothing (empty)" means "debug". +*/ #ifdef _DEBUG +// Check if _DEBUG is empty. +#define __TBB_IS__DEBUG_EMPTY (__TBB_IS_MACRO_EMPTY(_DEBUG,IGNORED)==__TBB_MACRO_EMPTY) +#if __TBB_IS__DEBUG_EMPTY +#define TBB_USE_DEBUG 1 +#else #define TBB_USE_DEBUG _DEBUG +#endif /* __TBB_IS__DEBUG_EMPTY */ #else #define TBB_USE_DEBUG 0 #endif @@ -311,7 +394,7 @@ #endif /* TBB_PEFORMANCE_WARNINGS */ #endif /* TBB_USE_PERFORMANCE_WARNINGS */ -#if __TBB_DEFINE_MIC || defined(_XBOX) +#if __TBB_DEFINE_MIC #if TBB_USE_EXCEPTIONS #error The platform does not properly support exception handling. Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. #elif !defined(TBB_USE_EXCEPTIONS) @@ -340,7 +423,7 @@ #if __clang__ /* Old versions of Intel Compiler do not have __has_include or cannot use it in #define */ #if (__INTEL_COMPILER && (__INTEL_COMPILER < 1500 || __INTEL_COMPILER == 1500 && __INTEL_COMPILER_UPDATE <= 1)) - #define TBB_IMPLEMENT_CPP0X !(_LIBCPP_VERSION && (__cplusplus >= 201103L)) + #define TBB_IMPLEMENT_CPP0X (__cplusplus < 201103L || !_LIBCPP_VERSION) #else #define TBB_IMPLEMENT_CPP0X (__cplusplus < 201103L || (!__has_include() && !__has_include())) #endif @@ -413,15 +496,7 @@ #error __TBB_FP_CONTEXT requires __TBB_TASK_GROUP_CONTEXT to be enabled #endif -#ifndef __TBB_TASK_ARENA - #define __TBB_TASK_ARENA 1 -#endif /* __TBB_TASK_ARENA */ -#if __TBB_TASK_ARENA - #define __TBB_RECYCLE_TO_ENQUEUE __TBB_BUILD // keep non-official - #if !__TBB_SCHEDULER_OBSERVER - #error __TBB_TASK_ARENA requires __TBB_SCHEDULER_OBSERVER to be enabled - #endif -#endif /* __TBB_TASK_ARENA */ +#define __TBB_RECYCLE_TO_ENQUEUE __TBB_BUILD // keep non-official #ifndef __TBB_ARENA_OBSERVER #define __TBB_ARENA_OBSERVER ((__TBB_BUILD||TBB_PREVIEW_LOCAL_OBSERVER)&& __TBB_SCHEDULER_OBSERVER) @@ -431,6 +506,10 @@ #define __TBB_SLEEP_PERMISSION ((__TBB_CPF_BUILD||TBB_PREVIEW_LOCAL_OBSERVER)&& __TBB_SCHEDULER_OBSERVER) #endif /* __TBB_SLEEP_PERMISSION */ +#ifndef __TBB_TASK_ISOLATION + #define __TBB_TASK_ISOLATION (__TBB_CPF_BUILD||TBB_PREVIEW_TASK_ISOLATION) +#endif /* __TBB_TASK_ISOLATION */ + #if TBB_PREVIEW_FLOW_GRAPH_TRACE // Users of flow-graph trace need to explicitly link against the preview library. This // prevents the linker from implicitly linking an application with a preview version of @@ -512,7 +591,7 @@ versions go out of the support list. **/ -#if __ANDROID__ && __TBB_GCC_VERSION <= 40403 && !__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 +#if __SIZEOF_POINTER__ < 8 && __ANDROID__ && __TBB_GCC_VERSION <= 40403 && !__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 /** Necessary because on Android 8-byte CAS and F&A are not available for some processor architectures, but no mandatory warning message appears from GCC 4.4.3. Instead, only a linkage error occurs when these atomic operations are used (such as in unit test test_atomic.exe). **/ @@ -535,23 +614,20 @@ #define __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN 1 #endif -#if !__INTEL_COMPILER && (_MSC_VER && _MSC_VER < 1500 || __TBB_GCC_VERSION && __TBB_GCC_VERSION < 40102) +#if !__INTEL_COMPILER && (_MSC_VER && _MSC_VER < 1500 || __GNUC__ && __TBB_GCC_VERSION < 40102) /** gcc 3.4.6 (and earlier) and VS2005 (and earlier) do not allow declaring template class as a friend of classes defined in other namespaces. **/ #define __TBB_TEMPLATE_FRIENDS_BROKEN 1 #endif -//TODO: recheck for different clang versions #if __GLIBC__==2 && __GLIBC_MINOR__==3 || (__APPLE__ && ( __INTEL_COMPILER==1200 && !TBB_USE_DEBUG)) /** Macro controlling EH usages in TBB tests. Some older versions of glibc crash when exception handling happens concurrently. **/ #define __TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN 1 -#else - #define __TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN 0 #endif #if (_WIN32||_WIN64) && __INTEL_COMPILER == 1110 - /** That's a bug in Intel compiler 11.1.044/IA-32/Windows, that leads to a worker thread crash on the thread's startup. **/ + /** That's a bug in Intel(R) C++ Compiler 11.1.044/IA-32 architecture/Windows* OS, that leads to a worker thread crash on the thread's startup. **/ #define __TBB_ICL_11_1_CODE_GEN_BROKEN 1 #endif @@ -564,8 +640,6 @@ /** MinGW has a bug with stack alignment for routines invoked from MS RTLs. Since GCC 4.2, the bug can be worked around via a special attribute. **/ #define __TBB_SSE_STACK_ALIGNMENT_BROKEN 1 -#else - #define __TBB_SSE_STACK_ALIGNMENT_BROKEN 0 #endif #if __TBB_GCC_VERSION==40300 && !__INTEL_COMPILER && !__clang__ @@ -584,7 +658,7 @@ #endif /* __FreeBSD__ */ #if (__linux__ || __APPLE__) && __i386__ && defined(__INTEL_COMPILER) - /** The Intel compiler for IA-32 (Linux|OS X) crashes or generates + /** The Intel(R) C++ Compiler for IA-32 architecture (Linux* OS|macOS) crashes or generates incorrect code when __asm__ arguments have a cast to volatile. **/ #define __TBB_ICC_ASM_VOLATILE_BROKEN 1 #endif @@ -602,26 +676,22 @@ #if __GXX_EXPERIMENTAL_CXX0X__ && !defined(__EXCEPTIONS) && \ ((!__INTEL_COMPILER && !__clang__ && (__TBB_GCC_VERSION>=40400 && __TBB_GCC_VERSION<40600)) || \ - (__INTEL_COMPILER<=1400 && (__TBB_GCC_VERSION>=40400 && __TBB_GCC_VERSION<=40801))) + (__INTEL_COMPILER<=1400 && (__TBB_GLIBCXX_VERSION>=40400 && __TBB_GLIBCXX_VERSION<=40801))) /* There is an issue for specific GCC toolchain when C++11 is enabled and exceptions are disabled: exceprion_ptr.h/nested_exception.h use throw unconditionally. GCC can ignore 'throw' since 4.6; but with ICC the issue still exists. */ #define __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN 1 -#else - #define __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN 0 #endif -#if __INTEL_COMPILER==1300 && __TBB_GCC_VERSION>=40700 && defined(__GXX_EXPERIMENTAL_CXX0X__) +#if __INTEL_COMPILER==1300 && __TBB_GLIBCXX_VERSION>=40700 && defined(__GXX_EXPERIMENTAL_CXX0X__) /* Some C++11 features used inside libstdc++ are not supported by Intel compiler. * Checking version of gcc instead of libstdc++ because * - they are directly connected, * - for now it is not possible to check version of any standard library in this file */ #define __TBB_ICC_13_0_CPP11_STDLIB_SUPPORT_BROKEN 1 -#else - #define __TBB_ICC_13_0_CPP11_STDLIB_SUPPORT_BROKEN 0 #endif #if (__GNUC__==4 && __GNUC_MINOR__==4 ) && !defined(__INTEL_COMPILER) && !defined(__clang__) @@ -638,13 +708,15 @@ #define __TBB_GCC_CAS8_BUILTIN_INLINING_BROKEN 1 #endif -#if __TBB_x86_32 && (__linux__ || __APPLE__ || _WIN32 || __sun || __ANDROID__) && (__INTEL_COMPILER || (__GNUC__==3 && __GNUC_MINOR__==3 )||(__MINGW32__ ) && (__GNUC__==4 && __GNUC_MINOR__==5 ) || __SUNPRO_CC) - // Some compilers for IA-32 fail to provide 8-byte alignment of objects on the stack, - // even if the object specifies 8-byte alignment. On such platforms, the IA-32 implementation - // of 64 bit atomics (e.g. atomic) use different tactics depending upon - // whether the object is properly aligned or not. +#if __TBB_x86_32 && ( __INTEL_COMPILER || (__GNUC__==5 && __GNUC_MINOR__>=2 && __GXX_EXPERIMENTAL_CXX0X__) \ + || (__GNUC__==3 && __GNUC_MINOR__==3) || (__MINGW32__ && __GNUC__==4 && __GNUC_MINOR__==5) || __SUNPRO_CC ) + // Some compilers for IA-32 architecture fail to provide 8-byte alignment of objects on the stack, + // even if the object specifies 8-byte alignment. On such platforms, the implementation + // of 64 bit atomics for IA-32 architecture (e.g. atomic) use different tactics + // depending upon whether the object is properly aligned or not. #define __TBB_FORCE_64BIT_ALIGNMENT_BROKEN 1 #else + // Define to 0 explicitly because the macro is used in a compiled code of test_atomic #define __TBB_FORCE_64BIT_ALIGNMENT_BROKEN 0 #endif @@ -661,18 +733,15 @@ // A compiler bug: a disabled copy constructor prevents use of the moving constructor #define __TBB_IF_NO_COPY_CTOR_MOVE_SEMANTICS_BROKEN (_MSC_VER && (__INTEL_COMPILER >= 1300 && __INTEL_COMPILER <= 1310) && !__INTEL_CXX11_MODE__) -// MSVC 2013 and ICC do not generate implicit move constructor for empty derived class -#define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN (__TBB_CPP11_RVALUE_REF_PRESENT && \ - ( !__INTEL_COMPILER && _MSC_VER && _MSC_VER <= 1800 || __INTEL_COMPILER && __INTEL_COMPILER <= 1600 )) - #define __TBB_CPP11_DECLVAL_BROKEN (_MSC_VER == 1600 || (__GNUC__ && __TBB_GCC_VERSION < 40500) ) // Intel C++ compiler has difficulties with copying std::pair with VC11 std::reference_wrapper being a const member #define __TBB_COPY_FROM_NON_CONST_REF_BROKEN (_MSC_VER == 1700 && __INTEL_COMPILER && __INTEL_COMPILER < 1600) -//The implicit upcasting of the tuple of a reference of a derived class to a base class fails on icc 13.X -//if the system's gcc environment is 4.8 -#if (__INTEL_COMPILER >=1300 && __INTEL_COMPILER <=1310) && __TBB_GCC_VERSION>=40700 && __GXX_EXPERIMENTAL_CXX0X__ - #define __TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN 1 + +// The implicit upcasting of the tuple of a reference of a derived class to a base class fails on icc 13.X if the system's gcc environment is 4.8 +// Also in gcc 4.4 standard library the implementation of the tuple<&> conversion (tuple a = tuple, B is inherited from A) is broken. +#if __GXX_EXPERIMENTAL_CXX0X__ && ((__INTEL_COMPILER >=1300 && __INTEL_COMPILER <=1310 && __TBB_GLIBCXX_VERSION>=40700) || (__TBB_GLIBCXX_VERSION < 40500)) +#define __TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN 1 #endif /** End of __TBB_XXX_BROKEN macro section **/ @@ -685,8 +754,8 @@ #define __TBB_ATOMIC_CTORS (__TBB_CONSTEXPR_PRESENT && __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT && (!__TBB_ZERO_INIT_WITH_DEFAULTED_CTOR_BROKEN)) // Many OS versions (Android 4.0.[0-3] for example) need workaround for dlopen to avoid non-recursive loader lock hang -// Setting the workaround for all compile targets ($APP_PLATFORM) below Android 4.4 (android-19) -#if __ANDROID__ +// Setting the workaround for all compile targets ($APP_PLATFORM) below Android 4.4 (android-19) +#if __ANDROID__ #include #define __TBB_USE_DLOPEN_REENTRANCY_WORKAROUND (__ANDROID_API__ < 19) #endif @@ -696,8 +765,15 @@ #define __TBB_VARIADIC_PARALLEL_INVOKE (TBB_PREVIEW_VARIADIC_PARALLEL_INVOKE && __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_RVALUE_REF_PRESENT) #define __TBB_FLOW_GRAPH_CPP11_FEATURES (__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT \ && __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_AUTO_PRESENT) \ - && __TBB_CPP11_VARIADIC_TUPLE_PRESENT && !__TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN -#define __TBB_PREVIEW_ASYNC_NODE (__TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES) -#define __TBB_PREVIEW_OPENCL_NODE (__TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES && !TBB_IMPLEMENT_CPP0X) + && __TBB_CPP11_VARIADIC_TUPLE_PRESENT && __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT \ + && !__TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN +#define __TBB_PREVIEW_STREAMING_NODE (__TBB_CPP11_VARIADIC_FIXED_LENGTH_EXP_PRESENT && __TBB_FLOW_GRAPH_CPP11_FEATURES \ + && TBB_PREVIEW_FLOW_GRAPH_NODES && !TBB_IMPLEMENT_CPP0X && !__TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN) +#define __TBB_PREVIEW_OPENCL_NODE (__TBB_PREVIEW_STREAMING_NODE && __TBB_CPP11_TEMPLATE_ALIASES_PRESENT) #define __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING (TBB_PREVIEW_FLOW_GRAPH_FEATURES || __TBB_PREVIEW_OPENCL_NODE) +#define __TBB_PREVIEW_ASYNC_MSG (TBB_PREVIEW_FLOW_GRAPH_FEATURES && __TBB_FLOW_GRAPH_CPP11_FEATURES) + +#define __TBB_PREVIEW_GFX_FACTORY (__TBB_GFX_PRESENT && TBB_PREVIEW_FLOW_GRAPH_FEATURES && !__TBB_MIC_OFFLOAD \ + && __TBB_FLOW_GRAPH_CPP11_FEATURES && __TBB_CPP11_TEMPLATE_ALIASES_PRESENT \ + && __TBB_CPP11_FUTURE_PRESENT) #endif /* __TBB_tbb_config_H */ diff --git a/lib/3rdParty/tbb/include/tbb/tbb_exception.h b/lib/3rdParty/tbb/include/tbb/tbb_exception.h index 73948c3..1c84330 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_exception.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_exception.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_exception_H @@ -42,34 +42,34 @@ namespace tbb { //! Exception for concurrent containers class bad_last_alloc : public std::bad_alloc { public: - /*override*/ const char* what() const throw(); + const char* what() const throw() __TBB_override; #if __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN - /*override*/ ~bad_last_alloc() throw() {} + ~bad_last_alloc() throw() __TBB_override {} #endif }; //! Exception for PPL locks class improper_lock : public std::exception { public: - /*override*/ const char* what() const throw(); + const char* what() const throw() __TBB_override; }; //! Exception for user-initiated abort class user_abort : public std::exception { public: - /*override*/ const char* what() const throw(); + const char* what() const throw() __TBB_override; }; //! Exception for missing wait on structured_task_group class missing_wait : public std::exception { public: - /*override*/ const char* what() const throw(); + const char* what() const throw() __TBB_override; }; //! Exception for repeated scheduling of the same task_handle class invalid_multiple_scheduling : public std::exception { public: - /*override*/ const char* what() const throw(); + const char* what() const throw() __TBB_override; }; namespace internal { @@ -97,9 +97,9 @@ enum exception_id { eid_user_abort, eid_reserved1, #if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE - // This id is used only inside library and only for support of CPF functionality. + // This id is used only from inside the library and only for support of CPF functionality. // So, if we drop the functionality, eid_reserved1 can be safely renamed and reused. - eid_blocking_sch_init = eid_reserved1, + eid_blocking_thread_join_impossible = eid_reserved1, #endif eid_bad_tagged_msg_cast, //! The last enumerator tracks the number of defined IDs. It must remain the last one. @@ -182,7 +182,7 @@ public: virtual const char* name() const throw() = 0; //! Returns the result of originally intercepted exception's what() method. - virtual const char* what() const throw() = 0; + virtual const char* what() const throw() __TBB_override = 0; /** Operator delete is provided only to allow using existing smart pointers with TBB exception objects obtained as the result of applying move() @@ -225,20 +225,15 @@ public: return *this; } - /*override*/ - captured_exception* __TBB_EXPORTED_METHOD move () throw(); + captured_exception* __TBB_EXPORTED_METHOD move () throw() __TBB_override; - /*override*/ - void __TBB_EXPORTED_METHOD destroy () throw(); + void __TBB_EXPORTED_METHOD destroy () throw() __TBB_override; - /*override*/ - void throw_self () { __TBB_THROW(*this); } + void throw_self () __TBB_override { __TBB_THROW(*this); } - /*override*/ - const char* __TBB_EXPORTED_METHOD name() const throw(); + const char* __TBB_EXPORTED_METHOD name() const throw() __TBB_override; - /*override*/ - const char* __TBB_EXPORTED_METHOD what() const throw(); + const char* __TBB_EXPORTED_METHOD what() const throw() __TBB_override; void __TBB_EXPORTED_METHOD set ( const char* name, const char* info ) throw(); void __TBB_EXPORTED_METHOD clear () throw(); @@ -299,12 +294,11 @@ public: const ExceptionData& data () const throw() { return my_exception_data; } - /*override*/ const char* name () const throw() { return my_exception_name; } + const char* name () const throw() __TBB_override { return my_exception_name; } - /*override*/ const char* what () const throw() { return "tbb::movable_exception"; } + const char* what () const throw() __TBB_override { return "tbb::movable_exception"; } - /*override*/ - movable_exception* move () throw() { + movable_exception* move () throw() __TBB_override { void* e = internal::allocate_via_handler_v3(sizeof(movable_exception)); if ( e ) { ::new (e) movable_exception(*this); @@ -312,16 +306,14 @@ public: } return (movable_exception*)e; } - /*override*/ - void destroy () throw() { + void destroy () throw() __TBB_override { __TBB_ASSERT ( my_dynamic, "Method destroy can be called only on dynamically allocated movable_exceptions" ); if ( my_dynamic ) { this->~movable_exception(); internal::deallocate_via_handler_v3(this); } } - /*override*/ - void throw_self () { __TBB_THROW( *this ); } + void throw_self () __TBB_override { __TBB_THROW( *this ); } protected: //! User data diff --git a/lib/3rdParty/tbb/include/tbb/tbb_machine.h b/lib/3rdParty/tbb/include/tbb/tbb_machine.h index 5fe13bc..68d1d5d 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_machine.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_machine.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_machine_H @@ -38,7 +38,7 @@ __TBB_USE_GENERIC_RELAXED_LOAD_STORE __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE - In this case tbb_machine.h will add missing functionality based on a minimal set + In this case tbb_machine.h will add missing functionality based on a minimal set of APIs that are required to be implemented by all plug-n headers as described further. Note that these generic implementations may be sub-optimal for a particular @@ -208,10 +208,8 @@ template<> struct atomic_selector<8> { #include "machine/icc_generic.h" #elif defined(_M_IX86) && !defined(__TBB_WIN32_USE_CL_BUILTINS) #include "machine/windows_ia32.h" - #elif defined(_M_X64) + #elif defined(_M_X64) #include "machine/windows_intel64.h" - #elif defined(_XBOX) - #include "machine/xbox360_ppc.h" #elif defined(_M_ARM) || defined(__TBB_WIN32_USE_CL_BUILTINS) #include "machine/msvc_armv7.h" #endif @@ -243,7 +241,7 @@ template<> struct atomic_selector<8> { #include "machine/linux_ia64.h" #elif __powerpc__ #include "machine/mac_ppc.h" - #elif __arm__ + #elif __ARM_ARCH_7A__ #include "machine/gcc_armv7.h" #elif __TBB_GCC_BUILTIN_ATOMICS_PRESENT #include "machine/gcc_generic.h" @@ -751,7 +749,16 @@ inline void __TBB_store_relaxed ( volatile size_t& location, size_t value ) { // strictest alignment is 64. #ifndef __TBB_TypeWithAlignmentAtLeastAsStrict -#if __TBB_ATTRIBUTE_ALIGNED_PRESENT +#if __TBB_ALIGNAS_PRESENT + +// Use C++11 keywords alignas and alignof +#define __TBB_DefineTypeWithAlignment(PowerOf2) \ +struct alignas(PowerOf2) __TBB_machine_type_with_alignment_##PowerOf2 { \ + uint32_t member[PowerOf2/sizeof(uint32_t)]; \ +}; +#define __TBB_alignof(T) alignof(T) + +#elif __TBB_ATTRIBUTE_ALIGNED_PRESENT #define __TBB_DefineTypeWithAlignment(PowerOf2) \ struct __TBB_machine_type_with_alignment_##PowerOf2 { \ @@ -916,7 +923,7 @@ inline __TBB_Flag __TBB_LockByte( __TBB_atomic_flag& flag ) { #define __TBB_UnlockByte(addr) __TBB_store_with_release((addr),0) #endif -// lock primitives with TSX +// lock primitives with Intel(R) Transactional Synchronization Extensions (Intel(R) TSX) #if ( __TBB_x86_32 || __TBB_x86_64 ) /* only on ia32/intel64 */ inline void __TBB_TryLockByteElidedCancel() { __TBB_machine_try_lock_elided_cancel(); } diff --git a/lib/3rdParty/tbb/include/tbb/tbb_profiling.h b/lib/3rdParty/tbb/include/tbb/tbb_profiling.h index 5ef8166..ffaf98b 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_profiling.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_profiling.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_profiling_H diff --git a/lib/3rdParty/tbb/include/tbb/tbb_stddef.h b/lib/3rdParty/tbb/include/tbb/tbb_stddef.h index 944a0d8..236f3d8 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_stddef.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_stddef.h @@ -1,32 +1,32 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tbb_stddef_H #define __TBB_tbb_stddef_H // Marketing-driven product version -#define TBB_VERSION_MAJOR 4 -#define TBB_VERSION_MINOR 4 +#define TBB_VERSION_MAJOR 2017 +#define TBB_VERSION_MINOR 0 // Engineering-focused interface version -#define TBB_INTERFACE_VERSION 9003 +#define TBB_INTERFACE_VERSION 9107 #define TBB_INTERFACE_VERSION_MAJOR TBB_INTERFACE_VERSION/1000 // The oldest major interface version still supported @@ -240,6 +240,12 @@ const size_t NFS_MaxLineSize = 128; TODO: apply wherever relevant **/ #define __TBB_atomic // intentionally empty, see above +#if __TBB_OVERRIDE_PRESENT +#define __TBB_override override +#else +#define __TBB_override // formal comment only +#endif + template struct padded_base : T { char pad[S - R]; @@ -528,7 +534,7 @@ struct STATIC_ASSERTION_FAILED; //intentionally left undefined to cause co enum {static_assert_on_line_##line = tbb::internal::STATIC_ASSERTION_FAILED::value} #define __TBB_STATIC_ASSERT_IMPL(condition,msg,line) __TBB_STATIC_ASSERT_IMPL1(condition,msg,line) -//! Verify at compile time that passed in condition is hold +//! Verify condition, at compile time #define __TBB_STATIC_ASSERT(condition,msg) __TBB_STATIC_ASSERT_IMPL(condition,msg,__LINE__) #endif diff --git a/lib/3rdParty/tbb/include/tbb/tbb_thread.h b/lib/3rdParty/tbb/include/tbb/tbb_thread.h index e25351c..d1cafd6 100644 --- a/lib/3rdParty/tbb/include/tbb/tbb_thread.h +++ b/lib/3rdParty/tbb/include/tbb/tbb_thread.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tbb_thread_H @@ -53,7 +53,7 @@ namespace tbb { namespace internal { #pragma warning (disable: 4530) #endif -#include //for swap +#include __TBB_STD_SWAP_HEADER #include #if !TBB_USE_EXCEPTIONS && _MSC_VER diff --git a/lib/3rdParty/tbb/include/tbb/tbbmalloc_proxy.h b/lib/3rdParty/tbb/include/tbb/tbbmalloc_proxy.h index e33516c..76cbd6d 100644 --- a/lib/3rdParty/tbb/include/tbb/tbbmalloc_proxy.h +++ b/lib/3rdParty/tbb/include/tbb/tbbmalloc_proxy.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ /* diff --git a/lib/3rdParty/tbb/include/tbb/tick_count.h b/lib/3rdParty/tbb/include/tbb/tick_count.h index 20ce722..a7f4e0f 100644 --- a/lib/3rdParty/tbb/include/tbb/tick_count.h +++ b/lib/3rdParty/tbb/include/tbb/tick_count.h @@ -1,21 +1,21 @@ /* - Copyright 2005-2016 Intel Corporation. All Rights Reserved. + Copyright (c) 2005-2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. */ #ifndef __TBB_tick_count_H diff --git a/lib/3rdParty/tbb/index.html b/lib/3rdParty/tbb/index.html index 4e95262..13f29bc 100644 --- a/lib/3rdParty/tbb/index.html +++ b/lib/3rdParty/tbb/index.html @@ -1,7 +1,7 @@

      Overview

      -Top level directory for Intel® Threading Building Blocks. +Top level directory for Intel® Threading Building Blocks (Intel® TBB).

      Common directories

      doc @@ -10,6 +10,8 @@ Top level directory for Intel® Threading Building Blocks.
      Include files required for compiling code that uses the library.
      examples
      Examples of how to use the library. +
      python +
      Python* API for Intel TBB.

      Intel TBB source package

      @@ -25,20 +27,20 @@ To port Intel TBB to a new platform, operating system or architecture, see the <

      src
      Source code for the library. -
      build -
      Internal Makefile infrastructure for Intel TBB. Do not use directly; see the build directions. +
      build, jni +
      Internal Makefile infrastructure for Intel TBB. Do not use directly; see the build directions.

      Intel TBB binary package

      Directories

      bin -
      Start-up scripts for sourcing library for Linux* OS and OS X*. For Windows* OS: start-up scripts and dynamic-link libraries. +
      Start-up scripts for sourcing library for Linux* OS and macOS*. For Windows* OS: start-up scripts and dynamic-link libraries.
      lib
      Platform-specific binary files for the library.

      -Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +Copyright © 2005-2017 Intel Corporation. All Rights Reserved.

      Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbb.def b/lib/3rdParty/tbb/lib/x64/v140/tbb.def index 92dd1ea..62145ca 100644 --- a/lib/3rdParty/tbb/lib/x64/v140/tbb.def +++ b/lib/3rdParty/tbb/lib/x64/v140/tbb.def @@ -1,21 +1,21 @@ +; Copyright (c) 2005-2017 Intel Corporation +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +; +; +; -; Copyright 2005-2016 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. ; This file is organized with a section for each .cpp file. ; Each of these sections is in alphabetical order. @@ -24,23 +24,43 @@ EXPORTS -; Copyright 2005-2016 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -255,6 +275,14 @@ EXPORTS + + + + + + + + @@ -314,6 +342,22 @@ EXPORTS + + + + + + + + + + + + + + + + @@ -372,6 +416,27 @@ EXPORTS + + + + + + + + + + + + + + + + + + + + + @@ -462,13 +527,9 @@ EXPORTS - - - - @@ -594,7 +655,6 @@ EXPORTS - @@ -612,10 +672,6 @@ EXPORTS - - - - @@ -655,43 +711,6 @@ EXPORTS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -729,6 +748,44 @@ EXPORTS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -791,12 +848,13 @@ __TBB_machine_is_in_transaction ?initialize@task_scheduler_init@tbb@@QEAAXH_K@Z ?initialize@task_scheduler_init@tbb@@QEAAXH@Z ?terminate@task_scheduler_init@tbb@@QEAAXXZ +?internal_blocking_terminate@task_scheduler_init@tbb@@AEAA_N_N@Z ?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z - +?internal_max_concurrency@task_arena_base@internal@interface7@tbb@@KAHPEBVtask_arena@34@@Z ?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ ?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ ?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ @@ -808,6 +866,7 @@ __TBB_machine_is_in_transaction + ?destroy@task@tbb@@QEAAXAEAV12@@Z diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbb.lib b/lib/3rdParty/tbb/lib/x64/v140/tbb.lib index 0e242a2bb332ff8a1377f49761c840946382abce..7db38e1f18271daab5f9ec0f1304c605874ca3cd 100644 GIT binary patch delta 12464 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 DPSDeT delta 11898 zcmb_hdt8>~`M)kjMMY3RIm$^y1O!ABL_|bHMM3c#p1@<`3AM7BiI&+`%aEtMt$Au| z&YAO&)mm$6p#X`3_G!CGtmnlm&jH4neGkXyw5A{pFZ>R`TD|pfA8yjU-yCM zFSXeHMT`2#R=s=m&C2TCXMKD`T~@E$IQduAhKS!KI)8-d!a1VGVB*?C28%Zl3zn=f zSe%aEfh7SpF5nYbddA?MVq%Tg@Chuf(x7XBr14zFYb)yaR{Y@>ny^TdL2*#=eH zi2=HK+2GbDB7munjnnu9+PrEIP(v(e2g5YB;S&hVHyFB(SdfxnFz%%~D0+!_GAtHM zhsT0hl?JUdi3PzhPy!|yYQN+TBZ%(Zb2pTJl@gEn;q zupHp|27$+5DbOm~U@W{9w770im4t`@E#ZZr!&3%RR}uqsHBp0S9wv<`qlpER-ZWTn zlo+6|{WQ3)GL%@*`gMaD*~EfYyAAG+Cf3-6Phdg0!J@Imf`#wc!1oJ*MJEiJBgBHB zMuYZNbPR4Mc(~MK)fL*CYS|&vykPK+KNR~D=fhgT0HjAyaKxZ65Rn4<9yaJlFaQYIVK5BF z2r{=BWHk^Ah9FIX5upZk%|Q@UZZwE^l~@o3MS|$-2HiFg3wmW5^oEy${4)lFCldqo z?JF7_SxXwxRhSQSh7Lh8!Y=3q$ALQTeFB1j{woXyUx6SXro^BWM8Swx3`#Z-3;L`z zXoe6A+LjvxAxeS{eg>t8o?zl~gGqhR34z%#aCYq|;yEB{Y{4gx^SMDBs#OsCl0nQ( z7zCulYk;or*5KsJ@CZoRC9nowEZKjm)dTIUpwEh|uug;bhllO0^4W2-Jv;8_M0Dgl z(K#eNxRK~kEz_pOOe>Z!rQ!~O0#D$?S_EpyP0+YNLqpLOq8EYu8${`d zQd|hvQC>CEUf@$$vu++!2`u|0fhqDj(W$mf&rUZ;4KWSBZkV02%(6TaXWj1~44~KM+P8 zh77{|9U+i|x!W?4|As7h1!18h@I`YJ9BSaz2uwn8U5{qk&<%yy3rc&#O9-4i82N^> z+DKGC#IW%Z7=);x7z;{~|K-SG z9~5EjY_MrL0IFkB4QDK2ueWycB39HL(#4jrg!1UHrhwe(JuNGO`rkvQ+knp zM!V^cG?DJ2JQ`1d)SiOqCp3dTqe^<7_EJacL}3(8J?U@MfrisT`Z?9@p)u5(a;O&# zqDd4?i8PQhDT2<>Op2r^il)w#MeorFDxZL$FVwvKBlF#oqkQfpjT-J?WaG`3Hl|yOfS(Z zw4R=!b@UkBPpjz%^boyGC+V-WlYU1r^a8y`f2TiFDjlG|Py=nGC+Putn3mHTs{0Ww zqX+3x%Ajltp*R{#6*P`U)B7}^=20OXq7SG)#Zxln(=_T!n`jogStw1RsWg%jsEEp` zn)*=}>P8>ZM|6&gX)tZ3IW(8nGQ5Gp0Kcxpy|)QVb=Kee>xKG?SI zf0N4ZoyofYO)9^4ChPt;sr=rV%>BNpw5C1Saeq)W;4|LEq0-S_AJ zp(N0HbaS>f^>oPol+)uQyc=$qwdKq9tvTYCPb^Drx_+C zS|dk>HjIt14t<^AW<{tCJvmrYXMoxq)JfL;-^4hao}D>D9Vq2sqvYr}t2{$i_4ROT z-nSub#gTYSZb5$511XW#fa_5njygGw!>tc&QYuI-K{~c7(Tcs|kgS1MY!_;;jP}gL zm*Hw$5*zV(nCXw17gt4CnG=GotykKs{7??|uoZ`Ksy3t$%+{LO(P}J$I?2z^a z+oVAtwXsRHXCB&#!yEJDk@yfi|`CBzgg)F#g}=Ct<9~e&bKnb zdi0iU(3V>hJtIzHpH5>Zv8uWyZ4Auc5io=wehjG zURBCG(<5H>EJAG_W4nGQKvINS-;6t{Tg($2mUr@xo83OSeRF&AC`^u$$zj%sHQ6e_ zkDVv4I~W|Ts{J_1%6zPowI#5a1__E?n4xl8 zc=c(PRK6}h^}`lC)+0b?Sbf*Rme2zd;vnI|BS~sNOLi8NSZoSM)wks7&TJj|gHt_{ zlUwoK&X_h^!l74@grf^29~?JKo#}U*Z6p0{{k_3T1nZ-<>FOu`F8yzWd-R|8=gE!^ zpF&Y9TeDLs$~z;VjcbN3)3UA}i?_7lQjauQi>g&y&rnQTE_8~;n42#-i-ZJDH`x8q`GNH3U-3_B=;p)Vc!E(R8;|FrY! z^If;9AdtNaS10C$KwH94NXUeQ)Qo|uM{BHw#)Yo6pcA#Wz*Aq9K|J5F#95!}dJuaT zXmxv!OZDw}w!`+uJgtK(=1wITR}XaH8fS_(I8%dN!I8#l*yn;>dUf`ugxGFn!mV8L zYk0i7dOpNkQo41U$(KXe+iUb>=}6n~{m{dL9t!aO7)|Kw2vab3`H(mc`s_Na5 zz5PFa2B&IDE-3kilBo`L^cn+6wj=F3`L-y4dU>q#~pV|iwn%kuTk*N4Jf4aX@H zz1vEe3{)p0In=6utDRaE&UsFhy@_cIcO^y(kjAV941j<^BA}zSD!;2bkcL7z-i@72 zOzEBbdW7BJYCtcx>4l@zib${1s=C_a$I(caKCgRIqg?Jea*gX3qIivCxgKkX_7vxi zXnx2&W=E^4Gp}{N_C_l@#uY8;+B);YVEAxko@b|6vGw8VnON_dGOhW~u^ggLUn5jS zEN5C(^--!%oXbC5(Y0}QZyN)FWg@V8gnBQ|B}~(#bL;qy1Fc+T#PdAI)aT-Do919_ zBt$$>Q>Ahe+#=+(G`SxKYkOv^lkps4tz17^1!W;U=P=+1)1eZo_Hs5PRzTw7^BT8B%?B&hi-F)Vax;WSw{_Mx40qm=IfPiz|n?DTbL@oTW~rxR|ic z)V7??ry}babCRq*GefN}rv+PePq$I&Sj^T7-+I@wBq*8kG*-KuDOOKF;8dYE(KGd4lIX zuV|K>S7vHf!_bhX6(Dz+a3ve5W=n^hCG0Tk?6K}m>9EdQpR&=%R~?sBEx0RRH(?_E;-t-btSg<)u1g>i+b}iM~-eNK2=?-;`{In zhoBYt#BZ@W*vHj1d**Pec6h4#Z6D51^*QXlY&haIqg++za3`zr*&H=F*JY(kL{KgW zx26wK?Q`6O+xqUWayb|4BeLNyA?i?H7xCl1cAA#L)%(=GT<&ZgUr-?=-xcQ==B$uq zh~HMMkfzs@rmg&b&FyGy+f;goRxayP=dBP%{6O`{=W$Lrn>O&}YH@#_cDvEir$4RGSYNhgGvldGCm1Nza@%X$(JgRB2 z*5l3nNR4Z=WiYV+O>aq-V`)j zj;>D#+g0|sqUf>V7+a^d4&!P^i?b9pK{l%=g^-E`9^-qJ&t2A>KnDy$tQhvZ! zlw?^GMuMv!7-LT%{wF7O zwf2q)SJ|Pi;)F|vB@5|k%_>x><*rH-hBi_d8`SD@S8sP}RVxxN6hu_a8>;?x+bcl0 zlIy;vm4UVqw4UK5(!#v=VC}N(m6}!o+B2YC_<5458^r_MkufIAihEWw%6#4}?y!CT zM7=Q%Z$qQDC#ypXu*N@X>00BC7fvoVdFbt|+F^L;D+##6G@ll;*_k0Xs8G)o?@>rA zk;f*zzm%wq(Hw29JJ%6q>Thk!2~dGiuCz$3Ev4po_BT?|YLbMx1R%guj>T6Pz^U$#v#$=%|Yu%se5Q?`8HJy`DR zT7cZwcdEKd*9oubS@8uSAhA1B)sRVEubYH$m)bnZ8$#a&`zx68#LoWe?#W(9^^%`7 z$6iKRFl9GbJ!?~a?o*oObA8#P2263Cm76y5y%4iHE2pU#xs&MN%bjGO1fTzzrq)jN z+GNguvbHr(*7l3STQqI3PY>`ouUS$*`-QdgpS{$cY2Fa&H!od6JwbU1X5D-tMg4B6 zF9VPLH;g)YT7FpseHfgec2&8|k_DtQCf)B9#npV5r&jeVgSMjxW51T^qdv>?^-9h* znj&YLSA`PaW1yNh-DQZ6hTo_+rn@vqy=XV2US5M6`!ZsziBepumkGBS=`Tw zPtyW92r;p{b5vOyXuJLS-o#lFc1W$B%|kqLw4Q&>w#zjU<8MIBt>Df+p>A5#Z-TWa zA=P(7^*O1&rLN9#ZP`s9=ng}~#U6Kfp!04GI+Aj;`@KYR;Q#ekL)?3jyhQ2vNR1p( zo9BAp@wLT1xAi}$jGEhaUM*f~?`;vEw>aO&Y31{%^ha3BdyCZL^IYYnostK3ZG~J| z-%%gW<3XP28c%#4;r^ti&3A>x$AzQn%lTdxbdfmA<6X6SfxCF!=lWwZmS~+g7;0_# zcYwNUq02<4PP8OB5gu227V;R!L^)XMG5Iss3Dtj*ON-vSq;F_~^o^71t3#@m{W>aP`)` z_CY01-MRMahV;o1du)wQj|J-pN|#c%7=7L zNI4!MCiIU&icWGeqTS33XBvr| fK365Ft;^uo#``(Nqs{48+Arx>pQ;=8bGQEoQc;6@ diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbb_debug.lib b/lib/3rdParty/tbb/lib/x64/v140/tbb_debug.lib index 19d8e520a6ac8395b019baec3b125e975c7bea50..05734141021ff2bb274531f50cc53ea2d777861a 100644 GIT binary patch delta 12842 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 T#XKH=+Cd(FpR1Rai}-&7C@^R) delta 12452 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 bk+N`|Nu1<%sSJykd)H!nzthu~8NUAp1b|}P diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbb_preview.lib b/lib/3rdParty/tbb/lib/x64/v140/tbb_preview.lib index 0d6678fff3b286321afa2e2a836be5b4a85f0cf9..f3b8e82a70159b7e0a377519b242ccc075ea7b2e 100644 GIT binary patch delta 13521 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 F{{rnp?%)6b delta 12637 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 TU^TH$4UJws@E@wt4({-OzqQRn diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.def b/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.def index 2a9f814..9a99833 100644 --- a/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.def +++ b/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.def @@ -1,21 +1,21 @@ +; Copyright (c) 2005-2017 Intel Corporation +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +; +; +; -; Copyright 2005-2016 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. EXPORTS diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.lib b/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc.lib index c070c23dfc8b125f23afa327ef430fa8e565583e..fb67b977b856b1bd2fa76192f49837d7c43f124c 100644 GIT binary patch delta 934 zcmdnuvBhJ86o;jmnSrs9f%)VE3St{A{&AoPY!2b%;6xFbTqPvH;vQuZIk``06Vs%) z$v&d$lQV@)K+O5V?@`sR5rL{bAkqa(IKC0R$q5`ZSbMH?+C?Y?3osjfo zW3h6O>NR58FioGu3{f>XiHkrS6D6L2DsuxS^FcfXRi;P+s;5gL4ONCuQiKQOgj5Cw z24)5phRGj!!zc4gDWa-6A_>)hM=}Ie#!m{O-wLRo6{Pdi&L}r>Ynuor?WO!6G0C8;nnE(I) delta 934 zcmdnuvBhJ86o;v?rIC@DnaSh>3St{A{&AoPY!2b%;6xFbTqPvHk|DV=Y;vE_CZK%@(zRv)5HYVveZeN?qiL!rUO==mTBD#lSLoBeTfl1Qx!@-m)kj z5}(`+RcHuQ$PHJ>G5M&hCbEfQlk1d4z$U5z74kq8+RLe;Dhg19IY`b4Sw?*FZ#jsA zG=bXrz}jUdPgg*3jM(H7d8qatc{^n7VB5iQJxRdM* zaxF+2d8golp%EgJp@`yCvB@W3o_L^WfzYF%1U1P|$qXS1%r^-2yOdDWi%$+z6o%NL Zp^PL0(gO@lh|Dx)G!K1&$?&LX006G_2;2Yw diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc_proxy.lib b/lib/3rdParty/tbb/lib/x64/v140/tbbmalloc_proxy.lib index 1ae2540092c207df0fc91e45a2ab9063ddda58d1..45c14dfa9c276f10c03451161c3114ce08432b67 100644 GIT binary patch delta 237 zcmeC+@8F*x#bIe?W?*b&U_Oaae4^!kB<=$ww%Fu#KY zq$hK+Nl%{3RLe9eZn7P#`ebKjD-iP{o7Ci)%nwoY&R`K>0qLE*hGhaoxjsy3C#ybO z>Er{fYOEl2PbaTskq4ST1EN@&%ON>Gw?Hp51#EsGT*D+rvB?hXBHSQ7>I@*jGP!|K JWO6aPC;((nKZgJS delta 237 zcmeC+@8F*x#bIh}X=G$(W;%&ce4^!kB<=$ww%FuBA3fTNWxQ0oLVv`-%MYutF)EPj4WpV?f J$mC*nQ2=>MLSz5{ diff --git a/lib/3rdParty/tbb/lib/x64/v140/tbbproxy.lib b/lib/3rdParty/tbb/lib/x64/v140/tbbproxy.lib index de44641261e17737af9a43f8db2588efbca40a13..0d3d0e457b6d964e250bb73594d6ee00b8deadf2 100644 GIT binary patch delta 56863 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 z zm^>xBG(X21oA30O5~M$K%x9GRoTBlWwA*w8e2;f~FDGfVPKYxJSyQs|GmDGmjA)k3 zM)AzzvgvsRgVL04f$H3Nlbe~Jms#wcmG2BZMV~;`M51LP9JXfwS0>vb@2; z-;Vq}R5pnIJVF0GuDGN~Hi$M2wPC;Fd?_neH8bPkJ)R|HIYmXBkm*vX6B}v8d30VT z=WunhF>*jzU5l@7E)sQW-k@METFT$)rjlc)nGx#mb>f`aYuC1B0Z7rI#ZvL z6lHVEV}oXA{nt&KH|5`MS-paEuC- z&IA2pz^iyi6)rz_!HUwA3sy{?vu4p!zFurNlcKol?KHBzQz;F=M&5vSv;}pG{&_FI z6OH!$-r1d;Bxz#q_nzzIbYvW!d(aC8W(d$p=IDSq^&WsXirtHVXnRB=z&fUs5TPo6( zqHO6VEMZ7xWtGu<%F35nxd+9~4Ks@ibI|$4dD+qy(&LWx$DO6mpUR5a&-B@?u0Z#< z9HVOn|4dP)Qb;{AU2j9(0@B0AnWZZz$t%(4oa1wfatf%5^kRP1())7=%OHzPZiD(` zD$Oh_%$t#uUo3N{XE;XB@MLzkOgaMcr83hq9jcq@@p<_(8^4&|var+WHLYD>7M!xtRqMa-`PIW)qgM5hstM zKS3YU4tg`YaJpyp>co0YJ2(v@(W*`#=kz=^tUpgvii4$~7WbDzFP>~bU7qv|IkG-7 z>(+rbUnCEi_>Z23&&>`mq?~= z4(ZWy`05^fY12jLFyd%Vp1)gB`O8_! zes6oS(_v8Etj5c%&eR1bKPcCHQ;*&u>-wk4bQ$rEwRZ-^``gz$o%8!PdJ!7PsxF-F z?=HF>yWflN!l|@w^B?pUcXc{+sM{aI_beFTr z{a!7l#Ov6>862;-;gOc!McteZks~Z&NX?j>uWJT9Yh|)?*KM@s^*7p#?4q(MMR^nG zj?%O7F9zj0HfKj=(>S#$W!3p()}^EV80i6$N=LVR^*|wipu*CkoW^xS>UFW-yQ-_x zag5$k^=vuTNb1&~6j?o%7=J9BwbhM7ucrOpt6k}X*zbMa)#(w#Qa0=Ev>dAUIX#Ty z4`aG&^_tQXinAtEm?x(Y`@PI=PUrEm7078*e??G2XUwDv(9}Y@dqtPNi>;GmDBcXUdtYo<@^q6fs>gX|GO`sea@=H^u1^SxvUy`jW{@ z51T!P(EDm3$MNR;z0)6Ea30(YH-(c2c7`dFq*jvAokdzne%?5J1fl--$HQ#YjY_K< z{88x*P+T%W#vakH?t7VmkKCDU^l%$^=*g-*%N zmnrErq*oym57wfdA)SM(OVesUO$gJ($t;>ct0|#bMVn@<{TW#~g?R(R?!t}OawWp(Mbtk+iEitfNjPV;`9$|=TH@Ap|wmj**=>m@W>;AIv$ z!$YTg=M_12OZk_eSooMa-G0RCVN~gJHEdj+n zq1juy7!)r!do>*wi{>mTUbSMuoTakPHt>m_*tq;D<7CioY{3;P7p+}Twn`E%@=h=2 zY;C$%RmwXty<&P*3IlHCeOOHIKtWVA898zl+oWuP8pCw+{SRtNoEF}s5~{ih^~6;r z)BxFm=o!igxQo}JlvB>pz8G8Tv{+W>^YrXaETJK+L<~wJf-uB+7{Qq$> zc-siRN((V&DAq(h7~04%6>jiy9Sxp5WEd;Nfv~d1{=dy5R85_``>)nk?;VpMYmfJk z&~;>2ZUheobOR%I(%xCc8AZ8;B?U#$ES%&zz7cJh+#+R2w5mgKMt)c0gB~VhBhh#m zgbp(;_b51E*rrGgsaFM2(qY^)@ru( zRPNN5)DrW8y=0*=NkbBQi-*I>zTq#{0DTh%Yog&-;bGQF_`gYQ!t4=qoZM_+-IJ?5 zQ;jJ$I!;zQw*s0Vp7+*xG}Vf-H>r7`8NQ6gMq_MRNk&dudR`W{EB2F|46|kChr~gV zbuyHTBX3emk1y5Qjg3Y{^pQ3DYa{UpE(X~wv1)hYzA##Nk04Jy=Na{c4D)#Ql;gRT zQ)oA7JtTQXXsE1dp5oN&pMRd1FgvA8$_n*>fA zVSvX~l!>Q(Qd*@*RyR;|9ZA7<_Zo?uku*ff7KcYtN6PWgh)?>EyMv6xD4bKNl~+we zoQda^(e$)TV@4X*GFu~s`64tOdqG%=cXX6Ba-*RzrBY9&S{zNqQhh`5St=H6CaB)@ zqp;RDna$p!!)Q!qV@83+Y!v#@Pa5EY}aw>eAodw3MNDWx(Fx%L80 z+Fslng$4Hm9JZg5r^b(UmOfZ}Lw=iyOQT7PbtgpAR6H1sCG)w`k1ji}APtE$Ln0)? zj5JJ{VU5^X)EY5SEn>Sj&$jIyG~V!6ETw z9sG>E^4U2;O{F1PP*$8Vxj>$_GZv?1XO&D9ltvlKbTzSe(!d`V%FyCS8rbX+@ktu> zY4$_?TAz}YHr`l>`<;W3qKQ4XRSMNG#pz^dnP>H!mWOkJY2ZJRlM8Y)qhuk*NsnB8 zj%pQOlGQG5rc;N;i_n2(9*d>4C@d(3F71R>4cWR88PwQgzwENM(avLKpBR%t%{}(O zMGEJH+;q+BpkvU9P=9JK4rY)Wxmaz_Gsr+4thTP1aBF9^m1Kg;Cy5=I)Y=h?Hcp0T z?qX*qh4K0|Fi5y%(ezG!NC{jFJB)8ij>Q6vxmtah#^Y1^!4PGx+(sPEf_QivWaAJq zU^savvyeZBR!K;oX6dQI41y*63rBk`iRaKK2m(v&q{>vKnVRE&Cqp%x+hcMK z^CC76GU$+zzR^%!lVYLIL!yY^$5KM?GsrQNkQkY<5+o;EA$~%3f#lt1P(;)OLfOj6 z42-oGsk*SmPt4E3ID>r5p+Gxt$wOK)>-6%9lBM7!8q|_pm}GW-RJ6{;{@UM#&p421G2Gt+H)K=jGl<#f8@r|MMY^-r99zJj>M;+yQhuKk}`*t zI%LDzx?KAoi6!GGPAL$#$5C^4o`u4LIt`WLvQ{)7k8)iV@#D!i^fITGJfOF%0@fH3 zEGh$+mF2z~yA=K0cPho|@nA8R#NqLn1`ik4#zXUHBVLTBVEt}2Ep%EL+Zhp=N8Yco z=#7Wqv4J1rR^MyU!xJ@&?wcaTr{LHGp!^I^K=vd(Zoi_O9`=EN{9|!WQ0eh zLkb_3kOCBcQgjW@DJqyEI|DPQBce$@mdsN`WIi=-{JUC&*rfQx_`xyJ_|6f_<=gI} zFds_m-^GG_>gL87=Ug)<@DW$@!J&4FXZbWBk=II412_kfh#e)HXsne1hQ!Ok!@2?d z*cb*Y`#i)zdo{}ZKpZX>O(6f~>s7a*Sx`s|u&rRxTX{sR6R8Cd=wk+v4!nz7bG6VG zkdGbKkph4oJn`UoEpv}>_*ltdA|jT+CBAoVaUsibo6e)Ia&g0*#_mIYdT~iw3G2YD z6aDNijzf-m^605QbXY^$DjW*Qx8X!~LdQ*J7QoVKqKGV{mLs@LZQ2yiZILJ26q2Ps zYg2zzrnqHUBVl!feXs(>wf0JfY6|LgvA2*qG#zbqte-DdVoO-p^AHUtl4pw)j_pm^ zo&#aD>0+G!L=ioaqQv}(6r$+F;fb_?r{h^gn3jKu6D36u#&x2m2#cAYi*ul2PxWyT zg;ubBCUcd53ByzT)OTiZ^hL2dP#rrbw|TrSbne-fwFh0)yXy5y@RLeIhgE}*pH07K zem5{>r+NpnUK#nf+UjPHuKw-XfYP!3$6e{9UaqNECZy{F=KuGq1?@5}ujm@dUo8$$ zIR1#T9=eKM?H82A?%dJO^TdA-RNtc2D}M1)l&)3n9afp|w@sPeXCNh6hAL+$PvMEURm_!#Hf{ zd(pS{cfrROC0!q0)1&hQhm4!Y4pe-%af=y;mfeU0?CF{C^tabLUs?X$os$_#22R*! zN&4mk-_TD(T;u27x!9n~=DxFV^PQxJ=j4|JKPk?d8M=5u(?MZ*SZvX9JnvoT*z$vy zIqu7D74Ht~H?ckRJW2oUUmrQWTVA=S-={yO<&N~L!y6g=nu=cOn)-15=8i><$^H)0 z>w3;aE`N}8`|n$u3~mRXme;r#zr8*x5jVWpv;UqIVILppkovsLYxnsFj*p;+mr44W zw;aYgtX+Bc&3AXstlfEGIF9g2y2su|;cNf7B<19(Q#Ie5=qYdz+JWOqsCau$e1jb4 zSqn9Zv$|(h9zltv!`ScswPMNM+IzQNY*{kuwUwJR8ndL&KNndM_#kiFg$)TwjVn)G z!6J_%M|8RD%ITNS7CxOix0TnPc_ZO>prog*_~n<4Zo3CQ?Y&{5ZtML6I5R5gzFBL= zw@Np4m+=^I4$puO53K0EY*|I7E5&HezFWJ>yzyQz)Wz3vjWcm16FoVG)8rqt7! z<9Qg9)O=Flf_aAH%uZBNu?_AituAjUore-hP^Hxsv72bUyV_5X04uA)&BbjE5)&uXtZy{%%d{a0=$x1UXP zzCKI+UcfT&0Ddlkeeye)<>-vpE#_QwrW+P>1lgpT)czW`B$M zBbWm$W(+J%kTiExuLx;tao~$j+F8u}6@oB}xfe3=1c6e-ohcM69Hvq)hlucQ;lUv* zOxR>^@D@%1y+56LYMCfzPlFY-AO{HC%&cs2w~CsDbTNi>Hikr$goPSAbu&hU8;v31 z#*mQU%+BduvctM{&dd&r2%a#Zq%gBMvr|}y5Yf5}hb0lsQZ@bo(Z`iO&anD>V=DErWL@knqd@}Ex`^-!>My=3r@o@Rf}%Xt zqNNsN)|8c*I(Aa7EQK-+^PN8>VW^}eHHo7Y)Tv(1;NUJEPsgs@pF%93L2X~rtXU~4 z165Yz923GwlgwFgDRrzDZLf0bqo#M-M7>p0bvca?2P!Gj8rg?$QHTs6{rA^&Z8G+5p8Q>WxkNKY%y65m!)i~qdw%B#>?_p8Y3KMxu{ zle)ahky^$bTn)Bds7B>T;w*h|@c*?B zhIdU34Gu|7pOl-InOd)JF75S19;LRgkhdj+<6(m)A)kGl0+HO1|2Oz)kol%-!hZt?$G8|JuKkR zEha9+`O*-OV??l-;#~|HgCQAK#M5aW`NlKH-=+J}$F$L0u z0l9J`fWE*^zyOQA1KY*AdGt`}C?=l40*Ni#b}=3zznZ+94A8Bk3`q6yeCp{LgR&+m zB{{jp=mG`@BKKJ0!%WKp>c~roEWEfXbE7dI@z}NFLUNMEXJs zad{QLIQkAXX~L0m;O6-8)727bH*sMhZFnsg^%gfD8Z8w1xfey{BJy=_58BI1-5)ks zsDr8d$p#CxV*esc#IA~)i>R&hu$Zdp0Unx3@xpa61^6|6DTBw%?H!K_DYtV?O zrR3_uZvr+3`I;g^*WxhcyrtytyiJM2UfD6tW$}-t)XMP}G}SIx?kuJ7CjU?l;x_w+ znrJLcEAlF0^e_zZHsaDg@(SX(Am{OHR`%kHL$ARjf3ik>+RK2AIiSd2MjadvDSC7c zd$D#IHA|{hxTieBdT7vZ2PLXzFCB3&_@9{Gtpc(q2+fl9ng4${l`!j3ok-=x9SD#HxmQ zsac?jKqahMPElUFq+`5db+pzH9Gk=rlHom2X#+U(@?n)jr^66RM1fwBS^3cE@fnju zL&N%HF>nQWbz^lz=Uj9PtAX6-7X$YqeZDE$R0jeEmgx}?gU9qEa3k;q5QEFq2$|ak z;?P>un+JMupjU+kgqB|3LF6ZCy*N*pCU441CIfjv77+TQo3U%1j8Z_ zP6O8g&jFE$1~q8f4V(i!1N;Pd1$Yz4efgI8{z~#C<%)2BpEfJ5;?VnGLtyP^pl~%@ zMOEIO^?D7f#CT)DN$1qgDiOwu?w6obJzPZ&{w`>wKlVNjp!3Bia}v?DR1tDT9H~Qq zZmY3koi3IDJh@GC@UuSGU?>&J-{?w3OXP76thj{KV#1|_FrAS!w68SbVnLg~EjE8< z8x7SfW5LabHriPm?S_qZ+eZ7hYU+iAzqb*8vU&W~Msoz~S2O5pF}Y~GZ8Tp|vxep= zK5BjDuBG>#z0r$R@reuk8VTQZ)WzONDVWeV`l@R7;1IUE-r!Y_7CdqaUz^Mk@Yd^A;?-UKFRcP-q*T3F)ZJ zwU29{Yirk7*DO{UsD5ML5zV)fUsN;XM19gHWoP4HHD?IZX!$U&WxG{NaJSh1ZgE#c z#a8Udl$zh)iWO&wwu{@aHx#7iDr`IU5?sWn?PLTT+Kx(e5;wQAfAMTP?Z+E$Twku4 zdBs!nu};R405voU6_v1)0tlQ)?3#@ld$=9jE~R40PFiDE;w6r*p(fgEadR(-p}Q!y zA2Sy)3kW`zJj@cbnrQrU%WE~G@IPI;ro+Vf*2@08LYfNkk8e|eRxavxk)K-?2;iw2 zMqimdT~<*MHeD@ROv-KwaB3?vi`|47yUE{vEcPd~qV5zm>dRkwQy)G{8Er_0htqGqKvae8HcEx zQD#RuvaO+8Te@&p)&QG`<$I`!=OeKABt;(7*F)>#;f%~5+k-(07n1?MzD!f z#5Yn*`R4Myv{4a-XH@mK2{hjk`)Gq3%R1I=>kZ7++wpP{*NRkb)BmE(MncWwF5Cm? z28;sw0r7b92v=7cIX)UD%rMfPPKQgslaLDWv*6$vNt4q;Wxj0M1-u93argre3tO6pz|+8|z+1o{f!_hay-g2*&w-DC zoX~GT@N$z23dMF0AlsV&71(n<8_HYtp?z%g*J2eK@30CKHB6qw!u;=2u| zc|ZsR(^{Y#kYzD$Ta~hy!?W~ZJ2VSTLm=d_#vO<_Wk&SC2Cy@`If|dFIq9F2XQ#AQ z`@o}P)X64EAT4+p#vP}Q;9#Z4X(`T~psT1;B{$wAm{cs8i#lNncjNmBcy8o`m}A7u z6V&D}Q=|S!9IpIrJre;3h*KwMtm3DppY<`-A}#$%@=|u215aXI9@|Dpv$I%uin=wD zOsDl?Xn9L!15%meVc(V0usr>NrDE}E`T}wWajkIXPFrtC_S%W9_YP;l;}sEi zR?38|vt+L*M4TsWSmV@iZLd!AD4d<~*p(=OA$kyq$HL1OL|n&!hxko7bC7E<#@MzJg@$4-UW|0-1~$_=sU8a-&nY3PDj z|Ds^b&2{AXhostwYuBlEAVW|6l^-Ux%WRHU-Iyt zB@bA)mE~Pyo^yxxkWyui`kJoUDT_qjw^%+2|CS=`S!KR&hJBH}9p2Y}@dG8>Je z6FR4>f^QyL&$e~66CqD=q->sue@eyLhYcbf%txP6t-W%?JpLEDp(s@%_BWgdIb$CC z8|B(-yUp19nfa=sjnHcQ?@bR8ItOizwtL$2RpwF$?P{Gap&%_2#}$gwil#=32JYI% ROEao`%p={k7aJ=s{{x?KG=2a8 delta 56094 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 G`F{Wlak)7F delta 12172 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 delta 12674 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 RXnR7`SHj7^+(Bfu`+vfA!FvDz diff --git a/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.def b/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.def index bc1cf77..ac00e3f 100644 --- a/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.def +++ b/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.def @@ -1,21 +1,21 @@ +; Copyright (c) 2005-2017 Intel Corporation +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +; +; +; -; Copyright 2005-2016 Intel Corporation. All Rights Reserved. -; -; The source code contained or described herein and all documents related -; to the source code ("Material") are owned by Intel Corporation or its -; suppliers or licensors. Title to the Material remains with Intel -; Corporation or its suppliers and licensors. The Material is protected -; by worldwide copyright laws and treaty provisions. No part of the -; Material may be used, copied, reproduced, modified, published, uploaded, -; posted, transmitted, distributed, or disclosed in any way without -; Intel's prior express written permission. -; -; No license under any patent, copyright, trade secret or other -; intellectual property right is granted to or conferred upon you by -; disclosure or delivery of the Materials, either expressly, by -; implication, inducement, estoppel or otherwise. Any license under such -; intellectual property rights must be express and approved by Intel in -; writing. EXPORTS diff --git a/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.lib b/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc.lib index c8946adb6fe58f22c919ec6df99755f9f163a3c0..d293df95196e3f56102d6138373c96f0b231bfc1 100644 GIT binary patch delta 949 zcmZ{iyGz4R6vnGmOnh0IBk6_Xo!m z&ig}Oz6zgEU?LU`ZOmq8qZNSw2d`2N_F}7*+jD@VCg>Bgg^h|AQ}P7R|hd?oQg0>h(pMu38BxsC7TjK>yr1)_=&A?$E~d_frEx*)G14??N} zhl)TOUMUNHrG-|<)kS|*h8I<&%7?nfDq+o0b{nSuQBqo&vh8|~v^?uEbkQEZ2ajHZ zhd+t5!IGZzprY=Kc&E>JReV{HHJm}lj7e6xHbnc5(zt0Drc4D6f*i~RtKr9B_98=X zoT42VjW{R|>v11OZv8ec*d3cNR%>IQ@kTb3OSn>_(u@{tuCvYWX0wOz3Fn0U zi9vsrP30kjBp9f#fs$1R`>NofWEp?yZKy1L6VVN~;`A7Pvh(#OJRskO89Pe)?BwM0 uDd*wrBzxJ&PxruFs@qc-&q~VYASB~Z zoOV}!`6_%|fstsqa$4P=2$uu`96U=MupM10eVGCzrJze_Bfn#k2J6Br(+XBazKj^J z;6aMRnYchrP1G>R!WR-BBrx1dCj?lPEw}Nl+~TnXU4gJ7gb3RoAYTyrxOT{E$b*oo zz@8$|h8N1LU#X|nVRg=5mElPhsq&#Nvr3ibC|kAT|0qeVNZD{b2U?!>7`kW=pTnb9 z;Ng!#jWDk#JgA^MBi`tfUKL*!v>DDIL&hkpTpFT%N6olt6^xk*>;^fQ4wl1@!R$qb z&KN~A7!5fn4=XVrMsEE&CfFTQ7^}9i&sZHB$|c-!%zjomG-*aXHrLqZH#6-aeB3!< zcf8kMWm9=*K@#*tD&XC!fgM%wP_m4_^hQ*azJ}~^3y#qm&|$!<5^7lJVbePyS*2C@P_Gw%UeYgoLi1^Z>4_$v5fT1 diff --git a/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc_proxy.lib b/lib/3rdParty/tbb/lib/x86/v140/tbbmalloc_proxy.lib index d6de2f3377b11aa37406e07e8089d4bddd6fbcbc..e76e38e5ecb8716065a6eb85295ec62a0f4855d0 100644 GIT binary patch delta 203 zcmZqSZ{eRH#bIe?W?*b!Xg*Qt2An;aiSZGF^M=s_!LeadW9f`EiJY9qw1a6<+++pj zL=bhBO=|L7=7$J%Z7fiA8(1bl)TwhhB9s8i>1NY2kK(92ALs_$jhN2ou-s>TX3_wMA4Eb^22 X*k(X9Nuz2CL}*ZB*Mc}CgxvrDv8O#2 diff --git a/lib/3rdParty/tbb/lib/x86/v140/tbbproxy.lib b/lib/3rdParty/tbb/lib/x86/v140/tbbproxy.lib index 356ff5960e55c357a031122e021c691d9e238014..bb6c5da41601d65b8701a6e867e0bd7af818c4e2 100644 GIT binary patch delta 57177 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 F@xP~a`uG3< delta 55631 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
      tbb